Вступление

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

Где находится каталог моделей?

Приступая к работе с Laravel, многих разработчиков смущает отсутствие modelsкаталога. Однако отсутствие такого каталога является преднамеренным. Мы находим слово «модели» неоднозначным, поскольку оно означает много разных вещей для разных людей. Некоторые разработчики называют «модель» приложения как совокупность всей его бизнес-логики, в то время как другие называют «модели» классами, которые взаимодействуют с реляционной базой данных.

По этой причине мы app по умолчанию размещаем модели Eloquent в каталоге и разрешаем разработчику размещать их где-то еще, если они того пожелают.

 

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

Каталог приложений

app - каталог содержит основной код приложения. Мы рассмотрим этот каталог более подробно в ближайшее время; однако почти все классы в вашем приложении будут в этом каталоге.

 

Каталог начальной загрузки

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

 

Каталог конфигурации

config - каталог, как следует из названия, содержит все файлы конфигурации вашего приложения. Это хорошая идея, чтобы прочитать все эти файлы и ознакомиться со всеми доступными вам опциями.

 

Каталог базы данных

В database - каталоге содержатся миграции вашей базы данных, фабрики моделей и семена. При желании вы также можете использовать этот каталог для хранения базы данных SQLite.

 

Публичный каталог

public - каталог содержит файл, который является точкой входа для всех запросов ввода приложения и настраивают автозагрузку. В этом каталоге также находятся ваши ресурсы, такие как изображения, JavaScript и CSS.index.php

 

Справочник Ресурсов

resources - каталог содержит ваши мнения, а также сырые, не-скомпилированных активы , такие как LESS, SASS или JavaScript. В этом каталоге также находятся все ваши языковые файлы.

 

Каталог маршрутов

routes - каталог содержит все определения маршрута для вашего приложения. По умолчанию несколько файлов маршрута включены Laravel: , , и .web.phpapi.phpconsole.phpchannels.php

Файл содержит маршруты , что места в межплатформенной группе, которая обеспечивает состояние сеанса, защиту от CSRF, и шифрование печенья. Если ваше приложение не предлагает API RESTful без сохранения состояния, все ваши маршруты, скорее всего, будут определены в файле.web.phpRouteServiceProviderwebweb.php

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

В этом файле вы можете определить все свои консольные команды на основе Closure. Каждое замыкание связано с экземпляром команды, что позволяет простой подход к взаимодействию с методами ввода-вывода каждой команды. Хотя этот файл не определяет HTTP-маршруты, он определяет консольные точки входа (маршруты) в ваше приложение.console.php

В этом файле вы можете зарегистрировать все каналы трансляции событий, которые поддерживает ваше приложение.channels.php

 

Каталог хранения

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

Каталог может быть использован для хранения созданных пользователями файлов, таких как профильными аватары, которые должны быть доступны для общественности. Вы должны создать символическую ссылку, по которой указывается этот каталог. Вы можете создать ссылку, используя команду.storage/app/publicpublic/storagephp artisan storage:link

 

Справочник тестов

tests - каталог содержит автоматизированные тесты. Пример теста PHPUnit предоставляется из коробки. К каждому тестовому классу должно быть добавлено слово Test. Вы можете запустить свои тесты с помощью команд phpunitили .php vendor/bin/phpunit

 

Справочник продавца

vendor - каталог содержит вашу Composer зависимость.

 

Каталог приложений

Большая часть вашего приложения находится в appкаталоге. По умолчанию этот каталог находится под пространством имен Appи автоматически загружается Composer с использованием стандарта автозагрузки PSR-4 .

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

Различные другие каталоги будут сгенерированы внутри appкаталога, когда вы используете makeкоманды Artisan для создания классов. Так, например, каталог не будет существовать, пока вы не выполните команду Artisan для создания класса задания.app/Jobsmake:job

Многие из классов в appкаталоге могут быть сгенерированы Artisan с помощью команд. Чтобы просмотреть доступные команды, запустите php artisan list makeкоманду в своем терминале.

Каталог вещания

Broadcasting - каталог содержит все вещают классы каналов для вашего приложения. Эти классы создаются с помощью команды. Этот каталог не существует по умолчанию, но будет создан для вас при создании первого канала. Чтобы узнать больше о каналах, ознакомьтесь с документацией о трансляции событий .make:channel

 

Консольный каталог

Console - каталог содержит все пользовательские команды Artisan для вашего приложения. Эти команды могут быть созданы с помощью команды. В этом каталоге также находится ваше консольное ядро, где регистрируются ваши пользовательские команды Artisan и определяются ваши запланированные задачи .make:command

 

Каталог событий

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

 

Каталог исключений

Exceptions - каталог содержит обработчик исключений вашего приложения , а также является хорошим местом для размещения каких - либо исключений , брошенных вашим приложением. Если вы хотите настроить регистрацию или визуализацию ваших исключений, вам следует изменить Handlerкласс в этом каталоге.

 

Справочник Http

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

 

Справочник вакансий

Этот каталог по умолчанию не существует, но будет создан для вас, если вы выполните команду Artisan. В каталоге размещаются очереди работ для вашего приложения. Задания могут быть поставлены в очередь вашим приложением или выполняться синхронно в текущем жизненном цикле запроса. Задания, которые выполняются синхронно во время текущего запроса, иногда называют «командами», поскольку они являются реализацией шаблона команды .make:jobJobs

 

Справочник слушателей

Этот каталог не существует по умолчанию, но он будет создан для вас, если вы выполните команды Artisan или . Каталог содержит классы , которые обрабатывают свои события . Слушатели событий получают экземпляр события и выполняют логику в ответ на инициируемое событие. Например, событие может быть обработано слушателем.event:generatemake:listenerListenersUserRegisteredSendWelcomeEmail

 

Почтовый каталог

Этот каталог по умолчанию не существует, но будет создан для вас, если вы выполните команду Artisan. В каталоге содержатся все ваши классы, представляющие электронные письма, отправленные вашим приложением. Почтовые объекты позволяют инкапсулировать всю логику построения электронной почты в одном простом классе, который может быть отправлен с использованием метода.make:mailMailMail::send

 

Каталог уведомлений

Этот каталог по умолчанию не существует, но будет создан для вас, если вы выполните команду Artisan. Каталог содержит все «транзакционных» уведомлений, отправляемых вашим приложением, например, простых уведомлений о событиях , которые происходят в вашем приложении. Функции уведомлений Laravel позволяют отправлять уведомления через различные драйверы, такие как электронная почта, Slack, SMS или хранящиеся в базе данных.make:notificationNotifications

 

Каталог политик

Этот каталог по умолчанию не существует, но будет создан для вас, если вы выполните команду Artisan. Каталог содержит классы политики авторизации для вашего приложения. Политики используются для определения, может ли пользователь выполнить данное действие в отношении ресурса. Для получения дополнительной информации ознакомьтесь с документацией по авторизации .make:policyPolicies

 

Справочник провайдеров

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

В новом приложении Laravel этот каталог уже будет содержать несколько провайдеров. Вы можете добавлять своих поставщиков в этот каталог по мере необходимости.

 

Каталог правил

Этот каталог по умолчанию не существует, но будет создан для вас, если вы выполните команду Artisan. Каталог содержит специальные объекты проверки правил для вашего приложения. Правила используются для инкапсуляции сложной логики проверки в простой объект. Для получения дополнительной информации, проверьте документацию проверки .make:ruleRules