Aller au contenu

Référence de la configuration

phil/ddd-bundle

La configuration se trouve sous la clé phil_ddd. Elle a deux clés, toutes deux facultatives.

Référence complète

# config/packages/phil_ddd.yaml
phil_ddd:
    # Service id of the Messenger bus that carries commands. It must be transactional:
    # the application gives it a transaction middleware (doctrine_transaction with Doctrine).
    # Type: string, not empty. Default: command.bus
    command_bus: command.bus

    # Service id of the Messenger bus that carries queries. It must not be transactional.
    # Type: string, not empty. Default: query.bus
    query_bus: query.bus
CléTypeValeur par défautEffet
command_buschaîne non vide, un identifiant de servicecommand.busLe bus vers lequel MessengerCommandBus répartit, et le bus sur lequel chaque CommandHandler est étiqueté
query_buschaîne non vide, un identifiant de servicequery.busLe bus vers lequel MessengerQueryBus répartit, et le bus sur lequel chaque QueryHandler est étiqueté

Sans fichier phil_ddd.yaml, les deux valeurs par défaut s'appliquent.

Ce que le bundle câble

Identifiant de serviceClasseVisibilitéArgument
Phil\DddBundle\Infrastructure\Messenger\MessengerCommandBusMessengerCommandBusprivéune référence au service command_bus
Phil\DddBundle\Application\Bus\CommandBusalias de MessengerCommandBusprivé
Phil\DddBundle\Infrastructure\Messenger\MessengerQueryBusMessengerQueryBusprivéune référence au service query_bus
Phil\DddBundle\Application\Bus\QueryBusalias de MessengerQueryBusprivé

Injectez les interfaces, CommandBus et QueryBus ; l'autoconfiguration des arguments (autowiring) les résout par les alias.

Le bundle enregistre aussi deux règles d'autoconfiguration :

InterfaceÉtiquette ajoutéeAttribut de l'étiquette
Phil\DddBundle\Application\Bus\CommandHandlermessenger.message_handlerbus: <command_bus>
Phil\DddBundle\Application\Bus\QueryHandlermessenger.message_handlerbus: <query_bus>

Le bundle n'enregistre aucun type Doctrine, aucun écouteur d'événements et aucun bus Messenger. Les types de colonne des identifiants sont enregistrés par l'application (doctrine-identifier-type.md).

Erreurs à la construction

ConfigurationErreur
command_bus: '' ou query_bus: '', ou ~InvalidConfigurationException : le chemin phil_ddd.<key> ne peut pas contenir de valeur vide
Une valeur qui n'est pas une chaîne, comme 5 ou trueInvalidConfigurationException : "phil_ddd.<key>" must be a service id.
Toute autre clé sous phil_dddInvalidConfigurationException : option non reconnue
Un identifiant de bus qui ne nomme aucun serviceSymfony refuse de compiler le conteneur : l'adaptateur référence un service qui n'existe pas, et Messenger refuse une étiquette de handler qui nomme un bus inconnu

Exemple : d'autres noms de bus

# config/packages/messenger.yaml
framework:
    messenger:
        default_bus: write.bus
        buses:
            write.bus:
                middleware: [validation, doctrine_transaction]
            read.bus: ~

# config/packages/phil_ddd.yaml
phil_ddd:
    command_bus: write.bus
    query_bus: read.bus