Подтвердить что ты не робот

Существует ли хорошо установленное соглашение об именах для пространств имен PHP?

До сих пор я видел много разных соглашений об именах, используемых для пространств имен PHP. Некоторые используют PascalCase\Just\Like\For\Classes, некоторые используют underscored\lower_case\names, некоторые даже используют соглашение Java для имен пакетов: com\domain\project\package.

Вопрос очень прост - можно ли назвать любую из этих (или других) конвенций хорошо установленной? Зачем? Кто-нибудь из них рекомендован такими властями, как Zend, или разработчиками известных PHP-фреймворков?

4b9b3361

Ответ 1

Рабочая группа по стандартизации PHP, составленная из участников многих различных фреймворков и проектов PHP, предложила следующее предложение для соответствующего использования пространства имен:

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md

Ответ 2

Я не думаю, что вы можете сказать, что на данный момент есть что-то хорошее, но есть RFC, обсуждающий его для PEAR2: http://wiki.php.net/pear/rfc/pear2_naming_standards

Мой вывод состоит в том, что пространства имен являются формой переменных и поэтому должны следовать тому же самому соглашению, что и они. Я предпочитаю lowercase_underscore для свободных переменных (в отличие от членов объекта), поэтому наиболее естественным для меня было бы namespace\ClassName. Это также соответствует наиболее распространенным соглашениям с других языков. С другой стороны, такой же аргумент можно было бы сделать и для пред-5.3 псевдопространственных пространств, но здесь фактически используется стандарт де-факто CamelCase.

Ответ 3

Лично мне нравится писать классные имена верхних верблюжьей кожи, атрибуты класса и методы ниже атрибуты camelcase и class с префиксом подчеркивания.

Другие локальные переменные я также пишу нижний верблюд без префикса подчеркивания. Объектные экземпляры всегда записываются на верхнем верблюде и т.д. И т.д. Я действительно не думаю, что есть лучший способ, вы просто должны быть совместимы с вашим стандартом кодирования. Это дает вам преимущество в том, что вы читаете быстрее через свой код, и это должно дать более быстрое представление о том, что происходит с такими кодонами.