El contexto
Glad Blog es un blog sencillo con CRUD y autenticación minimalista, escrito en PHP puro — sin Laravel ni Symfony. Lo presento como uno de mis primeros pasos en la exploración de PHP: aprender los fundamentos, montar un primer proyecto orientado a producción y construir el entorno de desarrollo con Docker.
El proyecto no es un producto terminado: aún le faltan capas de seguridad, tests y otras buenas prácticas. Sin embargo, sigue siendo interesante por lo que obliga a entender sin framework: arquitectura MVC, enrutado casero, inyección de dependencias ligera y design patterns concretos.
En el dominio, las Entities llevan reglas de negocio (modelo menos anémico que en mis primeras versiones), mientras que los Managers gestionan la persistencia. Los controladores se mantienen finos gracias a un contenedor (`AppContainer`) que inyecta Managers y Session. El enrutado se basa en Attributes PHP `#[Route]` descubiertos por Reflection al arrancar el front controller.
Lo que aprendí :
- Arquitectura y patrones:
- MVC (Controllers / Views / Entities + Managers) y POO en PHP, sin framework
- Abstract Factory: `PdoConnectionFactory` (MySQL / Postgres) y `DocumentConnectionFactory` (Mongo); la app usa MySQL por defecto
- Template Method: `AbstractController`, `BaseManager` y `BaseEntity` fijan el esqueleto; las subclases solo implementan el detalle
- Enrutado Attributes + Reflection: `#[Route('/read', ...)]` registrado al arranque vía `ReflectionClass`
- Stack y entorno:
- PHP 8.1, JavaScript, HTML/CSS; MySQL; Apache
- Docker Compose: blog en el puerto 1300, Adminer en 1301, `composer install` al arrancar el contenedor PHP
- Repositorio GitHub: código fuente y README de instalación (clone, `docker compose up`, cuenta demo)
