Соглашения об именах PHP / MySQL: camelCase vs under_score?

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

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

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

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

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

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

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

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

    • CamelCase для имен моделей,
    • множественная форма имени вашей модели для таблицы базы данных (с последовательными нижними / верхними частями, например, «camelcases»)
    • имена таблиц в алфавитном порядке, разделенные символом подчеркивания (например, «camels_cases» является таблицей соединений между «случаями» и «верблюдами»)

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

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