🗄️ Mini-projet — Blog CMS Doctrine
Persistance complète du blog avec Doctrine ORM — entités, relations, migrations, repositories.
📐 Schéma de base de données
users ──[OneToMany]──> articles ──[ManyToMany]──> tags
│
[ManyToOne]
│
categories
│
[OneToMany]
│
comments
🎯 Entités à créer
User — id, email, name, roles, password, createdAt
Category — id, name, slug, description
Article — id, title, slug, body, published, createdAt, author (ManyToOne), category (ManyToOne), tags (ManyToMany)
Tag — id, name, slug
Comment — id, body, createdAt, article (ManyToOne), author (ManyToOne)
🎯 Fonctionnalités Doctrine
- Migration initiale générée et exécutée
- Fixtures avec 5 catégories, 20 articles, 3 tags
ArticleRepository::findPublishedByCategory()ArticleRepository::search(string $q)avec LIKE- Lifecycle callback
PrePersistpour createdAt / updatedAt - Eager loading avec
leftJoin + addSelect(éviter N+1)