Aller au contenu

Référence

phil/ddd-bundle

Chaque type public du bundle, par couche. Tous sont implémentés et testés, sauf si l'état dit autre chose.

Phil\DddBundle\Domain

Ne dépend que de symfony/uid.

TypeNatureRôleÉtat
Identifier\Identifierabstract readonly class, StringableBase des identifiants d'agrégat : UUIDv7, generate(), fromString(), equals() par classe et par valeur, toString()Implémenté
Event\DomainEventinterfaceUn fait passé dans un contexte : occurredAt()Implémenté
Exception\DomainErrorinterface, étend ThrowableCe que lève le domaineImplémenté
Exception\InvalidValuefinal class, InvalidArgumentException et DomainErrorUn objet-valeur a refusé sa construction : because(string $reason)Implémenté

Phil\DddBundle\Application

TypeNatureRôleÉtat
Bus\Commandinterface marqueurUne intention de changer l'état ; ne retourne rienImplémenté
Bus\Queryinterface marqueur, @template TResultUne question posée au modèle de lectureImplémenté
Bus\CommandBusportdispatch(Command): void, lève DomainErrorImplémenté
Bus\QueryBusportask(Query): mixed, typé TResultImplémenté
Bus\CommandHandlermarqueur d'autoconfigurationÉtiquette le handler sur le bus de commandesImplémenté
Bus\QueryHandlermarqueur d'autoconfigurationÉtiquette le handler sur le bus de requêtesImplémenté

Phil\DddBundle\Infrastructure

TypeNatureRôleÉtat
Messenger\MessengerCommandBusfinal readonly class, CommandBusRépartit sur le bus Messenger configuré ; désenveloppe la première DomainErrorImplémenté
Messenger\MessengerQueryBusfinal class, QueryBusRépartit sur le bus Messenger configuré ; retourne le résultat de l'unique handler ; désenveloppe tout échec du handlerImplémenté
Doctrine\IdentifierTypeabstract class, Type DBAL, @template T of IdentifierType de colonne d'une classe d'identifiant : UUID natif ou binaire de 16 octetsImplémenté ; facultatif, exige doctrine/dbal 4.2 ou plus récent

Le bundle

TypeNatureRôleÉtat
PhilDddBundlefinal class, AbstractBundleAlias de configuration phil_ddd ; câble les deux adaptateurs, leurs alias et l'autoconfiguration des marqueursImplémenté

Pas encore dans le code

PartieÉtat
Enregistrement des événements du domaine sur les agrégats et leur répartition après le flush, dans la transactionNon commencé
Configuration documentée d'une boîte de réception Messenger pour les consommateurs d'événements d'intégrationNon commencé

Voir configuration.md pour les services et les étiquettes, et out-of-scope.md pour ce que le bundle ne contiendra pas.