I système d'écriture suivant l'architecture hexagonale.Quel objet devrais-je commander?
J'ai des commandes asynchrones et des objets de requête de synchronisation répartis dans UseCase.
Mon src look dossier comme:
-src
--Entity
---Task.php
--UseCase
---Command
----CreateTask
-----CreateTaskUseCase.php
-----CreateTaskCommand.php
Ma question est: Qu'est-ce que je peux/dois utiliser pour envoyer des données via la commande dans le constructeur de UseCase\Command\CreateTask\CreateTaskCommand
\Entity\Task
- créer
UseCase\Command\CreateTask\Request\Task
qui serait avoir toutes les données nécessaires - seulement string/int/float
Cet exemple est trivial pour montrer le problème.
En ce moment je suis en utilisant l'objet de domaine (Entiti\Task
etc) En situation réelle, j'ai UseCase\Command\CreateProcess
qui ont besoin
- UUID
- instance [id, nom]
- Source [node_id, node_name, leaf_id, leaf_name]
- ressources [id, nom, type, etc. types normaux personne [nom, prénom]]
En suivant DDD, Process est mon agrégat. Toutes les entités existent uniquement en raison du processus de construction (Node, Leaf, Resource, Person). Ensuite, je ne veux pas de manière séparée, pour créer les autres entités, car cela fonctionne ma logique métier.
En raison de ce problème, la question est: que devrais-je choisir? Briser certaines règles?
Problèmes:
- commande de liaison avec l'objet à l'intérieur du domaine, se lieront couche supérieure plus à noyau. Tout changement dans le noyau, sera la chaîne réagir avec toutes les couches
- Création
Request\*
me faire beaucoup de classes, mais de façon claire de commande d'utilisation, et beaucoup plus de travail - UnitTest etc. - En utilisant uniquement le type standard (int, string, etc.) fera __counstruct avec 20 arguments. Je ne veux pas de tableau à plusieurs niveaux, car il ne sera pas nécessaire d'utiliser cette commande.
Merci pour votre aide.
Ddd est principalement sur le voyage et une structure que votre entreprise se promène. Je doute qu'ils parlent d'une structure d'usecase/processus/tâche mais plus d'une personne faisant des choses. Regardez aussi dans les types de valeurs.arguments groupés – Batavia
Vous avez raison, va supprimer DDD Tag :) – timiTao
Vous avez annulé votre modification parce que vous avez ajouté le même texte à votre question que votre réponse. – kayess