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

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

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Введение

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

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

Обзор жизненного цикла Laravel

Первичное о работе приложения на Laravel

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

Файл index.php загружает определение автозагрузчика, созданное Composer, а затем извлекает экземпляр приложения Laravel из bootstrap/app.php. Первым действием, предпринимаемым самим Laravel, является создание экземпляра контейнера приложения / службы [service container].

Ядро HTTP и ядро консоли

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

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

Ядро HTTP также определяет список промежуточного программного обеспечения [middleware] HTTP, через которое должны пройти все запросы, прежде чем они будут обработаны приложением. Это промежуточное ПО обрабатывает чтение и запись сеанса HTTP, определяет, находится ли приложение в режиме обслуживания, проверяет токен CSRF и т.д..

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

Поставщики услуг [Service Providers]

Одним из наиболее важных действий начальной загрузки ядра является загрузка поставщиков услуг [Service Providers] для вашего приложения. Все поставщики услуг для приложения настраиваются в массиве поставщиков providers файла конфигурации config/app.php. Сначала будет вызван метод регистрации register для всех провайдеров, затем, когда все провайдеры будут зарегистрированы, будет вызван метод загрузки boot.

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

Запрос на отправку

После начальной загрузки приложения и регистрации всех поставщиков услуг запрос Request будет передан маршрутизатору для отправки. Маршрутизатор отправит запрос на маршрут или контроллер, а также запустит промежуточное ПО для конкретного маршрута.

Фокус на Service Providers

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

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

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

Перевод:
https://laravel.com/docs/8.x/lifecycle

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню