SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Uso de tecnologías modernas en
Joomla!
http://www.slideshare.net/phproberto/uso-de-tecnologas-modernas-en-jooml
a
Sobre mi
● Programador PHP / Javascript.
● Programando desde 2011.
● Adicto al Opensource.
● #26 contribuidor a Joomla!
@phproberto | https://www.phproberto.com
¿Por qué usar tecnologías modernas?
● Evolución personal. Evolución de tus trabajadores. Evolución de tu negocio.
● Independencia de la plataforma.
● Vida media de una empresa es de 10 años. La mitad no llega a los 5 años.
● Reducir tiempo de desarrollo.
● Fiabilidad.
● Seguridad.
● Marketing.
Ten en cuenta
● No todas las nuevas tecnologías son buenas.
● Conoce tu mercado. Pregunta a tus usuarios.
● Reserva tiempo para I+D.
● Analiza la evolución antes de usar una tecnología.
● Introduce cambios paulatinamente.
● Asigna prioridades para su implementación. Fases.
Prepara tu Joomla!
● Siempre versión 3.x.
● Buenas tecnologías requieren un buen hosting.
● Comprueba las dependencias de tus extensiones.
● Usa siempre un buen entorno de desarrollo local.
https://www.joomla.org
PHP
http://php.net/supported-versions.php
¿Qué versión de PHP elegir?
● Joomla requiere PHP 5.3.10. No traits no party :(
● Versión más común PHP 5.5 / 5.6
● Joomla! bajo PHP 7 es un 62% más rápido.
● Extensiones comerciales: PHP 5.5 / 5.6
● Desarrollos a medida: PHP 7.
http://php.net
Composer
● Gestor de dependencias para librerías PHP.
● Es un estándar de facto.
● Perfectamente integrable con Git.
● Librerías explorables a traves de Packagist ( https://packagist.org )
● Distribuye tus librerías para cualquier sistema.
https://getcomposer.org
Composer
¿Difícil de integrar?
https://getcomposer.org
PHP Namespaces
● Requiere PHP 5.3
● Evitar conflictos con nombres de clases.
● Agrupar grupos de clases por nombre.
● Integrado en composer.
● Perfecta integración con Github.
● Modularización.
http://php.net/manual/es/language.namespaces.php
PHP Namespaces: Ejemplo
http://php.net/manual/es/language.namespaces.php
PHP Traits
● Requiere PHP 5.4.
● Rompe la herencia vertical de clases.
● Modularización.
● Perfecto para combinar con Joomla.
● No sustituye la herencia tradicional de clases.
http://php.net/manual/es/language.oop5.traits.php
PHP Traits: Ejemplo de herencia vertical
http://php.net/manual/es/language.oop5.traits.php
PHP Traits: Ejemplo de trait
http://php.net/manual/es/language.oop5.traits.php
MySQL
https://www.mysql.com
¿Qué versión de MySQL elegir?
● Joomla requiere MySQL +5.1.
● Versión más común MySQL 5.5 /5.6
● MySQL 5.7 es 200% más rápido.
● Extensión comercial: MySQL 5.5
● Desarrollos a medida: MySQL 5.7
https://www.mysql.com
Git
● Control de versiones.
● CASI imposible perder algo.
● Changelog casi automático.
● Búsqueda en el historial.
● No es una opción, es un requisito.
● Puedes empezar con una interfaz: GitKraken, Tower, Github...
https://git-scm.com
Tests / CI
● Tus usuarios no son ratas de laboratorio.
● Pruebas unitarias:
○ PHPUnit.
● Pruebas de aceptación.
○ Selenium, Codeception, Behat, etc.
● Travis CI, Jenkins, Gitlab CI, etc.
Tests / CI
Sass
● Preprocesador CSS.
● Variables personalizables.
● Funciones (mixins).
● Modulariza tus estilos.
● Reusabilidad.
● Define media queries dentro de cada elemento.
http://sass-lang.com
Sass: Ejemplo
https://github.com/nternetinspired/embrace
Bower
● Gestor de dependencias de assets (css, javascript).
● No depende de otras tecnologías.
● No soporta dependencias anidadas.
● Está siendo reemplazado por npm.
● Fácilmente reemplazable en cuestión de minutos.
http://bower.io
Node.js
● Pequeñas librerías javascript que pueden conectarse entre sí.
● Multiplataforma.
● Gestor de assets ( npm ).
● Perfecta integración con Git.
● En Joomla principalmente para sistemas de build y assets.
https://nodejs.org
Grunt / Gulp
● Sistemas de build basados en Node.js
● Usos más comunes:
○ Compilar javascript y minimizar archivo resultante.
○ Compilar Sass / LESS y minimizar CSS resultante..
○ Actualizar sitio de prueba con cambios en idiomas, php, etc.
○ BrowserSync ver cambios en tiempo real.
○ Crear zip para empaquetar tus extensiojnes (releases).
http://gulpjs.com | http://gruntjs.com
SVG
● Archivos pequeños con buena compresión.
● Manipulables a través de CSS y Javascript.
● Se adaptan bien a cualquier resolución.
● Iconos perfectos.
● Funcionan en cualquier navegador salvo IE8 / Android 2.3.
● Se pueden incrustar sin requests adicionales.
http://www.w3schools.com/svg
Tú eres la tecnología
más importante.
NUNCA dejes de actualizarte.

Más contenido relacionado

La actualidad más candente

Optimiza tus webs a bajo costo - WCVenezuela2021
Optimiza tus webs a bajo costo - WCVenezuela2021Optimiza tus webs a bajo costo - WCVenezuela2021
Optimiza tus webs a bajo costo - WCVenezuela2021Fernando Puente
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPHP Vigo
 
Taller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de pluginsTaller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de pluginsFernando Puente
 
No instales software pirata en tu empresa, usa software libre
 No instales software pirata en tu empresa, usa software libre No instales software pirata en tu empresa, usa software libre
No instales software pirata en tu empresa, usa software libreFrancisco Javier Félix Belmonte
 
Angular, ionic y Django amigos con derecho a roce - Pycon 2017
Angular, ionic y Django  amigos con derecho a roce - Pycon 2017Angular, ionic y Django  amigos con derecho a roce - Pycon 2017
Angular, ionic y Django amigos con derecho a roce - Pycon 2017BeDjango
 
HTTP/3, PHP 7.4 y otras novedades en WPO para WordPress
HTTP/3, PHP 7.4 y otras novedades en WPO para WordPressHTTP/3, PHP 7.4 y otras novedades en WPO para WordPress
HTTP/3, PHP 7.4 y otras novedades en WPO para WordPressFernando Puente
 
Jornadas Odoo 2016 - Cómo realizar un módulo de Odoo compatible con todo - Pe...
Jornadas Odoo 2016 - Cómo realizar un módulo de Odoo compatible con todo - Pe...Jornadas Odoo 2016 - Cómo realizar un módulo de Odoo compatible con todo - Pe...
Jornadas Odoo 2016 - Cómo realizar un módulo de Odoo compatible con todo - Pe...Pedro Manuel Baeza Romero
 
Blazor, un nuevo framework .NET
Blazor, un nuevo framework .NETBlazor, un nuevo framework .NET
Blazor, un nuevo framework .NETJonathan González
 
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!Fernando Puente
 
#Win8JSApps | 4.- Métodos de desarrollo
#Win8JSApps | 4.- Métodos de desarrollo#Win8JSApps | 4.- Métodos de desarrollo
#Win8JSApps | 4.- Métodos de desarrolloQuique Fdez Guerra
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015 César Hernández
 
Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...César Hernández
 
#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-end#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-endRubén Rodríguez
 
PHP para todos con Visual Studio Code Modulo 1
 PHP para todos con Visual Studio Code Modulo 1  PHP para todos con Visual Studio Code Modulo 1
PHP para todos con Visual Studio Code Modulo 1 Maleny Abrego
 

La actualidad más candente (20)

Optimiza tus webs a bajo costo - WCVenezuela2021
Optimiza tus webs a bajo costo - WCVenezuela2021Optimiza tus webs a bajo costo - WCVenezuela2021
Optimiza tus webs a bajo costo - WCVenezuela2021
 
Skipfish
SkipfishSkipfish
Skipfish
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
 
Taller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de pluginsTaller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de plugins
 
No instales software pirata en tu empresa, usa software libre
 No instales software pirata en tu empresa, usa software libre No instales software pirata en tu empresa, usa software libre
No instales software pirata en tu empresa, usa software libre
 
Caché y WordPress
Caché y WordPressCaché y WordPress
Caché y WordPress
 
Angular, ionic y Django amigos con derecho a roce - Pycon 2017
Angular, ionic y Django  amigos con derecho a roce - Pycon 2017Angular, ionic y Django  amigos con derecho a roce - Pycon 2017
Angular, ionic y Django amigos con derecho a roce - Pycon 2017
 
HTTP/3, PHP 7.4 y otras novedades en WPO para WordPress
HTTP/3, PHP 7.4 y otras novedades en WPO para WordPressHTTP/3, PHP 7.4 y otras novedades en WPO para WordPress
HTTP/3, PHP 7.4 y otras novedades en WPO para WordPress
 
Jornadas Odoo 2016 - Cómo realizar un módulo de Odoo compatible con todo - Pe...
Jornadas Odoo 2016 - Cómo realizar un módulo de Odoo compatible con todo - Pe...Jornadas Odoo 2016 - Cómo realizar un módulo de Odoo compatible con todo - Pe...
Jornadas Odoo 2016 - Cómo realizar un módulo de Odoo compatible con todo - Pe...
 
Blazor, un nuevo framework .NET
Blazor, un nuevo framework .NETBlazor, un nuevo framework .NET
Blazor, un nuevo framework .NET
 
PHP
PHPPHP
PHP
 
No quiero vuestra basura en Android
No quiero vuestra basura en AndroidNo quiero vuestra basura en Android
No quiero vuestra basura en Android
 
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!
Tu posicionamiento mejora con la velocidad de tu web ¡WPO para todos!
 
#Win8JSApps | 4.- Métodos de desarrollo
#Win8JSApps | 4.- Métodos de desarrollo#Win8JSApps | 4.- Métodos de desarrollo
#Win8JSApps | 4.- Métodos de desarrollo
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
 
Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...
 
#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-end#MM17ES - Theming en Magento 2 usando un framework de front-end
#MM17ES - Theming en Magento 2 usando un framework de front-end
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
PHP para todos con Visual Studio Code Modulo 1
 PHP para todos con Visual Studio Code Modulo 1  PHP para todos con Visual Studio Code Modulo 1
PHP para todos con Visual Studio Code Modulo 1
 
Pangoscrum
PangoscrumPangoscrum
Pangoscrum
 

Destacado (7)

Struts2
Struts2Struts2
Struts2
 
A hard feeling_kh_dossary
A hard feeling_kh_dossaryA hard feeling_kh_dossary
A hard feeling_kh_dossary
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
 
Metaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScriptMetaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScript
 
Programación Asíncrona en Node JS
Programación Asíncrona en Node JSProgramación Asíncrona en Node JS
Programación Asíncrona en Node JS
 

Similar a Uso de tecnologías modernas en joomla

Pablo Arias: Joomla como herramienta para el desarrollo web
Pablo Arias: Joomla como herramienta para el desarrollo webPablo Arias: Joomla como herramienta para el desarrollo web
Pablo Arias: Joomla como herramienta para el desarrollo webPHP Vigo
 
El equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoDavid Monllaó
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoFinizens
 
Webinar: Migrar el testing a open source
Webinar: Migrar el testing a open sourceWebinar: Migrar el testing a open source
Webinar: Migrar el testing a open sourceFederico Toledo
 
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...César Hernández
 
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CICalidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CIYannick Warnier
 
Software libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresasSoftware libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresasIván Campaña Naranjo
 
Plugin para-joomla-45-minutos
Plugin para-joomla-45-minutosPlugin para-joomla-45-minutos
Plugin para-joomla-45-minutosRoberto Segura
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloGastón Guillerón
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollogabrielpiccoli
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 

Similar a Uso de tecnologías modernas en joomla (20)

Git Flow y GitOps
Git Flow y GitOpsGit Flow y GitOps
Git Flow y GitOps
 
Pablo Arias: Joomla como herramienta para el desarrollo web
Pablo Arias: Joomla como herramienta para el desarrollo webPablo Arias: Joomla como herramienta para el desarrollo web
Pablo Arias: Joomla como herramienta para el desarrollo web
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 
El equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigo
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológico
 
Construyendo en serie
Construyendo en serieConstruyendo en serie
Construyendo en serie
 
Working with a design system
Working with a design systemWorking with a design system
Working with a design system
 
Webinar: Migrar el testing a open source
Webinar: Migrar el testing a open sourceWebinar: Migrar el testing a open source
Webinar: Migrar el testing a open source
 
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
 
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CICalidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
 
Software libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresasSoftware libre como fuente de poder en las empresas
Software libre como fuente de poder en las empresas
 
Git 101
Git 101Git 101
Git 101
 
Plugin para-joomla-45-minutos
Plugin para-joomla-45-minutosPlugin para-joomla-45-minutos
Plugin para-joomla-45-minutos
 
Pruebas Unitarias
Pruebas Unitarias Pruebas Unitarias
Pruebas Unitarias
 
Ingeniería de Software
Ingeniería de SoftwareIngeniería de Software
Ingeniería de Software
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para Desarrollo
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollo
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 

Más de Roberto Segura

Using twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensionsUsing twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensionsRoberto Segura
 
TDD for joomla extensions
TDD for joomla extensionsTDD for joomla extensions
TDD for joomla extensionsRoberto Segura
 
Joomla Entity - API semántica para Joomla
Joomla Entity - API semántica para JoomlaJoomla Entity - API semántica para Joomla
Joomla Entity - API semántica para JoomlaRoberto Segura
 
JLayout for extension developers
JLayout for extension developersJLayout for extension developers
JLayout for extension developersRoberto Segura
 
Git for joomla! development #JAB14
Git for joomla! development #JAB14Git for joomla! development #JAB14
Git for joomla! development #JAB14Roberto Segura
 
Joomla! future #jd14fr keynote
Joomla! future #jd14fr keynoteJoomla! future #jd14fr keynote
Joomla! future #jd14fr keynoteRoberto Segura
 

Más de Roberto Segura (7)

Using twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensionsUsing twig as rendering system for your Joomla extensions
Using twig as rendering system for your Joomla extensions
 
TDD for joomla extensions
TDD for joomla extensionsTDD for joomla extensions
TDD for joomla extensions
 
Joomla Entity - API semántica para Joomla
Joomla Entity - API semántica para JoomlaJoomla Entity - API semántica para Joomla
Joomla Entity - API semántica para Joomla
 
JLayout for extension developers
JLayout for extension developersJLayout for extension developers
JLayout for extension developers
 
Joomla JLayout
Joomla JLayout Joomla JLayout
Joomla JLayout
 
Git for joomla! development #JAB14
Git for joomla! development #JAB14Git for joomla! development #JAB14
Git for joomla! development #JAB14
 
Joomla! future #jd14fr keynote
Joomla! future #jd14fr keynoteJoomla! future #jd14fr keynote
Joomla! future #jd14fr keynote
 

Uso de tecnologías modernas en joomla

  • 1. Uso de tecnologías modernas en Joomla!
  • 3. Sobre mi ● Programador PHP / Javascript. ● Programando desde 2011. ● Adicto al Opensource. ● #26 contribuidor a Joomla! @phproberto | https://www.phproberto.com
  • 4. ¿Por qué usar tecnologías modernas? ● Evolución personal. Evolución de tus trabajadores. Evolución de tu negocio. ● Independencia de la plataforma. ● Vida media de una empresa es de 10 años. La mitad no llega a los 5 años. ● Reducir tiempo de desarrollo. ● Fiabilidad. ● Seguridad. ● Marketing.
  • 5. Ten en cuenta ● No todas las nuevas tecnologías son buenas. ● Conoce tu mercado. Pregunta a tus usuarios. ● Reserva tiempo para I+D. ● Analiza la evolución antes de usar una tecnología. ● Introduce cambios paulatinamente. ● Asigna prioridades para su implementación. Fases.
  • 6. Prepara tu Joomla! ● Siempre versión 3.x. ● Buenas tecnologías requieren un buen hosting. ● Comprueba las dependencias de tus extensiones. ● Usa siempre un buen entorno de desarrollo local. https://www.joomla.org
  • 8. ¿Qué versión de PHP elegir? ● Joomla requiere PHP 5.3.10. No traits no party :( ● Versión más común PHP 5.5 / 5.6 ● Joomla! bajo PHP 7 es un 62% más rápido. ● Extensiones comerciales: PHP 5.5 / 5.6 ● Desarrollos a medida: PHP 7. http://php.net
  • 9. Composer ● Gestor de dependencias para librerías PHP. ● Es un estándar de facto. ● Perfectamente integrable con Git. ● Librerías explorables a traves de Packagist ( https://packagist.org ) ● Distribuye tus librerías para cualquier sistema. https://getcomposer.org
  • 11. PHP Namespaces ● Requiere PHP 5.3 ● Evitar conflictos con nombres de clases. ● Agrupar grupos de clases por nombre. ● Integrado en composer. ● Perfecta integración con Github. ● Modularización. http://php.net/manual/es/language.namespaces.php
  • 13. PHP Traits ● Requiere PHP 5.4. ● Rompe la herencia vertical de clases. ● Modularización. ● Perfecto para combinar con Joomla. ● No sustituye la herencia tradicional de clases. http://php.net/manual/es/language.oop5.traits.php
  • 14. PHP Traits: Ejemplo de herencia vertical http://php.net/manual/es/language.oop5.traits.php
  • 15. PHP Traits: Ejemplo de trait http://php.net/manual/es/language.oop5.traits.php
  • 17. ¿Qué versión de MySQL elegir? ● Joomla requiere MySQL +5.1. ● Versión más común MySQL 5.5 /5.6 ● MySQL 5.7 es 200% más rápido. ● Extensión comercial: MySQL 5.5 ● Desarrollos a medida: MySQL 5.7 https://www.mysql.com
  • 18. Git ● Control de versiones. ● CASI imposible perder algo. ● Changelog casi automático. ● Búsqueda en el historial. ● No es una opción, es un requisito. ● Puedes empezar con una interfaz: GitKraken, Tower, Github... https://git-scm.com
  • 19. Tests / CI ● Tus usuarios no son ratas de laboratorio. ● Pruebas unitarias: ○ PHPUnit. ● Pruebas de aceptación. ○ Selenium, Codeception, Behat, etc. ● Travis CI, Jenkins, Gitlab CI, etc.
  • 21. Sass ● Preprocesador CSS. ● Variables personalizables. ● Funciones (mixins). ● Modulariza tus estilos. ● Reusabilidad. ● Define media queries dentro de cada elemento. http://sass-lang.com
  • 23. Bower ● Gestor de dependencias de assets (css, javascript). ● No depende de otras tecnologías. ● No soporta dependencias anidadas. ● Está siendo reemplazado por npm. ● Fácilmente reemplazable en cuestión de minutos. http://bower.io
  • 24. Node.js ● Pequeñas librerías javascript que pueden conectarse entre sí. ● Multiplataforma. ● Gestor de assets ( npm ). ● Perfecta integración con Git. ● En Joomla principalmente para sistemas de build y assets. https://nodejs.org
  • 25. Grunt / Gulp ● Sistemas de build basados en Node.js ● Usos más comunes: ○ Compilar javascript y minimizar archivo resultante. ○ Compilar Sass / LESS y minimizar CSS resultante.. ○ Actualizar sitio de prueba con cambios en idiomas, php, etc. ○ BrowserSync ver cambios en tiempo real. ○ Crear zip para empaquetar tus extensiojnes (releases). http://gulpjs.com | http://gruntjs.com
  • 26. SVG ● Archivos pequeños con buena compresión. ● Manipulables a través de CSS y Javascript. ● Se adaptan bien a cualquier resolución. ● Iconos perfectos. ● Funcionan en cualquier navegador salvo IE8 / Android 2.3. ● Se pueden incrustar sin requests adicionales. http://www.w3schools.com/svg
  • 27. Tú eres la tecnología más importante. NUNCA dejes de actualizarte.