Вступление
Структура приложения Laravel по умолчанию предназначена для того, чтобы обеспечить отличную отправную точку для больших и маленьких приложений. Но вы можете организовать свое приложение так, как вам нравится. Laravel практически не накладывает ограничений на то, где находится какой-либо данный класс - до тех пор, пока Composer может автоматически загружать класс.
Где находится каталог моделей?
Приступая к работе с Laravel, многих разработчиков смущает отсутствие models
каталога. Однако отсутствие такого каталога является преднамеренным. Мы находим слово «модели» неоднозначным, поскольку оно означает много разных вещей для разных людей. Некоторые разработчики называют «модель» приложения как совокупность всей его бизнес-логики, в то время как другие называют «модели» классами, которые взаимодействуют с реляционной базой данных.
По этой причине мы app
по умолчанию размещаем модели Eloquent в каталоге и разрешаем разработчику размещать их где-то еще, если они того пожелают.
Корневой каталог
Каталог приложений
app -
каталог содержит основной код приложения. Мы рассмотрим этот каталог более подробно в ближайшее время; однако почти все классы в вашем приложении будут в этом каталоге.
Каталог начальной загрузки
bootstrap -
каталог содержит файл , который бутстрэпы рамки. В этом каталоге также находится каталог, содержащий файлы, сгенерированные платформой для оптимизации производительности, такие как файлы кэша маршрутов и служб.app.php
cache
Каталог конфигурации
config -
каталог, как следует из названия, содержит все файлы конфигурации вашего приложения. Это хорошая идея, чтобы прочитать все эти файлы и ознакомиться со всеми доступными вам опциями.
Каталог базы данных
В database
- каталоге содержатся миграции вашей базы данных, фабрики моделей и семена. При желании вы также можете использовать этот каталог для хранения базы данных SQLite.
Публичный каталог
public
- каталог содержит файл, который является точкой входа для всех запросов ввода приложения и настраивают автозагрузку. В этом каталоге также находятся ваши ресурсы, такие как изображения, JavaScript и CSS.index.php
Справочник Ресурсов
resources
- каталог содержит ваши мнения, а также сырые, не-скомпилированных активы , такие как LESS, SASS или JavaScript. В этом каталоге также находятся все ваши языковые файлы.
Каталог маршрутов
routes
- каталог содержит все определения маршрута для вашего приложения. По умолчанию несколько файлов маршрута включены Laravel: , , и .web.php
api.php
console.php
channels.php
Файл содержит маршруты , что места в межплатформенной группе, которая обеспечивает состояние сеанса, защиту от CSRF, и шифрование печенья. Если ваше приложение не предлагает API RESTful без сохранения состояния, все ваши маршруты, скорее всего, будут определены в файле.web.php
RouteServiceProvider
web
web.php
Файл содержит маршруты , что места в промежуточном программном обеспечении группы, которая обеспечивает ограничение скорости. Предполагается, что эти маршруты не сохраняют состояния, поэтому запросы, поступающие в приложение по этим маршрутам, предназначены для проверки подлинности с помощью токенов и не будут иметь доступа к состоянию сеанса.api.php
RouteServiceProvider
api
В этом файле вы можете определить все свои консольные команды на основе Closure. Каждое замыкание связано с экземпляром команды, что позволяет простой подход к взаимодействию с методами ввода-вывода каждой команды. Хотя этот файл не определяет HTTP-маршруты, он определяет консольные точки входа (маршруты) в ваше приложение.console.php
В этом файле вы можете зарегистрировать все каналы трансляции событий, которые поддерживает ваше приложение.channels.php
Каталог хранения
storage
- каталог содержит ваш скомпилированные шаблоны отвала, на основе файлов сеансов, кэша файлов, а также другие файлы , созданные в рамках. Этот каталог разделяется на app
, framework
и logs
каталоги. app
Каталог может быть использован для хранения любых файлов , генерируемых приложением. framework
Каталог используется для хранения каркасных сгенерированных файлов и кэшей. Наконец, logs
каталог содержит файлы журналов вашего приложения.
Каталог может быть использован для хранения созданных пользователями файлов, таких как профильными аватары, которые должны быть доступны для общественности. Вы должны создать символическую ссылку, по которой указывается этот каталог. Вы можете создать ссылку, используя команду.storage/app/public
public/storage
php artisan storage:link
Справочник тестов
tests
- каталог содержит автоматизированные тесты. Пример теста PHPUnit предоставляется из коробки. К каждому тестовому классу должно быть добавлено слово Test
. Вы можете запустить свои тесты с помощью команд phpunit
или .php vendor/bin/phpunit
Справочник продавца
vendor
- каталог содержит вашу Composer зависимость.
Каталог приложений
Большая часть вашего приложения находится в app
каталоге. По умолчанию этот каталог находится под пространством имен App
и автоматически загружается Composer с использованием стандарта автозагрузки PSR-4 .
app
Каталог содержит множество дополнительных каталогов , таких как Console
, Http
и Providers
. Подумайте о Console
и Http
каталогах, обеспечивая API в ядро приложения. Протокол HTTP и CLI являются механизмами взаимодействия с вашим приложением, но на самом деле не содержат логику приложения. Другими словами, это два способа подачи команд в ваше приложение. Console
Каталог содержит все ваши Artisan команды, в то время как Http
каталог содержит ваши контроллеры, промежуточное и запросы.
Различные другие каталоги будут сгенерированы внутри app
каталога, когда вы используете make
команды Artisan для создания классов. Так, например, каталог не будет существовать, пока вы не выполните команду Artisan для создания класса задания.app/Jobs
make:job
Многие из классов в
app
каталоге могут быть сгенерированы Artisan с помощью команд. Чтобы просмотреть доступные команды, запуститеphp artisan list make
команду в своем терминале.
Каталог вещания
Broadcasting
- каталог содержит все вещают классы каналов для вашего приложения. Эти классы создаются с помощью команды. Этот каталог не существует по умолчанию, но будет создан для вас при создании первого канала. Чтобы узнать больше о каналах, ознакомьтесь с документацией о трансляции событий .make:channel
Консольный каталог
Console
- каталог содержит все пользовательские команды Artisan для вашего приложения. Эти команды могут быть созданы с помощью команды. В этом каталоге также находится ваше консольное ядро, где регистрируются ваши пользовательские команды Artisan и определяются ваши запланированные задачи .make:command
Каталог событий
Этот каталог не существует по умолчанию, но будет создан для вас командами и Artisan. В каталоге размещены классы мероприятий . События могут использоваться для оповещения других частей вашего приложения о том, что произошло определенное действие, что обеспечивает большую гибкость и развязку.event:generate
make:event
Events
Каталог исключений
Exceptions
- каталог содержит обработчик исключений вашего приложения , а также является хорошим местом для размещения каких - либо исключений , брошенных вашим приложением. Если вы хотите настроить регистрацию или визуализацию ваших исключений, вам следует изменить Handler
класс в этом каталоге.
Справочник Http
Http
- каталог содержит ваши контроллеры, запросы промежуточного слоя и формы. Почти вся логика для обработки запросов, поступающих в ваше приложение, будет размещена в этом каталоге.
Справочник вакансий
Этот каталог по умолчанию не существует, но будет создан для вас, если вы выполните команду Artisan. В каталоге размещаются очереди работ для вашего приложения. Задания могут быть поставлены в очередь вашим приложением или выполняться синхронно в текущем жизненном цикле запроса. Задания, которые выполняются синхронно во время текущего запроса, иногда называют «командами», поскольку они являются реализацией шаблона команды .make:job
Jobs
Справочник слушателей
Этот каталог не существует по умолчанию, но он будет создан для вас, если вы выполните команды Artisan или . Каталог содержит классы , которые обрабатывают свои события . Слушатели событий получают экземпляр события и выполняют логику в ответ на инициируемое событие. Например, событие может быть обработано слушателем.event:generate
make:listener
Listeners
UserRegistered
SendWelcomeEmail
Почтовый каталог
Этот каталог по умолчанию не существует, но будет создан для вас, если вы выполните команду Artisan. В каталоге содержатся все ваши классы, представляющие электронные письма, отправленные вашим приложением. Почтовые объекты позволяют инкапсулировать всю логику построения электронной почты в одном простом классе, который может быть отправлен с использованием метода.make:mail
Mail
Mail::send
Каталог уведомлений
Этот каталог по умолчанию не существует, но будет создан для вас, если вы выполните команду Artisan. Каталог содержит все «транзакционных» уведомлений, отправляемых вашим приложением, например, простых уведомлений о событиях , которые происходят в вашем приложении. Функции уведомлений Laravel позволяют отправлять уведомления через различные драйверы, такие как электронная почта, Slack, SMS или хранящиеся в базе данных.make:notification
Notifications
Каталог политик
Этот каталог по умолчанию не существует, но будет создан для вас, если вы выполните команду Artisan. Каталог содержит классы политики авторизации для вашего приложения. Политики используются для определения, может ли пользователь выполнить данное действие в отношении ресурса. Для получения дополнительной информации ознакомьтесь с документацией по авторизации .make:policy
Policies
Справочник провайдеров
В Providers
каталоге содержатся все поставщики услуг для вашего приложения. Поставщики услуг загружают ваше приложение, связывая службы в контейнере служб, регистрируя события или выполняя любые другие задачи, чтобы подготовить ваше приложение к входящим запросам.
В новом приложении Laravel этот каталог уже будет содержать несколько провайдеров. Вы можете добавлять своих поставщиков в этот каталог по мере необходимости.
Каталог правил
Этот каталог по умолчанию не существует, но будет создан для вас, если вы выполните команду Artisan. Каталог содержит специальные объекты проверки правил для вашего приложения. Правила используются для инкапсуляции сложной логики проверки в простой объект. Для получения дополнительной информации, проверьте документацию проверки .make:rule
Rules
0 комментариев