PHP - именование функций / переменных

Я прочитал много популярных руководств по стандартам для проектов PHP с открытым исходным кодом.

Во многих случаях принудительно используются подчеркивания для переменных, а во многих - camelCase.

Должны ли глобальные функции и переменные именоваться иначе, чем методы / свойства класса?

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

Что бы вы порекомендовали?

12.12.2008 04:09:21
8 ОТВЕТОВ
РЕШЕНИЕ

Я считаю, что camelCase немного приятнее печатать, потому что я подчеркиваю, что подчеркивать текст неудобно.

Не используйте глобальные переменные.

Я избегаю процедурного кодирования в PHP, я считаю, что ООП проще поддерживать порядок. Кроме того, разве у PHP уже недостаточно вещей в своем глобальном пространстве имен?

Обычно я стараюсь придерживаться:

  • Классы StudlyCaps в единственном или множественном существительных, в зависимости от обстоятельств: Item, Row, DB, Items.
  • Переменные строчные существительные, единственные или множественное число в зависимости от того, что они имеют место $column,$name
  • Константы - это единственные существительные в верхнем регистре: DEBUG, TYPE_FOO.
  • Существуют методы CamelCase, и начинаются с сингулярными глаголами ( get, perform, do), за которым следует существительное (единственный или множественное число) описаний того, что она работает или возвращает ( getThing(), getThings())

Это определенно зависит от того, что вы кодируете. Если я пишу PHP или PEAR, я использую camelCase. Если я делаю Python / Django, я использую under_scores. Если я пишу ELisp, я использую пунктирные разделители.

13
12.12.2008 04:36:16
Согласен, я нахожусь в процессе изучения ОО и что такое статический класс (чтобы переместить все мои средства форматирования строк и т. Д. Из глобального пространства имен)
alex 12.12.2008 04:41:37
Не согласен, видите это , они говорят о глобальных переменных, они не всегда плохие.
wener 8.12.2013 06:31:24

Да, самая важная вещь - последовательность. Если вы одинокий разработчик, придерживайтесь метода. Если вы работаете с командой, поговорите с другими членами команды. Различение глобальных переменных, функций / методов и классов значительно облегчит чтение кода. Для некоторых людей camelCase проще, чем использование_underlines, поэтому вашей команде нужно обсудить варианты и выбрать стиль.

0
12.12.2008 04:27:41

Примечание: я использую подчеркивания для своих имен таблиц MySQL, я использую UpperCamelCase для имен полей MySQL:

Обычно я использую $ lowerCamelCase для имен переменных и свойств класса, но если он содержит значение из поля, я использую имя поля $ UpperCamelCase или, если это массив данных из таблицы, я буду использовать $ table_name. Таким образом , я могу легко grepдля SomeFieldили some_tableи найти все ссылки на нее.

Вам не нужно использовать эту точную систему, но возможность поиска всех ссылок на поле или таблицу является огромным преимуществом.

0
12.12.2008 04:35:17

В самом PHP почти каждая нативная функция разделена подчеркиванием. Большинство примеров кода PHP в документации разделены подчеркиванием.

В большинстве языков я думаю, что Camel или Pascal Casing более уместны, но я думаю, что в PHP есть четкая история использования разделения подчеркивания.

2
12.12.2008 05:28:08

Раньше я предпочитал использовать camelCase, но для большей согласованности в больших приложениях я принял руководство по стилю CodeIgniter.

Даже если вы не используете их фреймворк, вы можете оценить работу по определению понятных и всеобъемлющих стилей: http://codeigniter.com/user_guide/general/styleguide.html

0
12.12.2008 13:31:40

Соглашение об именах Zend Frameworks (основанное на PEAR), вероятно, ближе всего подходит к стандарту в мире PHP. Лично я предпочитаю использовать lowercase_underscore для имен переменных, но в остальном я в основном следую соглашению ZF.

Обновление на 10-летний юбилей:

В наши дни существует стандарт, который в значительной степени принят в сообществе. Вы должны придерживаться этого:

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md

1
23.08.2018 09:29:25
Ссылка не работает.
mmcglynn 22.08.2018 15:33:22

Моя цель - независимо от конкретного формата имени - добавить больше информации. Улучшает ли имя понимание кода и / или выражает ли что-то важное?

Если это так, отлично, значит, вам это удалось.

Если имя ничего не добавляет, зачем вы его называете?

Я написал об этом ранее на этой неделе:

http://caseysoftware.com/blog/useful-naming-conventions

0
12.12.2008 17:40:24

Я бы рекомендовал прочитать Стандарты кодирования PEAR . Поскольку PEAR является официальным репозиторием расширений и приложений PHP, его можно считать официальным стандартом кодирования языка.

0
12.12.2008 17:47:44