Какой самый лучший способ назвать пространство имен и класс - PullRequest
3 голосов
/ 22 декабря 2011

1) Пространство имен "Домен \ Клиент" с классом "Модель"

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

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

2) Пространство имен "MyDomain" с классом "CustomerModel" ?

namespace MyDomain;
class CustomerModel { }
class CustomerRepository { }

namespace MyDomain;
class CityModel { }
class CityRepository { }

3) Пространство имен "MyDomain \ Customer" с классом "CustomerModel" ?

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

На самом деле, где я работаю, мы используем пример # 1, который заставляет весь файл называться Model.php.Трудно понять, какая модель открыта, не глядя на полный путь в Eclipse IDE.

1 Ответ

2 голосов
/ 22 декабря 2011

Имена классов должны выражать то, что они представляют.Класс под названием Model звучит так, как если бы это был общий класс для определенных моделей.CustomerModel, напротив, говорит, что это модель покупателя. Клиент также четко не определен, когда вы видите его вне контекста, но в вашем конкретном приложении смысл понятен.Поэтому я бы предложил выбрать CustomerModel.

Если у вас есть только классы Model и Repository, было бы нецелесообразно объявлять целое пространство имен только для этих двух классов, особенно когда выопределить несколько пространств имен двух классов.Может быть, отделить модели от хранилищ?

...