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

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

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

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

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

Что ты посоветуешь?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
7
0
6 893
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

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

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

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

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

Ответ принят как подходящий

Я считаю, что 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, я использую пунктирные разделители.

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

alex 12.12.2008 07:41

Не согласен, см. это, они говорят о глобальных переменных, они не всегда плохие.

wener 08.12.2013 10:31

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

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

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

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

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

Обновление к 10-летнему юбилею:

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

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

Ссылка не работает.

mmcglynn 22.08.2018 18:33

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

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

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

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

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

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

Другие вопросы по теме