Symfony 3では、ドメイン駆動型設計(DDD)に基づいて次の点をどのように区別しますか?symfonyとドメイン駆動型設計
- サービス(構成サービス・ファイルに定義されている1)
- 教義リポジトリ(\教義\ ORM \ EntityRepository)
- エンティティ(エンティティフォルダ内のクラス)
私は」教義がSymfonyから切り離されていることを認識しています(つまり、完全に省略することができます)。しかし、どちらが教義のないSymfonyプロジェクトのリポジトリですか?または、おそらくSymfony(Doctrineなし)は実際にDDDに実際に従っていないのでしょうか?
編集
私は、コントローラは、プロジェクトのために利用可能なすべての管理職に
class ManagementController
public function getAvailableManagers(Array $project)
{
...
}
}
利用可能なマネージャを返す機能を持っている
私の質問をより明確にするために、次のシナリオをモックアップしよう彼らの手にプロジェクトがなく、プロジェクトが専門分野(例えば、顧客サービス、ビジネス関係、物流など)にあることを意味する
ただし、デザインが悪いため、特殊ドメインはデータベースに格納されず、代わりにAPI呼び出しを介して別のHRシステムに呼び出される必要があります。後でそれがデータベースに統合されます
現在、2つの異なるソースから情報を取得しているため、マネージャはリポジトリクラスでなければならないと思います。問題は...これにDoctrine Repositoryを使うべきですか?それとも、それは単なる通常のエンティティか、たぶんサービスなのでしょうか?
class ReplacementInstructionRepository extends \Doctrine\ORM\EntityRepository
{
private $id;
private $name;
private $speciality;
private $projects;
}
これを分割する方法についてのガイドが必要です。私はここにあなたがsymfonyにDDDの原則を適用するプロジェクトのいくつかの例を持って、よく質問を理解していませんが、あなたに
乾杯、
DoctrineとSymfonyがDDDに従っていると思いますか? Symfonyのほとんどのアプリは荒々しいアプリです。該当する場合は、Symfonyを使用してDDDの原則のいくつかに従うことができます。書かれたようにあなたの質問は私には意味をなさない。 – Cerad
フィードバックいただきありがとうございます、私はサンプルシナリオで質問を更新しました。うまくいけばそれは混乱をクリアするでしょう:) –