Життя запиту

← Життя запиту

Ashterix

docs(articles): Magento and Symfony examples side by side, request lifecycle as a Mermaid diagram

uk/articles/magento-to-symfony/basics/lifecycle.md +15 −12

2 2
3 3 У Magento запит проходить FrontController, список роутерів і `execute()` дії. У Symfony `HttpKernel` виконує той самий шлях, але кожен крок — це подія, на яку може підписатися будь-хто: роутинг, безпека, конвертація аргументів, обробка винятків. Зрозумійте цю схему, і більшість «магії» Symfony стане звичайними слухачами подій.
4 4
5 − ```text
6 − public/index.php
7 − → Kernel::handle(Request)
8 − → kernel.request RouterListener знаходить маршрут, потім Firewall: хто користувач
9 − → kernel.controller
10 − → ArgumentResolver Request, сутності, DTO
11 − → Контролер
12 − повернув Response → kernel.response
13 − повернув не Response → kernel.view → kernel.response
14 − кинув виняток → kernel.exception → kernel.response
15 − → Response::send()
16 − → kernel.terminate
5 + ```mermaid
6 + flowchart TD
7 + A["public/index.php"] --> B["Kernel::handle(Request)"]
8 + B --> C{{"kernel.request"}}
9 + C -->|"RouterListener знаходить маршрут"| C2["Firewall: хто користувач"]
10 + C2 --> D{{"kernel.controller"}}
11 + D --> E["ArgumentResolver: Request, сутності, DTO"]
12 + E --> F["Контролер"]
13 + F -->|"повернув Response"| H{{"kernel.response"}}
14 + F -->|"повернув не Response"| G{{"kernel.view"}}
15 + G --> H
16 + H --> I["Response::send()"]
17 + I --> J{{"kernel.terminate"}}
18 + F -. "виняток" .-> X{{"kernel.exception"}}
19 + X --> H
17 20 ```
18 21
19 22 | Крок Symfony | Найближче в Magento | Що там відбувається |