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

Прохождение запроса

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

  1. 1. Введение
  2. 2. Прохождение запроса
    1. 2.1. Начало
    2. 2.2. Ядра HTTP / Console
    3. 2.3. Поставщики услуг
    4. 2.4. Отправка запроса
  3. 3. Сконцентрируйтесь на поставщиках услуг
Этот перевод актуален для англоязычной документации на (ветка 5.1) и (ветка 5.0). Опечатка? Выдели и нажми Ctrl+Enter.

Введение

При использовании любого инструмента в «реальном мире» вы чувствуете больше уверенности, когда понимаете, как он устроен. Разработка приложений — не исключение. Когда вы понимаете, как функционируют ваши средства разработки, вы чувствуете себя более комфортно и уверенно.

Задача этого документа состоит в том, чтобы дать вам хороший поверхностный обзор того, как «работает» фреймворк Laravel. Чем лучше вы знаете фреймворк, тем меньше в нём остаётся «волшебства», и вы более уверенно создаёте приложения.

Не отчаивайтесь, если не всё сразу поймёте! Постарайтесь просто получить базовое понимание того, что происходит, и ваши знания будут расти по мере изучения других разделов документации.

Прохождение запроса

Начало

Входная точка для всех запросов к вашему приложению — файл public/index.php. Все запросы направляются в этот файл настройками вашего веб-сервера (Apache / Nginx). Файл index.php содержит довольно мало кода. Скорее, он просто отправная точка для загрузки всего остального фреймворка.

Файл index.php загружает сгенерированное с помощью Composer определение автозагрузчика, а затем извлекает экземпляр Laravel-приложения из скрипта bootstrap/app.php. Первое действие самого Laravel — создание экземпляра приложения / сервис-контейнера.

Ядра HTTP / Console

Далее входящий запрос посылается либо в HTTP-ядро, либо в ядро консоли, в зависимости от типа этого запроса. Эти ядра служат центральным местом, через которое протекают все запросы. Пока давайте рассмотрим HTTP-ядро, которое расположено в app/Http/Kernel.php.

HTTP-ядро наследует класс Illuminate\Foundation\Http\Kernel, который определяет массив загрузчиков PHPbootstrappers, которые будут запущены перед выполнением запроса. Эти загрузчики настраивают обработку ошибок, настраивают ведение журналов, определяют среду приложения и выполняют другие задачи, которые надо выполнить перед самой обработкой запроса.

HTTP-ядро также определяет список посредников HTTP, через которые должны пройти все запросы, прежде чем будут обработаны приложением. Эти посредники обрабатывают чтение и запись HTTP-сессии, определяют, находится ли приложение в режиме обслуживания, проверяют CSRF-последовательность, и т.п.

Принцип действия метода PHPhandle HTTP-ядра очень прост: получить Request и вернуть Response. Представьте ядро как большую чёрную коробку, которая представляет собой всё ваше приложение. Наполняйте его HTTP-запросами и оно будет возвращать HTTP-ответы.

Поставщики услуг

Одно из важнейших действий ядра при загрузке — загрузка поставщиков услуг для вашего приложения. Все поставщики услуг настраиваются в конфигурационном файле config/app.php в массиве providers. Сначала будет вызван метод PHPregister для всех поставщиков, а когда все они будут зарегистрированы, будет вызван метод PHPboot.

Поставщики услуг отвечают за начальную загрузку всевозможных компонентов фреймворка: БД, очередь, проверка ввода и маршрутизация. Поставщики услуг — важнейший элемент всего процесса начальной загрузки Laravel, так как они отвечают за загрузку и настройку всех возможностей, необходимых фреймворку.

Отправка запроса

Когда приложение загружено, и все поставщики услуг зарегистрированы, запрос Request будет передан роутеру для отправки. Роутер отправит запрос по маршруту или контроллеру, а также запустит посредника, соответствующего маршруту.

Сконцентрируйтесь на поставщиках услуг

Поставщики услуг — поистине ключ к загрузке Laravel-приложения. Экземпляр приложения создан, поставщики услуг зарегистрированы, и запрос передан в загруженное приложение. Вот так просто!

Очень важно иметь хорошее понимание того, как строится и загружается Laravel-приложение с помощью поставщиков услуг. Само собой поставщики услуг вашего приложения по умолчанию хранятся в app/Providers.

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

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

Разметка: ? ?

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