Vòng đời của laravel

25/11/2021 | Tin tức

Vòng đời request Laravel (Request lifecycle Laravel), đối với mỗi framework đề có một vòng đời

Đối với mỗi framework đều có vòng đời riêng, nó thể hiện cách thức hoạt động của một framework. khi hiểu được lifecycle của một ngôn ngữ giúp ta có thể khai thác và vận dụng nó một cách hiệu quả nhất. Chính vì thế hiểu được vòng đời của nó là việc khá quan trọng khi bắt đầu tìm hiểu về 1 framework.

Vòng đời của laravel (request lifecycle model laravel)

Lifecycle là gì ? khi dịch nghĩa ra có lẻ mọi người cũng đã hiểu được ý nghĩa của nó rồi. Lifecyle trong laravel cũng vậy nó thể hiện cho một chu trình của framework đó từ lúc bắt đầu đến lúc kết thúc.

Nhìn vào hình ảnh phía trên thì mọi người có thể thấy được, khi người dùng "user" gửi lên một request thì ngay lập tức nó sẽ gọi đến file index.php để xử lý, và tất cả các request gửi lên đều phải đi qua file này.

Nhìn vào file index.php ta thấy nó chỉ chứa một vài đoạn code và những đoạn code này chỉ làm ba nhiệm vụ chính đó là:

  1. đăng ký cơ chế autoload : Giúp khởi tạo các class mà không cần phải require hay include các file chứa class đó.
  2. chẩn bị để khở động ứng dụng: Laravel kết nối với file bootstrap/app.php để chuẩn bị sẵn sàng cho việc chạy ứng dụng. Với 3 nhiệm vụ là tạo ứng dụng , đăng ký các interface quan trọng và trả về đối tượng ứng dụng.
  3. chạy ứng dụng: khi ứng dụng được khởi chạy nó sẽ đơn giản là nhận một request và trả về 1 response.

Tiếp theo request sẽ được gửi lên HTTP Kernel hoặc console kernel, tuỳ thuộc vào request được gửi lên từ đâu. Hiện tại chúng ta chỉ quan tâm đên HTTP Kernel nằm ở file app/http/kernel.php

HTTP kernel được kế thừa class Illuminate\Foundation\Http\Kernel, class này sẽ thực hiện công việc trước khi request được thực thi như cấu hình và xử lý lỗi, cấu hình logger xác định môi trường ứng dụng và một số công việc khác.

HTTP kernel cũng thực hiện một số middlware mặc định của laravel buộc các request phải vượt qua trước khi được ứng dụng xử lý như kiểm tra ứng dụng có đang ở chế độ bảo trì hay không, xác thực CSRF, thao tác với HTTP session... 

Một trong những công việc quan trọng nhát của HTTP Kernel đó chính là load các service provinder. Tất cả các service provinder được cấu hình trong file config/app.php quá trình load các service provinder sẽ trải qua 2 quá trình là đăng ký và khởi động.

Các service provinder khởi động nhiều thành phần khác nhau của framework như database, validation, router ... chính vì thế mà nó đóng vai trò thiết yếu trong quá trình chạy ứng dụng laravel.

Sau khi hoàn tất quá trình load service provinder các request được gửi đến router . Công việc của router là so sánh với các request được gửi lên. Tại đây router có 2 hướng xử lý

  1. router -> middleware -> controller
  2. router -> controller

Tại đây nó sẽ được chuyển qua middleware để kiểm tra hoặc chuyển đến controller để tiếp tục xử lý tuỳ thuộc vào việc ta có ràng buộc cho request trước đó hay chưa . Nếu có ràng buộc nó sẽ được đưa đến middleware để kiểm tra điều kiện và ngược lại nó sẽ được đưa đến controller để xử lý.

Sau khi được chuyển qua middleware tại đây nó sẽ kiểm tra các ràng buộc xem request đó có được đi tiếp hay không. Ví dụ nó sẽ kiểm tra xem tại đây người dùng đã tiến hành đăng nhập chưa chẳng hạn...

Sau khi request thoả mãn điều kiện đi tiếp nó sẽ được đưa đến controller , tại controller sẽ tiến hành xử lý các logic cần thiết trước khi trả về response cho người dùng.

 

 

Nhiều lượt xem

crawl crawl Bem là gì ? Quy tắt đặt tên cho CSS
19/01/2022 | Tin tức

crawl crawl Bem là gì ? Quy tắt đặt tên...

crawl Bem là gì ? Quy tắt đặt tên cho CSS
19/01/2022 | Tin tức

Bem là gì ? Quy tắt đặt tên cho CSS

craawl Laravel là gì? Tìm hiểu chi tiết về Laravel 1
19/01/2022 | Tin tức

craawl Laravel là gì? Tìm hiểu chi tiết...

Crawl dữ liệu website với php (laravel)
11/12/2021 | Tin tức

Crawl dữ liệu, cào dữ liệu, leech data...