Request lifecycle trong Laravel

04/01/2022   Laravel
Request lifecycle trong Laravel
* Trong file public/index.php
1. Đăng ký cơ chế autoload: require __DIR__.'/../vendor/autoload.php';
2. Khởi tạo ứng dụng $app: $app = require_once __DIR__.'/../bootstrap/app.php';
+ với class: Illuminate\Foundation\Application
3. Khởi tạo $kernel: $kernel = $app->make(Kernel::class);
+ với class: App\Http\Kernel or App\Console\Kernel
+ để nạp service, router, middleware cho app: #middleware: array:6 [▶] #middlewareGroups: array:2 [▶] #routeMiddleware: array:9 [▶] #app: Illuminate\Foundation\Application {#4 ▶} #router: Illuminate\Routing\Router {#32 ▶} #bootstrappers: array:6 [▶] #middlewarePriority:
- Service providers: service provider khởi động nhiều thành phần khác nhau của framework như database, validation, router.
- Router: Route -> Middleware -> Controller/Action
- Middleware
4. Trả kết quả: $response = tap($kernel->handle( $request = Request::capture() ))->send();
- handle() method: chính là controller hoặc action (Closure object).
- send() method(): gửi $response

