feat(seo): og:image size for front matter images; short titles and explicit descriptions for From Magento to Symfony
uk/articles/magento-to-symfony/basics/lifecycle.md
+2
−1
Життя запиту
У Magento запит проходить FrontController, список роутерів і execute() дії. У Symfony HttpKernel виконує той самий шлях, але кожен крок — це подія, на яку може підписатися будь-хто: роутинг, безпека, конвертація аргументів, обробка винятків. Зрозумійте цю схему, і більшість «магії» Symfony стане звичайними слухачами подій.
flowchart TD
A["public/index.php"] --> B["Kernel::handle(Request)"]
B --> C{{"kernel.request"}}
C -->|"RouterListener знаходить маршрут"| C2["Firewall: хто користувач"]
C2 --> D{{"kernel.controller"}}
D --> E["ArgumentResolver: Request, сутності, DTO"]
E --> F["Контролер"]
F -->|"повернув Response"| H{{"kernel.response"}}
F -->|"повернув не Response"| G{{"kernel.view"}}
G --> H
H --> I["Response::send()"]
I --> J{{"kernel.terminate"}}
F -. "виняток" .-> X{{"kernel.exception"}}
X --> H
| Крок Symfony | Найближче в Magento | Що там відбувається |
|---|---|---|
| public/index.php, Kernel | pub/index.php, Bootstrap, App\Http::launch() | Завантаження скомпільованого контейнера. |
| kernel.request: RouterListener (пріоритет 32) | FrontController::dispatch(), RouterList::match() | Маршрут записується в атрибути Request. |
| kernel.request: Firewall (пріоритет 8) | area + сесія, плагін автентифікації адмінки | Автентифікація, токен користувача. |
| kernel.controller | controller_action_predispatch, плагіни на dispatch() | Тут спрацьовують #[IsGranted], #[Cache]. |
| ArgumentResolver | немає; getParam() вручну | Сутність за id, DTO з JSON, поточний користувач. |
| Контролер | ActionInterface::execute() | Ваш код. |
| kernel.view | немає | Перетворення не-Response на Response, наприклад #[Template]. |
| kernel.response | controller_front_send_response_before | Заголовки, cookies, Web Profiler toolbar. |
| kernel.terminate | немає | Робота після відправки відповіді: логи, листи. |
| kernel.exception | ExceptionHandler, noroute | 404/403/500, сторінки помилок. |
Подивитися всіх слухачів і їхні пріоритети: bin/console debug:event-dispatcher kernel.request.