Aller au contenu principal

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épertoireRôleExemples
Sale/Import et gestion des ventesmenzzo:v2:sales, menzzo:v2:sales:update
Product/Synchronisation produitsmenzzo:v2:products
Stock/Mise à jour du stockCommandes de synchronisation stock
Payment/Paiementsmenzzo:v2:sales:payment
Refund/RemboursementsCommandes 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 :

ServiceRôle
SaleServiceImport, création et mise à jour des ventes
ProductQtyLogServiceJournalisation des mutations de stock
SaleProductAvailabilityServiceCalcul de disponibilité et dates de livraison

Entités (Entity/)

Entités Doctrine mappées à la base de données :

  • Sale — commande
  • SaleProduct — ligne de commande
  • Product — produit du catalogue
  • SaleLog — 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