Refatoring : Working state

This commit is contained in:
julien
2026-03-16 15:37:57 +01:00
parent aa00bec846
commit a5ca0df375
16 changed files with 251 additions and 568 deletions

View File

@@ -87,7 +87,7 @@ Le projet a un double objectif : fonctionner comme un vrai blog, et servir de ba
- Articles avec éditeur WYSIWYG, slugs stables et recherche full-text
- Catégories pour filtrer les articles
- Médias : téléversement d'images converties en WebP avec déduplication
- Médias : téléversement d'images converties en WebP avec déduplication par utilisateur
- Comptes utilisateurs avec trois rôles : user, editor, admin
- Réinitialisation de mot de passe par e-mail
- Flux RSS des 20 derniers articles
@@ -101,6 +101,9 @@ C'est précisément son intérêt. Le code ne se cache pas derrière des couches
Ce guide accompagne cette progression. Le chapitre 2 pose les bases du langage, les chapitres suivants expliquent les choix d'architecture, et le chapitre 8 montre comment faire évoluer le projet concrètement. L'objectif n'est pas d'impressionner, c'est d'être compréhensible.
> **Note de mise à jour architecture** — le code actuel utilise des classes concrètes nommées `*ApplicationService`, des contrôleurs sous `Http/` et des implémentations PDO sous `Infrastructure/`. Quelques exemples pédagogiques plus loin gardent volontairement les noms courts `PostService`, `UserService`, etc. pour alléger les explications ; ils correspondent respectivement à `PostApplicationService`, `UserApplicationService`, `MediaApplicationService`, `CategoryApplicationService`, `AuthApplicationService` et `PasswordResetApplicationService`.
**À qui s'adresse ce guide ?** Le lecteur visé sait déjà programmer — en Python, JavaScript, ou dans un autre langage — et est à l'aise avec les concepts fondamentaux : variables, boucles, fonctions, objets. En revanche, il n'a jamais ou peu écrit de PHP. Le chapitre 2 ne réexplique pas ces concepts : il montre comment PHP les traite, en insistant sur les endroits où le langage fait des choix inhabituels ou impose des conventions qui peuvent surprendre.
### 1.4 Interface de l'application
@@ -571,7 +574,7 @@ Contient les migrations SQL qui construisent le schéma de la base de données.
```
database/ ← migrations SQL, une par table
└── migrations/ ← exécutées dans l'ordre alphanumérique
├── 001_create_users.php
├── 001_create_schema.php
├── 002_create_categories.php
├── 003_create_posts.php
├── 004_create_media.php
@@ -583,7 +586,7 @@ database/ ← migrations SQL, une par table
Chaque fichier retourne un tableau associatif avec les requêtes SQL. Voici la migration qui crée la table `users` :
```php
// database/migrations/001_create_users.php
// database/migrations/001_create_schema.php
return [
'up' => "
CREATE TABLE IF NOT EXISTS users (