3

現在、私は次の構造を持っています:

Model/
    Entities/
    Repositories/
    Proxies/
    Services/
        User/
            Manager.php
            Relations/
                 Friendship.php
        Group/
            Manager.php
            Administration.php
            Posts/
                Manager.php
        ...

Doctrineを使用しているので、各フォルダーが1つのエンティティに対応するため、この構造を選択しました。このように整理することに問題はありますか?

組織の悪さによる今後のフォルダ構造の変更を回避する方法について、ご意見をお聞かせください。サービスレイヤーからクラスを整理するためのより良い方法はありますか?あなたは何をお勧めできますか?ありがとう。

4

1 に答える 1

1

完全に有効な構造のように見えますが、次の 2 つの推奨事項があります。

  • 私は通常、プロキシをライブラリ フォルダの外に置きます。1 つ目は、推奨事項に従わない特別なクラスでありPSR-0、2 つ目は、データベースの更新を行うときにこれらのクラスを削除する必要がある場合があるためです。/var/tmp/proxies

  • サービス層の構造は問題ないように見えますが、エンティティではなくロジックに適用するようにしてください。つまり、UserService はユーザーの背後にあるすべてのロジックを収集するのに完全に有効ですが、それらの関係のために他のエンティティと一緒に使用することもできます。 . おわりに 「1つのエンティティ!== 1つのサービス」

  • 私は複数形も避けます。これは少し個人的なポイントですが、データベース システムで使用される命名規則に少し似ています。テーブルはエンティティを表すため、複数形を受け入れるべきではありません。ところで、ほとんどのフレームワーク (つまり、Zf/Symfony2/Doctrine2) は singular を使用します。

  • 最後になりましたが、今どのような構造を選択したとしても、一貫性を保つようにしてください。十分に説明することはありません。他の人からプロジェクトを引き継ぐことがあります。なぜ、どのようにしてこのようなことをしたのか、私でさえ理解できません。チームでプロジェクトに取り組むとき、それは要件です

構造のリファクタリングを 1 日で行うことにした場合は、1 日か 2 日かけてあらゆる場所でリファクタリングを行うか、行わないかのいずれかです。

于 2011-08-29T15:08:04.747 に答える