Le contexte
Glad Blog est un blog simple avec CRUD et authentification minimaliste, écrit en PHP pur — sans Laravel ni Symfony. Je le présente comme l'une de mes premières étapes dans l'exploration de PHP : apprendre les fondamentaux, monter un premier projet en production et construire soi-même l'environnement de développement avec Docker.
Le projet n'est pas un produit fini : il lui manque encore des couches de sécurité, des tests et d'autres bonnes pratiques. En revanche, il reste intéressant pour ce qu'il force à comprendre sans framework : architecture MVC, routage maison, injection de dépendances légère et design patterns concrets.
Côté métier, les Entities portent des règles (domaine moins anémique que dans mes premières versions), tandis que les Managers gèrent la persistance. Les contrôleurs restent fins grâce à un conteneur (`AppContainer`) qui injecte Managers et Session. Le routage s'appuie sur les Attributes PHP `#[Route]` découverts par Reflection au démarrage du front controller.
Mes réalisations :
- Architecture et patterns :
- MVC (Controllers / Views / Entities + Managers) et POO PHP, sans framework
- Abstract Factory : `PdoConnectionFactory` (MySQL / Postgres) et `DocumentConnectionFactory` (Mongo) ; l'app utilise MySQL par défaut
- Template Method : `AbstractController`, `BaseManager` et `BaseEntity` fixent le squelette ; les sous-classes n'implémentent que le détail
- Routage Attributes + Reflection : `#[Route('/read', ...)]` enregistré au démarrage via `ReflectionClass`
- Stack et environnement :
- PHP 8.1, JavaScript, HTML/CSS ; MySQL ; Apache
- Docker Compose : blog sur le port 1300, Adminer sur 1301, `composer install` au démarrage du conteneur PHP
- Dépôt GitHub : code source et README d'installation (clone, `docker compose up`, compte démo)
