Архитектура и структура папок Laravel: Полный гид

Андрей Игнатов
Игнатов Андрей
Founder & Techlead
13 мая 2026
60

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

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

Паттерн MVC: основа Laravel

В основе фреймворка лежит классический архитектурный паттерн разработки — MVC (Model-View-Controller). Он логически разделяет приложение на три взаимосвязанных компонента, чтобы отделить бизнес-логику от визуального интерфейса.

Model (Модель)

Отвечает за взаимодействие с базой данных. В Laravel эту роль берет на себя мощный инструмент — Eloquent ORM. Модели описывают структуру данных и связи между таблицами (например, «У одного пользователя может быть много статей»).

View (Представление)

Отвечает за то, что видит конечный пользователь на экране. Это HTML-шаблоны. В Laravel используется встроенный шаблонизатор Blade, в который динамически подставляются данные из базы.

Controller (Контроллер)

Связующее звено или «мозг» операции. Контроллер принимает HTTP-запрос от пользователя, запрашивает нужные данные у модели и передает их в представление для отрисовки.

Понимание этого паттерна — база, без которой невозможно правильно писать и структурировать код.

Основные папки Laravel: где и что лежит

Давайте пройдемся по корневому каталогу приложения. Начиная с Laravel 11 структура проекта стала более минималистичной, но базовые принципы остались неизменными.

app/

Сердце вашего приложения. Здесь хранится весь основной PHP-код бизнес-логики.

Основные директории:

  • Http/Controllers — контроллеры
  • Models — модели
  • Console — консольные команды
  • Providers — сервис-провайдеры

bootstrap/

Содержит файл app.php, который инициализирует фреймворк. В новых версиях Laravel здесь также настраиваются маршруты, middleware и обработка исключений.

Дополнительно содержит директорию cache/ для ускорения загрузки приложения.

config/

Директория с конфигурационными файлами:

  • база данных
  • почта
  • кэш
  • очереди
  • сессии

В Laravel 11+ папка может быть скрыта для упрощения структуры проекта.

database/

Все, что связано с базами данных:

  • миграции
  • фабрики
  • сидеры

public/

Публичная директория проекта.

Именно на нее должен смотреть веб-сервер (Nginx или Apache).

Здесь находятся:

  • index.php
  • CSS
  • JavaScript
  • изображения
  • шрифты

resources/

Исходники фронтенда и шаблонов.

Основные папки:

  • views
  • css
  • js
  • языковые файлы локализации

routes/

Файлы маршрутизации приложения.

Основные:

  • web.php
  • api.php
  • console.php
  • channels.php

storage/

Служебная директория Laravel.

Здесь хранятся:

  • логи
  • кэш
  • скомпилированные Blade-шаблоны
  • пользовательские файлы

Особенно важен файл:

storage/logs/laravel.log

Где писать бизнес-логику

Одна из самых распространенных ошибок новичков — писать всю логику прямо в контроллерах.

Правильная архитектура подразумевает четкое разделение ответственности.

Контроллеры

Контроллер должен:

  • принять запрос
  • валидировать данные
  • вызвать сервис
  • вернуть ответ

Контроллеры должны оставаться «тонкими».

Модели

Модели должны содержать только то, что относится к данным:

  • связи
  • scopes
  • accessors
  • mutators

Сервисы и Actions

Сложную бизнес-логику лучше выносить в отдельные классы.

Например:

app/Services/UserRegistrationService.php

Такой подход делает проект:

  • чище
  • удобнее для тестирования
  • проще для поддержки
  • легче для масштабирования

Жизненный цикл запроса (Request Lifecycle)

Чтобы понять, как Laravel работает внутри, разберем путь HTTP-запроса.

1. Точка входа

Пользователь открывает сайт.

Запрос попадает в:

public/index.php

2. Инициализация приложения

Laravel загружает Composer autoload и запускает ядро приложения.

3. Маршрутизация

Роутер ищет совпадение URL в директории routes/.

4. Middleware

Перед обработкой запрос проходит через middleware:

  • авторизация
  • CSRF-защита
  • ограничения доступа
  • throttling

5. Контроллер

Контроллер получает запрос и обращается к моделям или сервисам.

6. Ответ пользователю

Laravel возвращает:

  • HTML
  • JSON
  • редирект
  • файл

Заключение

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

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

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

Задать вопрос

Если у вас возник технический вопрос по нашим статьям или появилась потребность в профессиональной разработке сложного веб-проекта — оставьте свои контакты. Техлид «Команды-А» свяжется с вами, чтобы проконсультировать и помочь найти оптимальное решение.

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