обновление: это также отлично работает в Laravel 5.5

Недавно начал работать с Laravel (5.4), и до сих пор работать с ним было одно удовольствие.

Первое препятствие, с которым я столкнулся, было связано с организацией представлений/шаблонов.

Шаблоны страниц

Я пошел по пути простоты, имея следующие правила:

  1. Возьмите имя контроллера, исключите часть имени Контроллер и наберите строчные буквы. При этом у нас есть папка, в которой будут храниться шаблоны, используемые этим контроллером. Например: HomeController › Home › home.
  2. Предположим, мы создали метод внутри HomeController, задачей которого является загрузка общей страницы о нас. Поэтому мы создаем метод aboutUs и вызываем соответствующее представление. Как называется представление? Просто назовите его about-us, что означает путь /resources/views/home/about-us.blade.php.
  3. Метод контроллера по умолчанию имеет специальное имя __invoke, и, поскольку я не хотел иметь представление с именем invoke.blade.php, я решил просто использовать то же имя, что и контроллер. Итак, на данный момент у нас есть папка home с файлом home.blade.php. Основываясь на этих правилах, мы можем сразу предположить, с высокой степенью уверенности, что представление home.blade.php вызывается внутри HomeController::__invoke.

А частичные?

Частичные фрагменты — это блоки кода, которые повторно используются более чем на одной странице/представлении, поэтому мне понадобился набор правил для их создания, чтобы расположение, в котором они существуют, имело смысл и давало представление о том, как оно используется. Эти правила предполагают, что вы следуете изложенным ранее правилам.

  1. Если партиал используется только среди представлений одного контроллера, создайте папку с именем partials внутри папки представления контроллера. Поместите в них свои части. Пример: /resources/views/home/partials/example-partial.blade.php.
  2. Если партиал используется разными контроллерами, поместите их в папку partials внутри папки представлений на том же уровне, что и папка представлений контроллера. Пример: /resources/views/partials/example-partial.blade.php.

Макеты

Я не видел причин менять расположение файлов макетов (/resources/views/layouts/master.blade.php).

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