Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > А как вы называете namespace ?


Автор: 303800 24.5.2012, 15:54
Пример из официальной документации

Код

$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('My_');


использовать "My_" в продакшене как-то некрасиво. 
Спор в команде, какой же namespace (ни тот namespace, который в php с недавних пор появился) надо использовать для таких вещей вылился в холивар, 
стало интересно какие варианты используют  другие команды  разработчиков. 
Высказывайтесь, господа ! 

Автор: Fortop 24.5.2012, 16:15
По имени команды,проекта и т.д.

Автор: 303800 24.5.2012, 17:10
Fortop, по имени проекта то же не очень подходит - если класс потребуется скопировать в другой проект ?

Автор: Sanchezzz 24.5.2012, 19:24
не более 5 символов длинное название лень набирать , а если честно не использую. не было такой задачи прям пипец сложной чтобы  без пространства имен не обойтись все классы лежат в папках и нет таких одинаковых классов с названиями что бы разделять их пространством имен.

Автор: Sentox 24.5.2012, 22:09
Согласен с 
Sanchezzz, 

По мне так немного запутывают namespace.
По теме: Шлосснейгл предлагает в своей книге использовать кодирование пути к классам, например как у Вас в примере "Zend_Loader_Autoloader", хотя это за собой тянет дополнительную нагрузку в поддержке. Например если класс будет перемещён в другой каталог.
Можно принять за формат масштабирование. То есть если это модуль, тогда применять "ИмяМодуля_КонтекстКласса(объекта)_ИмяКласса", или компонент или виджет....

Автор: Aliance 25.5.2012, 09:28
На собственном сайте я использовал Aliance_; на сайтах, разрабатываемых в команде, я использовал Project_

Автор: Fortop 25.5.2012, 10:30
Цитата(303800 @  24.5.2012,  17:10 Найти цитируемый пост)
Fortop, по имени проекта то же не очень подходит - если класс потребуется скопировать в другой проект ? 

Если класс требуется скопировать куда-то, то это достаточно общий класс, который может быть вынесен в библиотеку команды (с соответствующим неймспейсом) и использоваться в разных проектах из этой библиотеки.

Если необходимо изменить или доработать функционал такого класса, то просто наследуем его в рамках проекта (новый класс с неймспесом проекта) и доопределяем что нам нужно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)