Refatoring : Working state
This commit is contained in:
@@ -429,8 +429,8 @@ Qui assemble les dépendances ? PHP-DI dans `config/container.php`. Il résout a
|
||||
// Extrait de config/container.php
|
||||
// Binding interface → implémentation : PHP-DI injecte PostRepository partout où
|
||||
// PostRepositoryInterface est demandé. PostService lui-même est résolu par autowiring.
|
||||
PostRepositoryInterface::class => autowire(PostRepository::class),
|
||||
PostServiceInterface::class => autowire(PostService::class),
|
||||
PostRepositoryInterface::class => autowire(PdoPostRepository::class),
|
||||
PostServiceInterface::class => autowire(PostApplicationService::class),
|
||||
```
|
||||
|
||||
> 💡 Pour ajouter un nouveau service : créer la classe avec ses dépendances typées en constructeur, puis déclarer le binding interface → classe dans `config/container.php`. Si toutes les dépendances sont elles-mêmes typées sur des interfaces déjà liées, PHP-DI résout tout automatiquement — aucune factory à écrire.
|
||||
@@ -873,8 +873,8 @@ Les services dépendent des interfaces, jamais des classes concrètes. Cela appo
|
||||
|
||||
```php
|
||||
// config/container.php
|
||||
PostRepositoryInterface::class => autowire(PostRepository::class),
|
||||
PostServiceInterface::class => autowire(PostService::class),
|
||||
PostRepositoryInterface::class => autowire(PdoPostRepository::class),
|
||||
PostServiceInterface::class => autowire(PostApplicationService::class),
|
||||
```
|
||||
|
||||
**Factories scalaires** — pour les dépendances qui ont besoin de paramètres issus de `.env` ou du système de fichiers (PDO, Twig, Monolog) :
|
||||
@@ -979,7 +979,7 @@ DuplicateEmailException — adresse e-mail déjà utilisée
|
||||
WeakPasswordException — mot de passe inférieur à 8 caractères
|
||||
```
|
||||
|
||||
Elles sont levées par `UserService` (`DuplicateUsernameException`, `DuplicateEmailException`, `WeakPasswordException`) et par `AuthService` et `PasswordResetService` (`WeakPasswordException`), puis attrapées dans les contrôleurs via un seul bloc `catch(\InvalidArgumentException)` : le message de l'exception est transmis directement au flash et affiché dans le formulaire.
|
||||
Elles sont levées par `UserService` (`DuplicateUsernameException`, `DuplicateEmailException`, `WeakPasswordException`) et par `AuthApplicationService` et `PasswordResetApplicationService` (`WeakPasswordException`), puis attrapées dans les contrôleurs via un seul bloc `catch(\InvalidArgumentException)` : le message de l'exception est transmis directement au flash et affiché dans le formulaire.
|
||||
|
||||
### 5.9 Gestion des erreurs et messages flash
|
||||
|
||||
|
||||
Reference in New Issue
Block a user