Оглавление

Общие рекомендации при работе с фреймворками



  1. Не писать код в маршрутах. Бизнес логика только в контроллерах
  2. Шаблоны без PHP-кода и JS/CSS-кода - используем менеджеры пакетов
  3. Использовать модели вместо прямых запросов
  4. Писать тесты (логика-тесты, тесты-логика)
  5. Использовать миграции, создавать связи на уровне БД - это улучшить целостность данных. Использовать индексы, создавать новые миграции, а не изменять старые. Индексы нужны для ускорения сортироки и фильтрации данных.
  6. Контроллер - это регулировщик движения (его задача передать выполнение)
  7. Соглашение об именовании маршрутов (folder.controllerName.ActionName)
  8. Для контроллеров делай baseComtroller
  9. Группируй модели и контроллеры по сущностям BlogPost BlogCategory что бы выделить их по сущьностям
  10. Все аргументы, что передаешь в функцию, оформляй в виде переменной, после передавай это в функцию (аналогично при работе с return - возвращяй значение переменной, а не return $this->) $ar = []; func($ar);. Так удобнее делать отдалку во время рефакторинга кода
  11. Используй class::class вместо текстовой строки 
  12. При выборке из БД бери только те поля, которые нужно
  13. findOrFail() нужно использовать только вверху функции
  14. Рекомендации при создании методов:

    - 1 метод = 1 задача 
    - имя метода должно отражать его задачу (должно содержать глагол)
    - не больше 7 параметров

  15. Открытые методы рекомендую группировать в начале класса (так можно выделить интерфейс, т.е. методы доступные из вне
  16. Обычно параметры функции которые имеют значения по умолчанию добавляются в конец
  17. Статические методы нужны когда для класса нужна вспомогательная функцию
  18. Рекомендации к созданию классов

    - Класс нужно связывать с сущностью
    - Публичными нужно оставлять только те методы, которые будут использоваться (остальное в инкапсуляцию)
    - Класс не должен обрастать лишними функциями - только тем, что нужно для решения задачи
    - Класс должен быть максимально простым
    - Класс должен быть максимально независимым от всей остальной программы
    - Класс должен описывать решение 1 задачи (ничего лишнего)
    - Класс не может называться глаголом (глагол - это действие (метод)

    Внутри класса описываются данные (свойства) и методы.

Про миграции:

Миграция - это контроль версии БД, каждая миграция это аналог коммита в git.

Если создаём таблицу, то имя миграции начинается с create, если меняем таблицу то alter, если удаляем таблицу, то drop.

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

alter_data_model_add_property_column
alter_data_model_alter_property_column_to_text
alter_data_model_alter_property_column_set_default_value
alter_data_model_create_index_on_code_type_columns
alter_data_model_create_unique_index_on_code_column

Здесь можно оставить комментарий!