Соглашения об именах в PHP / MySQL: camelCase vs under_score? - PullRequest
11 голосов
/ 03 мая 2011

Довольно часто в коде модели PHP (по крайней мере, в моем собственном таком коде) есть прямые ссылки на имена таблиц и полей MySQL, и, поскольку идентификаторы MySQL по большей части не чувствительны к регистру, я обычно использую соглашение об именах under_score, чтобыэти идентификаторы немного более читабельны.

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

Кроме того, сами встроенные функции PHP несовместимы.Некоторые из них используют camelCase, другие используют under_scores, а другие используют именование в стиле C (например, «strtolower»).

В результате код имеет тенденцию быть намного менее читабельным, чем я предпочитаю, что со смешаннымСоглашения о присвоении имен camelCase, under_score и C-style отображаются в коде довольно близко друг к другу.

Как другие люди справляются с этим?Может быть, люди нашли способ организовать свою работу так, чтобы разные соглашения об именах не выглядели так близко друг к другу?Или, может быть, есть библиотеки классов, которые при правильном использовании стремятся сделать вещи немного чище?Я знаю, что эти дискуссии о стиле могут быть горячими - не нужно идти туда, просто некоторые практические предложения, пожалуйста!

Ответы [ 2 ]

7 голосов
/ 03 мая 2011

Как говорит Тереско, имена MySQL чувствительны к регистру * на платформах NIX и нечувствительны к Windows. Если вы разрабатываете код для поддержки обоих (как и я), то смешивание ваших дел может вызвать огромные головные боли: например, сбросить базу данных в Windows и восстановить ее в * NIX, и все ваши дела будут потеряны. По сути, нам пришлось использовать код для обнаружения и исправления случаев в дампе.

Если вы свободны от Windows, хотя это не имеет значения, чем вы пользуетесь, до тех пор, пока вы сохраняете это согласованным.

2 голосов
/ 03 мая 2011

Когда дело доходит до моделей и таблиц базы данных, вы можете использовать:

  • CamelCase для названий моделей,
  • множественная форма имени вашей модели для таблицы базы данных (с единообразными строчными и прописными буквами, например, 'camelcases'),
  • имена таблиц в алфавитном порядке, разделенные подчеркиванием (например, 'camels_cases' - таблица соединений между 'case' и 'camel'),

Для классов я бы обычно использовал CamelCases (начиная с верхнего регистра) и camelCases для методов (начиная с нижнего регистра).

Но на самом деле важна последовательность и удобочитаемость. Может быть хорошей идеей следовать соглашениям об именах некоторых из хорошо известных и широко реализованных сред, таких как Zend Framework (эта предоставляет довольно четкие рекомендации относительно стандарта кодирования), но, например,. Кохана также может быть хорошей идеей. Изобретать колесо, возможно, не лучшая идея;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...