Проектирование и дизайн приложения. Выделение контроллеров, моделей и элементов представления приложения.
Архитектура приложения должна соответствовать концепции MVC. Рассмотрим основные папки приложения.
App/
Основная рабочая папка, содержащая классы приложения.
Папка app содержит папки Console, Events, Exceptions, Http, Jobs, Listeners, Providers.
Каталог Console содержит artisan-команды.
Каталог Events предназначен для классов событий. События могут быть использованы для того, чтобы определить, что какое-то действие произошло.
Каталог Exceptions содержит классы обработчики исключений.
Каталог Http содержит все фильтры, контроллеры, а также запросы.
Каталог Jobs содержит файлы, управляющие синхронностью загрузки приложения.
Каталог Listeners содержит классы прослушивателей событий. Слушатели тесно связаны с событиями. Например, событие UserRegistered должно быть обработано слушателем в
SendWelcomeEmail.
Каталог Providers содержит сервис-провайдеры приложения.
bootstrap/
Папка для конфигурационных файлов автозагрузки.
config/
Папка конфигурационных файлов.
database/
В папке database находятся папка migrations (для файлов миграций баз данных), seeds (предворительные данные таблиц базы данных) и factories (настройки для моделей).
public/
Корневая папка проекта. В этой папке находится файл index.php и .htaccess, которые загружаются первыми, а также папкимедиафайлов (css, js, изображения и др.)
resources/
Папка для шаблонов. Данная папка содержит элементы представления - views, файлы переводов - lang, и вспомогательные файлы - assets
routes/
Папка для маршрутов приложения, маршрутизатор.
storage/
Папка для хранения временных файлов, создаваемых фрэймворком.
Папки внутри storage должны быть доступны веб-серверу для записи. Если вы устанавливаете фреймворк на Linux или MacOS, открыть папки на запись можно командой chmod -R 777 storage.
tests/
Папка содержит файлы автоматических тестов.
vendor/
Папка содержит composer – зависимости.