3

1)クラス「Model」を持つ名前空間「Domain\Customer 」

namespace MyDomain\Customer;
class Model { }
class Repository { }

namespace MyDomain\City;
class Model { }
class Repository { }

2)クラス「CustomerModel」を持つ名前空間「MyDomain 」 ?

namespace MyDomain;
class CustomerModel { }
class CustomerRepository { }

namespace MyDomain;
class CityModel { }
class CityRepository { }

3)クラス「CustomerModel 」を持つ名前空間「MyDomain\Customer 」 ?

namespace MyDomain\Customer;
class CustomerModel { }
class CustomerRepository { }

namespace MyDomain\City;
class CityModel { }
class CityRepository { }

または ...

私たちの現在の環境は、このようにファイルをインクルードするPHP自動ロード機能を使用しています

$o = new MyDomain\Customer\Model.php

ファイルをロードします

MyDomain\Customer\Model.php

実際に私が働いている場所では、すべてのファイルに Model.php という名前を付ける例 #1 を使用しています。Eclipse IDE でフルパスを見ないと、どのモデルが開いているかを知るのは少し難しいです。

4

1 に答える 1

2

クラス名は、それらが表すものを表現する必要があります。と呼ばれるModelクラスは、特定のモデルの一般的なクラスのように聞こえます。CustomerModel、対照的に、それは顧客のモデルであると言います。文脈から外してみると、顧客も明確に定義されていませんが、特定のアプリケーションでは、その意味は明確です。だから私は選ぶことをお勧めしCustomerModelます。

Modelとクラスしかない場合Repository、特に複数の 2 クラスの名前空間を定義する場合は、これら 2 つのクラスに対してのみ名前空間全体を宣言するのは適切ではありません。たぶん、モデルをリポジトリから分離しますか?

于 2011-12-21T20:26:45.897 に答える