Структура файлов Laravel — разбор приложения для самых маленьких

В рамках этой статьи мы будем разбираться со структурой фреймворка Laravel. Делается это для того, чтобы понимать что за что отвечает, разбор мы будем делать по папкам, после чего если ты деально изучишь структуру движка, то поиск ошибок, да и в целом работа с этим движком будет настолько простой, что проще и не бывает!

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

Почему Laravel фреймворк?

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

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

Пока я разбирался с ним, я понял что он очень простой и интересный, к тому же у него реально есть крутые возможности, а еще он на PHP.

Хотя есть и недостатки, но об том не в этой статье.

Разбор структуры фреймворка Laravel

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

Ниже я приведу текстовый вариант с описанием, я думаю так будет проще понимать что я описываю.

  • app — содержит все контроллеры, классы с существующими моделями, связующие контроллеры и файл исключений. Более простым языком, в нем мы найдем весь программный код проекта.
  • bootstrap — скрипт начальной загрузки приложения, по факту в нем вся информация в закэшированном виде, о том какой файл запускать первым, какой адрес у сайта будет, какие контроллеры будут работать и так дальше… 
  • config — содержит файлы конфигурации, где мы указываем в каких режимах будет работать проект, с какими данными будет работать, в общем все настройки.
  • database — содержит все переменные и миграции базы данных.
  • node_modules — пакеты зависимости, по факту это не обязательная папка, но если мы используем vue.js в проекте, то она нужна. 
  • public — корневая папка, которая содержит файл запуска index.php, а также все остальное, что нужно для проекта. Скомпилированные файлы js, css и картинки, кроме того, можно дополнительно хранить ссылки на другие папки для хранения данных.
  • resources — папка которая содержит все вьюшки и необходимое для них. Внутри папки лежит четыре папки, с языковыми файлами, html, scss или less файлами, а так же js файлы. 
  • routes — все роутинги. Если не сделаешь адрес в роутере, то не сможешь двинуться дальше главной страницы. Считаю очень важным разобраться с этой папкой. 
  • storage — я бы назвал эту папку хранилищем самого Laravel, в нем лежат все загруженные файлы, кэш файлы и логи. По факту половина всего в этой папке генерирует сам Laravel, для того чтобы можно было загружать страницы быстро и бесперебойно.
  • tests — содержит все Unit Test’ы, я лично никогда не писал пока unit тестов, но наверное зря.
  • vendor — папка со всеми зависимостями Laravel, по факту там и есть мозг самого Laravel, так как содержит все нужное и необходимое, а так же само ядро Laravel.

По факту это вся структура папок в Laravel, еще возле папок есть и файлы, которые очень важные, с которыми нужно и можно работать, сознаюсь честно в них я сильно не разбирался, лишь в некоторых, потому попытаюсь описать лишь те которые знаю.

Структура корневых файлов в Laravel

  • .env — файл конфигурации среды, который хранит о приложении, по факту все те же данные которые хранятся в папке bootstrap, только туда они кешируются, а в этой файле мы заносим их напрямую.
  • artisan — тот самый artisan который мы запускаем для создания сервера, кеширования файлов удаления конфигов и т.д. внутри файла находится код который уходит далеко вглубь движка.
  • composer.json — файл пакетного менеджера, который может установить любое дополнение в фреймворк, также способен обновить или сам Laravel на нужную версию.
  • package.json — служит для работы с npm пакетами. В целом я его использую в основном для работы с scss, точнее его компиляции. Но это далеко не его придел.
  • server.php — по факту этот файл прямая альтернатива команде php artisan serve, лично я никогда его не использовал, но на всякий случай вот пример как его запускать: php -S localhost:8000 server.php
  • webpack.mix.js — в этом файле мы указываем все файлы которые мы должны компилировать и в какую папку нужно будет их закидывать в готовом виде.
Метки: ,

Оставьте комментарий