0

次のようなフォルダー構造を持つ PHP DDD アプリケーションの場合:

アプリ/
    ビュー/
    コントローラー/
    ドメイン/
        models/ (または生成された)           
        サービス/
        工場/  

次のクラスは (DDD 用語の観点から) 何を表し、それらの推奨される場所は何ですか。

  • 辞書 (基本機能: 単語が有効かどうかを確認します)
  • HtmlValidator (基本機能: 文字列が有効な html かどうかをチェックします)
  • UserCollection (基本機能: ユーザーのコレクションに対する操作)

  • 4

    2 に答える 2

    2

    構造は悪くありませんが、MVC ではモデルがサービス、エンティティ、およびその他の種類のクラスで構成されるため、モデルの名前をエンティティに変更します。

    Dictionary と HtmlValidator は ID を持たず、ステートレスであるため、サービスに属しています。

    app/
        views/
        controllers/
        domain/
            entities/ ( orm generated )           
            services/  (HtmlValidator)
            factories/  
    

    非常に単純なアプリケーションのように見えますが、DDD ビルディング ブロックの使用を開始しないでください。すべてのアプリケーションは時間の経過とともに成長するため、後でリファクタリングする必要がないように、適切な構造から始めることをお勧めします。

    次に、論理部分を分離できるように、ある種のモジュールの作成を検討する必要があります。また、ドメインおよびインフラストラクチャ レイヤーからアプリケーションおよびプレゼンテーション レイヤーを分離することもできます。

    app/
        views/
        controllers/
    domain/
        module1     
            entities/           
            services/ 
            factories/ 
       module2 
            ....
    vendor/  (infrastructure layer)
        ORM
        ... (some other 3rd party libs)
    
    于 2013-04-03T09:00:47.743 に答える