Fullstack experto en prestashop, php y symfony: arquitecturas, patrones, docker, apis, testing, ci/cd y buenas prácticas

Fundamentos de PHP Avanzado

  • Declaración de Variables y Constantes
  • Tipos Escalares y Compuestos
  • Coerción de Tipos y Comparaciones Estrictas
  • Operadores Aritméticos, Lógicos y de Comparación
  • Estructuras de Control (If/Else, Switch, Bucles)
  • Funciones Anónimas, Arrow Functions y Closures
  • Namespaces y Autoloading (PSR-4)
  • Manejo de Errores Tradicional (trigger_error)
  • Clases de Excepciones Estándar
  • Creación de Excepciones Personalizadas
  • Bloques try-catch-finally
  • Manejo de Errores Fatales y Shutdown Functions
  • Logging de Errores y Stack Traces
  • Depuración con Xdebug
  • Clases, Objetos, Propiedades y Métodos
  • Constructores, Destructores y Autoloading
  • Herencia, Abstracción e Interfaces
  • Traits y Clases Anónimas
  • Encapsulamiento (público, protegido, privado)
  • Polimorfismo y Type Hinting
  • Clases Finales y Métodos Finales

Patrones de Diseño y Principios de Ingeniería de Software

  • Match Expression (PHP 8+)
  • Operador Nullsafe (PHP 8+)
  • Named Arguments (PHP 8+)
  • Declaraciones de Tipos Escalares y de Retorno
  • Propiedades Promocionadas en Constructores (PHP 8+)
  • Atributos (PHP 8+) y su uso
  • Enumeraciones (Enums) (PHP 8.1+)
  • Principio de Responsabilidad Única (SRP)
  • Principio Abierto/Cerrado (OCP)
  • Principio de Sustitución de Liskov (LSP)
  • Principio de Segregación de Interfaces (ISP)
  • Principio de Inversión de Dependencias (DIP)
  • Aplicación de SOLID en PHP
  • Refactoring Basado en SOLID
  • Patrón Singleton
  • Patrón Factory Method
  • Patrón Abstract Factory
  • Patrón Builder
  • Patrón Prototype
  • Inyección de Dependencias (DI) y Contenedores DI
  • Service Locator
  • Patrón Adapter
  • Patrón Decorator
  • Patrón Facade
  • Patrón Bridge
  • Patrón Composite
  • Patrón Proxy
  • Patrón Flyweight

Dominio de Symfony Framework

  • 📚 Introducción: Patrones en Symfony
  • Patrón Strategy
  • Patrón Observer
  • Patrón Command
  • Patrón Iterator
  • Patrón State
  • Patrón Template Method
  • Patrón Chain of Responsibility
  • Arquitectura del Kernel y Bundles
  • Rutas, Controladores y Respuestas HTTP
  • Plantillas Twig y sus Extensiones
  • Inyección de Dependencias y Contenedor de Servicios
  • Ciclo de Vida de una Petición HTTP
  • Consola de Symfony (bin/console)
  • Configuración y Variables de Entorno (DotEnv)
  • Mapeo de Entidades y Repositorios
  • Migraciones de Base de Datos con Doctrine Migrations
  • DQL (Doctrine Query Language)
  • Relaciones entre Entidades (OneToOne, ManyToOne, OneToMany, ManyToMany)
  • Eventos de Doctrine (Lifecycle Callbacks)
  • Fixtures de Datos con DoctrineFixturesBundle
  • Caching de Consultas y Resultados
  • Creación de Formularios con el Componente Form
  • Tipos de Campos y Opciones Avanzados
  • Manejo de Subida de Archivos en Formularios
  • Grupos de Validación y Contextos
  • Validadores Personalizados
  • Integración de Formularios con Twig
  • Manejo de Errores y Mensajes de Validación
  • Firewall de Seguridad y Acceso
  • Autenticación Basada en Sesiones, Tokens y JWT
  • Proveedores de Usuarios
  • Volantes de Seguridad (Voters)
  • Encriptación de Contraseñas (Password Hasher)
  • Protección CSRF y Headers de Seguridad
  • Autorización y Roles de Usuario

Desarrollo con PrestaShop

  • Conceptos de Message Bus, Messages y Handlers
  • Sincronización y Asincronía de Mensajes
  • Integración con Colas de Mensajes (Redis, RabbitMQ, SQS)
  • Workers y Supervisión
  • Serialización de Mensajes
  • Middleware de Messenger
  • Fallos y Reintentos de Mensajes
  • Ciclo de Vida de Peticiones en PrestaShop
  • Estructura de Módulos y Temas
  • Overrides de Clases, Controladores y Modelos
  • Hooks y Eventos en PrestaShop
  • Modelo de Datos de PrestaShop y Clases Core
  • Configuración Multitienda y Multi-idioma
  • Caché de PrestaShop (Smarty, APCu, Memcached)
  • Creación de Controladores Front Office y Back Office
  • Uso del ORM de PrestaShop (ORM Core)
  • Configuración de Módulos y Pestañas en el Back Office
  • Gestión de Activos (CSS/JS) y Compilación
  • Internacionalización y Traducciones en Módulos
  • Integración con Web Services de PrestaShop
  • Buenas Prácticas y Estándares de Codificación para Módulos
  • Estructura de un Tema (Classic, Starter Theme)
  • Sobreescritura de Plantillas Smarty/Twig (PrestaShop 1.7+)
  • Integración de Módulos en el Tema
  • Personalización Avanzada de CSS (Sass/Less) y JavaScript
  • Optimización de Rendimiento del Tema
  • Responsive Design y Adaptación Móvil
  • Creación de Páginas y Layouts Personalizados

Bases de Datos y SQL Avanzado

  • Diseño de Bases de Datos Relacionales
  • Modelado Entidad-Relación (ERD)
  • Normalización de Bases de Datos (1NF, 2NF, 3NF, BCNF)
  • Tipos de Relaciones (Uno-a-Uno, Uno-a-Muchos, Muchos-a-Muchos)
  • Índices y Claves (Primarias, Foráneas, Únicas)
  • Patrones de Diseño de Esquemas (EAV, Adjacency List)
  • Integridad Referencial y Restricciones
  • Desnormalización Estratégica
  • SQL Avanzado
  • Subconsultas Correlacionadas y No Correlacionadas
  • CTEs (Common Table Expressions) y Recursive CTEs
  • Funciones de Ventana (Window Functions)
  • Funciones Agregadas Avanzadas y Group By con HAVING
  • Joins Complejos (CROSS JOIN, SELF JOIN, FULL OUTER JOIN)
  • Transacciones SQL y Propiedades ACID
  • Vistas Materializadas y Virtuales
  • Mantenimiento y Optimización de PrestaShop
  • Gestión y Limpieza de la Caché
  • Optimización de Base de Datos y Consultas
  • Monitorización de Rendimiento y Herramientas
  • Actualizaciones y Migraciones de Versión (Major/Minor)
  • Solución de Problemas Comunes y Depuración
  • Gestión de Logs y Errores
  • Configuración de CRON Jobs para Tareas Programadas

API RESTful y Microservicios

  • Optimización de Consultas (EXPLAIN PLAN)
  • Tuning de Servidores de Bases de Datos
  • Backup y Restauración Estratégica
  • Particionamiento de Tablas
  • Replicación y Alta Disponibilidad
  • Seguridad de Bases de Datos y Permisos
  • Monitoreo de Rendimiento de BD
  • Principios REST (Stateless, Cacheable, Uniform Interface)
  • Verbos HTTP (GET, POST, PUT, PATCH, DELETE) y su Semántica
  • Códigos de Estado HTTP y su Significado
  • Versionado de APIs (URI, Header, Query Parameter)
  • Paginación, Filtrado, Ordenamiento y Búsqueda
  • HATEOAS (Hypermedia as the Engine of Application State)
  • Documentación de APIs (OpenAPI/Swagger, Postman)
  • Creación de Controladores de API
  • Serialización/Deserialización (Symfony Serializer Component)
  • Manejo de Errores y Excepciones en APIs
  • Autenticación y Autorización para APIs (JWT, OAuth2, API Keys)
  • Rate Limiting y Throttling
  • Caché de APIs con Varnish o Symfony Cache Component
  • Consumo de APIs Externas (Symfony HttpClient)

Contenedores y Docker

  • Conceptos Básicos de Contenedores
  • Arquitectura de Docker
  • Imágenes y Contenedores
  • Almacenamiento en Contenedores
  • Redes en Docker
  • Docker Hub y Registries Privados
  • Buenas Prácticas con Docker
  • Introducción a Docker Compose
  • Archivos docker-compose.yml
  • Variables de Entorno y Secrets
  • Redes y Volúmenes en Compose
  • Orquestación de Múltiples Contenedores
  • Perfiles en Docker Compose
  • Depuración y Resolución de Problemas
  • Seguridad en Docker
  • Monitoreo de Contenedores
  • Logging en Docker
  • Escalado de Contenedores
  • Docker Swarm para Orquestación
  • Introducción a Kubernetes
  • Integración Continua/Despliegue Continuo con Docker

Gestión y Orquestación de Contenedores para Prestashop

  • Estrategias de Despliegue con Docker
  • Integración de Docker con Pipelines CI/CD
  • Seguridad de Contenedores y Mejores Prácticas
  • Monitorización de Contenedores (Prometheus, Grafana)
  • Almacenamiento Persistente y Montajes en Producción
  • Optimización de Imágenes (Multi-stage builds, capas)
  • Introducción a Orquestadores (Docker Swarm, Kubernetes)

Integración Continua y Despliegue Continuo (CI/CD)

  • PHPStan para Análisis Estático de Tipos
  • PHP_CodeSniffer para Estándares de Codificación (PSR-12)
  • PHPMD (PHP Mess Detector) para Detección de Código Maloliente
  • Herramientas de Análisis de Complejidad Ciclomática
  • Code Reviews y Pair Programming
  • Métricas de Calidad de Código
  • Refactoring Continuo Basado en Análisis
  • Principios de Integración Continua
  • Principios de Despliegue Continuo y Entrega Continua
  • Herramientas de CI/CD (GitHub Actions, GitLab CI, Jenkins, CircleCI)
  • Automatización de Builds y Tests
  • Gestión de Artefactos de Construcción
  • Estrategias de Ramificación (Gitflow, Trunk-Based Development, Feature Branching)
  • Versionado Semántico
  • Configuración de GitHub Actions/GitLab CI para Proyectos PHP/Symfony
  • Ejecución de Pruebas Unitarias y de Integración en CI
  • Análisis Estático de Código y Verificación de Estándares en CI
  • Construcción de Imágenes Docker en CI
  • Generación de Reportes de Cobertura de Código
  • Notificaciones de CI (Slack, Email)
  • Seguridad en Pipelines CI y Gestión de Credenciales

Arquitecturas de Software y Escalabilidad

  • Despliegue Automático a Entornos de Staging y Producción
  • Estrategias de Despliegue (Blue/Green, Canary, Rolling Updates)
  • Gestión de Rollbacks y Downtime Cero
  • Configuración de Variables de Entorno Seguras
  • Monitorización Post-Despliegue y Alertas
  • Integración con Infraestructura (SSH, Kubernetes, Cloud Providers)
  • Gestión de Secrets en CD
  • Arquitectura Monolítica y sus Ventajas/Desventajas
  • Arquitectura por Capas (Layered Architecture)
  • Arquitectura Hexagonal (Ports and Adapters)
  • CQRS (Command Query Responsibility Segregation)
  • Event-Driven Architecture (EDA)
  • Domain-Driven Design (DDD) (conceptos clave)
  • Arquitectura Orientada a Servicios (SOA)
  • Escalabilidad Horizontal vs. Vertical
  • Balanceadores de Carga y Proxy Inverso
  • Bases de Datos Escalables (Replicación, Sharding, NoSQL)
  • Caching Distribuido (Redis, Memcached)
  • Colas de Mensajes (RabbitMQ, Kafka, SQS) para Procesamiento Asíncrono
  • Microservicios y API Gateways para Gestión de Tráfico
  • CDN (Content Delivery Network) para Contenido Estático

Buenas Prácticas y Rendimiento en Prestashop

  • Conceptos de IaaS, PaaS, SaaS
  • Proveedores Cloud (AWS, Azure, Google Cloud Platform)
  • Virtualización vs. Contenedores
  • Infraestructura como Código (Terraform, Ansible, CloudFormation)
  • Serverless Computing (AWS Lambda, Azure Functions)
  • Monitorización y Observabilidad (Prometheus, Grafana, ELK Stack, Jaeger)
  • Gestión de Logs Centralizada y Métricas
  • Nombres Significativos y Legibles
  • Funciones y Clases Pequeñas y con una Única Responsabilidad
  • Comentarios Útiles y Evitar Comentarios Redundantes
  • Manejo de Errores y Excepciones Limpio
  • Refactoring Continuo y Deuda Técnica
  • Principio DRY (Don't Repeat Yourself)
  • Coherencia en el Estilo de Código
  • Uso Eficiente de Estructuras de Datos y Algoritmos
  • Optimización de Consultas a Base de Datos
  • Caching de Código (OPcache) y Caching de Datos
  • Profiling de Aplicaciones (Blackfire, Xdebug Profiler)
  • Gestión de Memoria y Evitar Fugas
  • Lazy Loading y Eager Loading
  • Minimización de Peticiones HTTP y Reducción de Tamaño de Assets

Herramientas de Desarrollo y Flujo de Trabajo

  • OWASP Top 10 y su Mitigación
  • Prevención de SQL Injection (Prepared Statements)
  • Prevención de XSS (Cross-Site Scripting)
  • Prevención de CSRF (Cross-Site Request Forgery)
  • Autenticación y Autorización Segura
  • Gestión de Sesiones Seguras
  • Validación de Entradas de Usuario (Input Validation)
  • Manejo Seguro de Secretos y Credenciales
  • Comandos Básicos de Git (add, commit, push, pull, clone)
  • Ramificación (Branching), Fusión (Merging) y Rebase
  • Resolución de Conflictos de Fusión
  • Stash y Cherry-pick
  • Workflows de Git (Gitflow, GitHub Flow, GitLab Flow)
  • Herramientas de Interfaz Gráfica para Git (Sourcetree, GitKraken, VS Code Git Integration)
  • .gitignore y .gitattributes
  • IDEs (PhpStorm, VS Code) y sus configuraciones
  • Depuración Avanzada con Xdebug
  • Linters y Formatters (PHP-CS-Fixer, Prettier)
  • Entornos de Desarrollo Locales (Valet, Laragon, Lando)
  • Terminales Avanzados (iTerm2, Zsh con Oh My Zsh)
  • Atajos de Teclado y Personalización del IDE
  • Contenedores de Desarrollo (DevContainers)
  • Metodologías Ágiles (Scrum, Kanban)
  • Herramientas de Gestión de Proyectos (Jira, Trello, Asana, Azure DevOps)
  • Code Reviews y Pull Requests
  • Comunicación Efectiva en Equipos de Desarrollo
  • Documentación de Código y Proyectos (Markdown, Wiki)
  • Gestión de Dependencias (Composer)
  • Herramientas de Automatización (Makefiles, npm scripts)