Step 00 — Squelette + intégration naïve

3 Bounded Contexts (Sales, Invoicing, LegacyFulfillment) avec :
- Domaines complets (agrégats, VOs, événements, invariants)
- Couche application (commands, queries, ports)
- Infrastructure in-memory (repos, gateway fake)
- Controllers HTTP Symfony
- Couplage naïf synchrone entre BC via NaiveSalesEventPublisher
- 20 tests unitaires et d'intégration passants
This commit is contained in:
2026-03-04 00:27:15 +01:00
commit a4a14e441b
86 changed files with 7059 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
services:
_defaults:
autowire: true
autoconfigure: true
# --- Shared ---
MiniShop\Shared\:
resource: '%kernel.project_dir%/src/Shared/'
MiniShop\Shared\Technical\Clock:
alias: MiniShop\Shared\Technical\SystemClock
# --- Sales ---
MiniShop\Sales\Application\:
resource: '%kernel.project_dir%/src/Sales/Application/'
MiniShop\Sales\Infrastructure\:
resource: '%kernel.project_dir%/src/Sales/Infrastructure/'
MiniShop\Sales\Interfaces\:
resource: '%kernel.project_dir%/src/Sales/Interfaces/'
tags: ['controller.service_arguments']
MiniShop\Sales\Application\Port\OrderRepository:
alias: MiniShop\Sales\Infrastructure\Persistence\InMemoryOrderRepository
MiniShop\Sales\Application\Port\SalesEventPublisher:
alias: MiniShop\Sales\Infrastructure\Messaging\NaiveSalesEventPublisher
# --- Invoicing ---
MiniShop\Invoicing\Application\:
resource: '%kernel.project_dir%/src/Invoicing/Application/'
MiniShop\Invoicing\Infrastructure\:
resource: '%kernel.project_dir%/src/Invoicing/Infrastructure/'
MiniShop\Invoicing\Interfaces\:
resource: '%kernel.project_dir%/src/Invoicing/Interfaces/'
tags: ['controller.service_arguments']
MiniShop\Invoicing\Application\Port\InvoiceRepository:
alias: MiniShop\Invoicing\Infrastructure\Persistence\InMemoryInvoiceRepository
MiniShop\Invoicing\Application\Port\InvoiceNumberGenerator:
alias: MiniShop\Invoicing\Infrastructure\SequentialInvoiceNumberGenerator
# --- LegacyFulfillment ---
MiniShop\LegacyFulfillment\Application\:
resource: '%kernel.project_dir%/src/LegacyFulfillment/Application/'
MiniShop\LegacyFulfillment\Infrastructure\:
resource: '%kernel.project_dir%/src/LegacyFulfillment/Infrastructure/'
MiniShop\LegacyFulfillment\Interfaces\:
resource: '%kernel.project_dir%/src/LegacyFulfillment/Interfaces/'
tags: ['controller.service_arguments']
MiniShop\LegacyFulfillment\Application\Port\ShipmentRequestRepository:
alias: MiniShop\LegacyFulfillment\Infrastructure\Persistence\InMemoryShipmentRequestRepository
MiniShop\LegacyFulfillment\Application\Port\LegacyFulfillmentGateway:
alias: MiniShop\LegacyFulfillment\Infrastructure\Gateway\FakeLegacyFulfillmentGateway