Aquí os dejo el primero de una serie de vídeos sobre Refactoring. En concreto en este vídeo nos vamos a centrar en el uso de namespaces siguiendo PSR-4 y cómo se articula esto a nivel de autoloader (aprovechando el propio de Composer) y de IDE (ajustando las preferencias de PhpStorm). A continuación os dejo la lista de temas tocados y los tiempos del vídeo así como el material relacionado:
Temas tocados
- Pasar de un autoloader propio a usar el autoloader de Composer
- Aplicar namespaces siguiendo el estándar PSR-4
- Optimización del classmap generado por Composer a través de la configuración del composer.json
- Configuración del proyecto en PhpStorm para que genere los namespaces correctos en base a la estructura de carpetas
- Traslado de archivos fuente a carpeta src/
Vídeo
Índice
- 0:00 - Estado actual del código
- 3:50 - Qué es un namespace global y por qué es necesario
- 5:24 - Creación de carpeta "src/" y configuración de PhpStorm para que reconozca el nuevo namespace global
- 6:45 - Traslado de todas las clases a la nueva carpeta "src/"
- 8:15 - Modificación de las clases para introducir el namespace
- 11:12 - Eliminación del autoloader propio que se incluía en el proyecto
- 11:40 - Modificación del archivo composer.json para incluir política de autoload para así poder generar el autoloader adecuadamente
- 13:05 - Especificación de la optimización del classmap generado por Composer a través de la configuración del composer.json
- 14:35 - Demostración de creación de clases a través del PhpStorm con la generación del namespace correcto automática
- 15:58 - Recapitulación y conclusión del proceso llevado a cabo
Material relacionado
- Especificación del estándar PSR-4 para namespaces del PHP FIG
- Ejemplos de implementación de PSR-4
- Cómo usar PSR-4
- Explicación y benchmarks sobre la optimización del autoloader de Composer
- Directiva optimize-autoloader del composer.json
- Documentación sobre los ajustes de directorios de PhpStorm
Siguientes vídeos
- PHP - Estilo de código, estándar PSR-1 y PSR-2 (Nivel básico)
- SOLID - Principio de Responsabilidad Única y Principio de Segregación de Interfaces (Nivel medio)
- SOLID - Principio de Inversión de Dependencias (Nivel medio)
- DTOs / Modelos de dominio anémicos vs Modelos de Dominio (Nivel medio)