Публикации - Структура и жизненный цикл фрэймворка Laravel

Жизненный цикл запроса

Точка входа для всех запросов фрэймворка начинается с файла index.php. Данный файл не содержит много кода. Основная его задача – загрузка необходимых файлов: autoload.php и app.php. А также дальнейшее перенаправление запроса.

Далее входящий запрос, в зависимости от типа запроса, отправляется либо в модуль, обрабатывающий консольные команды (консольное ядро), либо в ядро фрэймворка, обрабатывающее http-запросы.

Сосредоточимся на ядре HTTP, который находится по адресу app/Http/Kernel.php. Данный файл является расширением класса Illuminate\Foundation\Http\Kernel (ядра фрэймворка). Ядро фрэймворка можно представить в виде большого черного ящика, который обрабатывает запросы, а также определяет перечень промежуточного программного обеспечения (специальных классов наследуемых от класса middleware), которые должен пройти фрэймворк прежде чем выдаст ответ.

Далее загружаются поставшики услуг для приложения (servise providers). Все поставщики услуг по применению настроены в массиве провайдеров конфигурационного файла config/app.php. Далее метод register() определяет необхоимые классы поставщиков услуг. Если некоторые поставщики услуг необходимо запустить сразу, то это можно выполнить в методе boot().

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

И только после того, как все поставщики услуг были зарегистированы (или сразу выполнены методом boot()), запрос попадает в маршрутизатор. Маршрутизатор, как правило, отправляет запрос в какой-либо из контроллеров.

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

Есть много отклонений и различных вариантов путей запроса, но неизменно путь проходит три опорные точки, на которые надо обратить внимание:

1. Роуты - app/routes.php

2. Контроллеры - app/controllers/

3. Отображения (виды) - app/views/

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться