<? phpukraine ДОКУМЕНТАЦІЯ
Пошук по платформі
Документація українською

Переклад офіційної документації українською. Кожен розділ показує стан готовності: недоперекладене позначене відкрито, а не приховане.

ВЕРСІЯ
АКТУАЛЬНА Актуальний реліз. Переклад наздоганяє оригінал, розділи з низьким відсотком позначені у змісті.
АРХІТЕКТУРА · ПЕРЕКЛАДЕНО оновлено 10 вересня 2026

Життєвий цикл запиту · Laravel

Вступ

Коли ви користуєтеся будь-яким інструментом у «реальному світі», ви почуваєтеся впевненіше, якщо розумієте, як цей інструмент працює. З розробкою застосунків так само. Коли ви розумієте, як працюють ваші інструменти розробки, вам комфортніше й упевненіше з ними працювати.

Мета цього документа - дати вам добрий загальний огляд того, як працює фреймворк Laravel. Що краще ви знаєте фреймворк у цілому, то менше «магії» в ньому лишається і то впевненіше ви будуєте свої застосунки. Якщо не всі терміни зрозумілі одразу, не засмучуйтеся! Спробуйте вловити базове уявлення про те, що відбувається, а знання наростатимуть у міру того, як ви вивчатимете інші розділи документації.

Огляд життєвого циклу

Перші кроки

Точка входу для всіх запитів до Laravel-застосунку - файл public/index.php. Усі запити спрямовує до цього файлу конфігурація вашого вебсервера (Apache / Nginx). Коду у файлі index.php небагато. Це радше стартова точка для завантаження решти фреймворку.

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

HTTP- та консольне ядро

Далі вхідний запит надсилається або до HTTP-ядра, або до консольного ядра, через методи handleRequest чи handleCommand екземпляра застосунку, залежно від типу запиту, що надходить до застосунку. Ці два ядра слугують центральним місцем, через яке проходять усі запити. Поки що зосередимося на HTTP-ядрі, яке є екземпляром Illuminate\Foundation\Http\Kernel.

HTTP-ядро визначає масив bootstrappers, які виконуються перед обробкою запиту. Ці bootstrappers налаштовують обробку помилок, налаштовують логування, визначають середовище застосунку і виконують інші завдання, які треба зробити до того, як запит буде фактично оброблено. Зазвичай ці класи займаються внутрішньою конфігурацією Laravel, про яку вам не потрібно турбуватися.

HTTP-ядро також відповідає за пропускання запиту через стек middleware застосунку. Ці middleware читають і записують HTTP-сесію, визначають, чи застосунок у режимі обслуговування, перевіряють CSRF-токен і роблять інше. Про них ми ще поговоримо докладніше.

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

Сервіс-провайдери

Одна з найважливіших дій завантаження ядра - підключення сервіс-провайдерів вашого застосунку. Сервіс-провайдери відповідають за ініціалізацію різних компонентів фреймворку: бази даних, черг, валідації, маршрутизації.

Laravel пройдеться цим списком провайдерів і створить екземпляр кожного з них. Після створення екземплярів провайдерів на всіх них буде викликано метод register. Потім, коли всі провайдери зареєстровано, на кожному провайдері викликається метод boot. Так зроблено для того, щоб сервіс-провайдери могли розраховувати на те, що на момент виконання їхнього методу boot усі привʼязки контейнера вже зареєстровані й доступні.

По суті, кожна велика можливість Laravel ініціалізується й налаштовується сервіс-провайдером. Оскільки вони ініціалізують і налаштовують стільки можливостей фреймворку, сервіс-провайдери є найважливішою частиною всього процесу завантаження Laravel.

Хоча всередині фреймворк використовує десятки сервіс-провайдерів, ви також маєте змогу створювати власні. Список сервіс-провайдерів, визначених користувачем або сторонніми пакетами, які використовує ваш застосунок, можна знайти у файлі bootstrap/providers.php.

Маршрутизація

Щойно застосунок завантажено й усі сервіс-провайдери зареєстровано, Request передається роутеру для диспетчеризації. Роутер відправить запит до маршруту або контролера, а також виконає будь-які middleware, специфічні для маршруту.

Middleware дають зручний механізм фільтрації або перевірки HTTP-запитів, що надходять до вашого застосунку. Наприклад, Laravel містить middleware, який перевіряє, чи автентифікований користувач вашого застосунку. Якщо користувач не автентифікований, middleware перенаправить його на екран входу. Якщо ж користувач автентифікований, middleware дозволить запиту рухатися далі вглиб застосунку. Деякі middleware призначені всім маршрутам застосунку, як-от PreventRequestsDuringMaintenance, а деякі призначені лише конкретним маршрутам чи групам маршрутів. Дізнатися більше про middleware можна з повної документації про middleware.

Якщо запит проходить через усі middleware, призначені збігу-маршруту, буде виконано маршрут або метод контролера, а відповідь, яку повернув маршрут чи метод контролера, буде надіслано назад через ланцюжок middleware цього маршруту.

Завершення

Щойно маршрут або метод контролера повертає відповідь, вона рухається назовні через middleware маршруту, даючи застосунку нагоду змінити або перевірити вихідну відповідь.

Нарешті, коли відповідь пройшла назад через middleware, метод handle HTTP-ядра повертає обʼєкт відповіді до handleRequest екземпляра застосунку, і цей метод викликає метод send на поверненій відповіді. Метод send надсилає вміст відповіді до браузера користувача. На цьому наша подорож повним життєвим циклом запиту в Laravel завершена!

Фокус на сервіс-провайдерах

Сервіс-провайдери справді є ключем до завантаження Laravel-застосунку. Створюється екземпляр застосунку, реєструються сервіс-провайдери, і запит передається завантаженому застосунку. Усе справді настільки просто!

Добре розуміти, як Laravel-застосунок будується й завантажується через сервіс-провайдери, дуже корисно. Визначені користувачем сервіс-провайдери вашого застосунку зберігаються в каталозі app/Providers.

За замовчуванням AppServiceProvider майже порожній. Цей провайдер - чудове місце, щоб додати власну ініціалізацію застосунку й привʼязки до контейнера сервісів. Для великих застосунків може бути доречно створити кілька сервіс-провайдерів, кожен із детальнішою ініціалізацією для конкретних сервісів, які використовує ваш застосунок.

ЯК ЦЯ СТОРІНКА ВИГЛЯДАЄ В ПОШУКУ
phpukraine.com/docs/laravel/lifecycle
Життєвий цикл запиту | Документація Laravel українською
Життєвий цикл запиту у Laravel 13.x: переклад офіційної документації українською. Оновлено 10 вересня 2026. Приклади коду, пояснення та посилання на питання зі співбесід.
Стан перекладу

Перекладаємо з офіційної документації, розділ за розділом, і не ховаємо недоперекладене. Помітили неточність у терміні чи реченні: напишіть, виправимо.

90%
Готовності
10
У роботі
0
Ще не перекладено
Глосарій термінів