Может войдёшь?
Черновики Написать статью Профиль

Структура приложения

перевод документация 5.х

  1. 1. Введение
  2. 2. Корневой каталог
  3. 3. Каталог app
  4. 4. Задание пространства имён для вашего приложения
Этот перевод актуален для англоязычной документации на (ветка 5.1) и (ветка 5.0). Опечатка? Выдели и нажми Ctrl+Enter.

Введение

Структура Laravel-приложения по умолчанию — отличная отправная точка как для больших, так и для маленьких приложений. Но, конечно, вы можете свободно организовать ваше приложение как пожелаете. Laravel не накладывает практически никаких ограничений на то, где будет размещён какой-либо класс, пока Composer будет в состоянии автоматически загружать этот класс.

Корневой каталог

Корневой каталог свежеустановленного Laravel содержит ряд папок:

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

Папка bootstrap содержит несколько файлов, которые загружают фреймворк и настраивают автозагрузку, а также папка cache содержит несколько сгенерированных фреймворком файлов для оптимизации процесса автозагрузки.

Папка config, как гласит её название, содержит все конфигурационные файлы ваших приложений.

Папка database содержит миграции и классы для наполнения начальными данными вашей БД. При необходимости эту папку можно использовать для хранения базы данных SQLite.

Папка public содержит фронт-контроллер и ваши ресурсы (изображения, JavaScript, CSS и т.д.).

Папка resources содержит ваши представления, сырые ресурсы (LESS, SASS, CoffeeScript) и «языковые» файлы.

Папка storage содержит скомпилированные Blade-шаблоны, файл-сессии, кэши файлов и другие файлы, создаваемые фреймворком. Эта папка делится на подпапки app, framework и logs. В папке app можно хранить любые файлы, используемые вашим приложением. В папке framework хранятся создаваемые фреймворком файлы и кэш. А в папке logs находятся файлы журналов приложения.

Папка tests содержит ваши автотесты. Изначально там уже есть пример PHPUnit.

Папка vendor содержит ваши Composer-зависимости.

Каталог app

«Плоть» вашего приложения живёт в каталоге app. По умолчанию этот каталог зарегистрирован под пространством имён PHPApp и автоматически загружается с помощью Composer по стандарту автозагрузки PSR-4.

+ 5.1 5.0

добавлено в 5.1 () 5.0 ()

Вы можете изменить это пространство имён с помощью Artisan-команды shapp:name.

В каталоге app находится ряд дополнительных каталогов, таких как Console, Http и Providers. Можно сказать, что каталоги Console и Http предоставляют API «ядра» вашего приложения. Протокол HTTP и командная строка — это механизмы взаимодействия с вашим приложением, но они не содержат логики приложения. Другими словами, это просто два способа передачи команд вашему приложению. Каталог Console содержит все ваши Artisan-команды, а каталог Http содержит ваши контроллеры, посредники и запросы.

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

Папка Exceptions содержит обработчик исключений вашего приложения. Эта папка также является хорошим местом для сбора всех исключений, возникающих в вашем приложении.

+ 5.2

добавлено в 5.2 ()

Папка Policies содержит классы политик авторизации. Политики служат для определения, разрешено ли пользователю данное действие над ресурсом. Подробнее читайте в документации по авторизации.

+ 5.2 5.1

добавлено в 5.2 () 5.1 ()

Папка Listeners содержит классы обработчиков для событий. Обработчики получают событие и выполняют логику в ответ на это событие. Например, событие UserRegistered может быть обработано слушателем SendWelcomeEmail.

+ 5.1

добавлено в 5.1 ()

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

+ 5.0

добавлено в 5.0 ()

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

Папка Handlers содержит классы обработчиков команд и событий. Обработчики получают команду или событие и выполняют логику в ответ на эту команду или возникновение события.

Папка Services содержит ряд «вспомогательных» служб, необходимых для работы вашего приложения. Например, включённая в Laravel служба Registrar отвечает за проверку и создание новых пользователей вашего приложения. Другой пример — службы для взаимодействия с внешними API, с системами метрик, или даже со службами, которые собирают данные от вашего приложения.

Многие классы в каталоге app могут быть сгенерированы с помощью Artisan-команд. Для просмотра доступных команд выполните shphp artisan list make в терминале.

+ 5.1 5.0

добавлено в 5.1 () 5.0 ()

Задание пространства имён для вашего приложения

Как уже было сказано, по умолчанию название пространства имён приложения — PHPApp. Но вы можете изменить его, чтобы оно совпадало с названием вашего приложения. Это можно сделать с помощью Artisan-команды shapp:name. Например, если ваше приложение называется SocialNet, вам надо выполнить следующую команду:

shphp artisan app:name SocialNet

Комментарии (2)

nko

Не совсем понятно, Commands и Jobs это одна и та же папка только в разных версиях Laravel она называется по разному или все таки это разные папки. Если это разные папки, то чем они отличаются?

Unwelt

Всё верно, суть папок одна, но название в разных версиях разное. Кстати, в 5.2 «папка для задач» называется Commands

Написать комментарий

Разметка: ? ?

Авторизуйся, чтобы прокомментировать.