Эта статья - попытка собрать в одном месте все существующие на данный момент соглашения об именовании, гласно или негласно принятые сообществом Laravel. Я решил собрать всю информацию в виде удобной таблицы, актуальную версию которой вы всегда сможете найти здесь.
Что |
Правило |
Принято |
Не принято |
Контроллер |
ед. ч. |
ArticleController |
ArticlesController |
Маршруты |
мн. ч. |
articles/1 |
article/1 |
Имена маршрутов |
snake_case |
users.show_active |
users.show-active, show-active-users |
Модель |
ед. ч. |
User |
Users |
Отношения hasOne и belongsTo |
ед. ч. |
articleComment |
articleComments, article_comment |
Все остальные отношения |
мн. ч. |
articleComments |
articleComment, article_comments | …
Небольшое вступление
В мире Laravel существует очень серьезная, на мой взгляд, проблема. Laracasts, книги, видео туториалы, статьи и даже документация показывают нам использование плохих практик. Понятно, что делается это для популяризации фреймворка, снижая порог вхождения для новичков. Действительно, благодаря такому подходу, человек может написать работающее веб приложение при минимальных усилиях. И это хорошо. Плохо то, что разработчик продолжает писать низкокачественный код даже в сложных приложениях, в результате чего они порой становятся абсолютно неподдерживаемыми. Это значит, что любое изменение функционала в таком приложении занимает в разы, а иногда и в десятки раз больше времени разработчика и, соответственно, денег клиента. Также, эти…
Очень часто случаются ситуации, когда разработчики не сразу понимают друг друга. Общаясь на форуме, они называют одни и те же вещи по-разному. В ход идут различные переводы одних и тех же терминов, слэнг и рунглиш, режущие слух.
Мне кажется, я нашел выход: можно пользоваться словарем, поддерживаемым и регулярно обновляемым всем сообществом. Внести изменения можно здесь, с помощью коммита, а обсудить наилучший вариант перевода того или иного термина можно в данной ветке. Словарь будет регулярно обновляться, поэтому вы смело можете внести эту страницу в закладки.
Неплохой, на мой взгляд, альтернативой данному словарю может быть использование оригинальных терминов на английском…
Как может фреймворк рекомендовать именование таблиц БД?
А если уже существует БД именование в которой отличается от указанного выше,
то нарушать best practices?
Как называть таблицы и поля не может рекомендовать PHP-фреймворк.
Это сомнительно! Однако название очень кричащее и много на себя берущее!