Responsabilités des bundles
AppBundle
Le bundle principal. Contient toute la logique métier et les commandes Symfony.
Commandes (Command/)
Organisées par domaine métier :
| Sous-répertoire | Rôle | Exemples |
|---|---|---|
Sale/ | Import et gestion des ventes | menzzo:v2:sales, menzzo:v2:sales:update |
Product/ | Synchronisation produits | menzzo:v2:products |
Stock/ | Mise à jour du stock | Commandes de synchronisation stock |
Payment/ | Paiements | menzzo:v2:sales:payment |
Refund/ | Remboursements | Commandes de traitement des retours |
Les commandes utilisent LockableTrait pour prévenir l'exécution concurrente.
Services (Services/)
Logique métier réutilisable appelée par les commandes et les contrôleurs :
| Service | Rôle |
|---|---|
SaleService | Import, création et mise à jour des ventes |
ProductQtyLogService | Journalisation des mutations de stock |
SaleProductAvailabilityService | Calcul de disponibilité et dates de livraison |
Entités (Entity/)
Entités Doctrine mappées à la base de données :
Sale— commandeSaleProduct— ligne de commandeProduct— produit du catalogueSaleLog— journal des événements de vente
Services YAML
Les services sont déclarés dans src/AppBundle/Resources/config/services.yml avec l'injection de dépendances.
CoreBundle
Bundle noyau avec les composants transversaux :
- Entités de base partagées entre bundles
- Utilitaires communs
- Configuration globale du projet
Conventions de nommage
- Commandes :
*Command.php— nommées d'après l'action métier - Services :
*Service.php— logique réutilisable sans état - Contrôleurs :
*Controller.php— points d'entrée HTTP - Repositories :
*Repository.php— requêtes Doctrine personnalisées