Ứng dụng laravel thực sự hoạt động như thế nào ?

folder Kiến thức công nghệ
today 28/06/2024 15:51
Laravel là một framework PHP cực kỳ phổ biến và được yêu thích. Nhưng có bao giờ bạn tự hỏi framework này thực sự hoạt động như thế nào chưa. Hãy cùng khám phá vòng đời của một request trong ứng dụng Laravel và hiểu rõ hơn về cách mà framework này hoạt động nhé.
ung-dung-laravel-thuc-su-hoat-dong-nhu-the-nao

1. Từ khi nào một request bắt đầu hành trình của mình?

Hãy tưởng tượng rằng request của bạn là một người đưa thư nhiệt tình. Anh ấy rời khỏi nhà, mang theo một phong thư quan trọng, nhắm đến đích cuối cùng là gửi đến tay người nhận - đó là ứng dụng Laravel của bạn. Anh ấy tiến vào cửa trước, cũng chính là file public/index.php. Đây là điểm bắt đầu mọi thứ.

Đây là đoạn code để đăng ký autoload, một thành phần không thể thiếu trong framework. Nếu bạn nào chưa biết về cái này thì mình xin giải thích đơn giản. Autoload sẽ giúp chúng ta khởi tạo các class mà không cần phải require/include các file chứa class đó.

2. Chào mừng đến với Kernel!

Tại index.php, người đưa thư gặp người gác cổng Kernel. Kernel giống như một người quản lý nhà hàng tài năng, biết rõ cách điều phối mọi thứ từ đầu bếp cho đến phục vụ bàn. Kernel trong Laravel có hai loại: HTTP Kernel và Console Kernel. Người đưa thư của chúng ta chọn HTTP Kernel vì anh ấy đang mang một HTTP request.

Kernel sẽ khởi động các service provider và sau đó gửi request vào đường hầm Pipeline.

3. Đi qua đường hầm Middleware

Request của chúng ta không đi thẳng đến đích cuối cùng ngay lập tức đâu. Đầu tiên, anh ấy phải đi qua một loạt các middleware. Hãy tưởng tượng middleware là các trạm kiểm soát an ninh tại sân bay. Mỗi trạm có một nhiệm vụ riêng: kiểm tra vé, kiểm tra hành lý, kiểm tra hộ chiếu, và đôi khi còn hỏi bạn vài câu hỏi kỳ quặc.

Chẳng hạn như có một request với đường dẫn là http://localhost:8000/login, một coder muốn ràng buộc rằng nếu tồn tại session/cookie đăng nhập của client thì khi vào request này sẽ chuyển về trang chủ, còn nếu không thì vẫn hiển thị form đăng nhập để client tiếp tục. Đây là lúc sử dụng middleware để ràng buộc.

4. Route Dispatcher - Người điều phối tài ba

Sau khi vượt qua các trạm kiểm soát, request gặp Route Dispatcher. Anh này giống như người điều phối tại sân bay, chỉ dẫn hành khách đến đúng cổng khởi hành. Route Dispatcher tìm kiếm trong danh sách các tuyến đường (route) để xác định nơi mà request nên đi tiếp.

5. Đến với Controller - Người quản lý yêu cầu

Khi đã được Route Dispatcher chỉ đường, request tiến đến Controller. Hãy tưởng tượng Controller là người quản lý yêu cầu trong một nhà hàng, người này tiếp nhận yêu cầu của khách hàng và đảm bảo rằng đầu bếp sẽ chuẩn bị món ăn chính xác.

6. Model - Nhà kho dữ liệu

Nếu Controller cần dữ liệu, nó sẽ gọi đến Model. Model là những người thủ kho chăm chỉ, truy cập vào cơ sở dữ liệu và lấy ra những thông tin cần thiết. Họ làm việc với Eloquent ORM, một công cụ giúp việc truy cập dữ liệu trở nên dễ dàng hơn rất nhiều.

 

7. Tạo ra Response

Sau khi Controller đã hoàn thành công việc, anh ấy tạo ra một response - giống như việc đầu bếp chuẩn bị xong món ăn và đặt lên khay phục vụ. Response này có thể là HTML, JSON, hay thậm chí là một file để người dùng tải về.

8. Middleware - Một lần nữa

Trước khi response đến tay người dùng, nó phải đi qua middleware một lần nữa, giống như việc bạn phải đi qua cổng an ninh trước khi ra khỏi sân bay. Các middleware sẽ kiểm tra lại response, có thể thêm hoặc sửa đổi nó nếu cần thiết.

9. Trở lại với Kernel và sau đó ra ngoài

Cuối cùng, response quay trở lại với Kernel, nơi nó được chuẩn bị kỹ càng để gửi đến người dùng. Kernel đóng gói response và gửi nó ra ngoài, đi qua file index.php một lần nữa và cuối cùng đến trình duyệt của người dùng.

Kết thúc một hành trình đầy thú vị phải không nào

Vậy là bạn đã biết request của chúng ta đã trải qua những gì trong chuyến hành trình của mình. Từ việc gặp Kernel, đi qua middleware, được điều phối bởi Route Dispatcher, xử lý bởi Controller, truy cập dữ liệu từ Model, và cuối cùng tạo ra một response hoàn chỉnh. Laravel đã biến mọi thứ trở nên rõ ràng và dễ dàng hơn rất nhiều.

Hy vọng rằng cuộc hành trình này không chỉ giúp bạn hiểu rõ hơn về Laravel mà còn mang lại cho bạn những phút giây vui vẻ. Laravel không chỉ là một framework mạnh mẽ mà còn là một người bạn đồng hành đáng tin cậy trong mọi dự án của bạn. Hãy tiếp tục khám phá và tận hưởng sự kỳ diệu của Laravel!

Bài viết cùng chuyên mục

hatonet

Hướng dẫn cài và sử dụng vue-object-to-formdata cho dự án nuxtjs

today 11/12/2024 22:15
vue-object-to-formdata là một thư viện JavaScript được thiết kế để chuyển đổi một đối tượng JavaScript (Object) thành đối tượng FormData. Đây là một đối tượng có thể dễ dàng sử dụng trong các yêu cầu HTTP để gửi dữ liệu, đặc biệt là khi bạn cần gửi dữ liệu như là một phần của biểu mẫu (form), ví dụ: khi upload file hoặc gửi dữ liệu dưới dạng multipart/form-data.
Xem thêm arrow_right_alt
hatonet

Hướng dẫn cài đặt và sử dụng v-tooltip trong project nuxt js

today 04/12/2024 21:34
v-tooltip là một thư viện Vue.js nhẹ, dễ sử dụng, giúp tạo ra các tooltip (hộp thông báo khi người dùng di chuột qua một phần tử) trong các ứng dụng Vue. Tooltip là một yếu tố giao diện người dùng (UI) thông báo hoặc giải thích ngắn gọn về một đối tượng khi người dùng hover (di chuột) hoặc focus vào phần tử đó.
Xem thêm arrow_right_alt
hatonet

Hướng dẫn cài đặt và sử dụng thư viện Elementjs nuxtjs

today 28/11/2024 23:14
Thư viện Element UI là một bộ thư viện giao diện người dùng mạnh mẽ, cung cấp nhiều thành phần (components) tùy chỉnh sẵn, giúp bạn xây dựng giao diện ứng dụng dễ dàng và nhanh chóng. Đối với Nuxt.js , bạn có thể tích hợp và sử dụng Element UI một cách đơn giản. Dưới đây là hướng dẫn từng bước.
Xem thêm arrow_right_alt

Việc làm tại Hatonet

Actively collaborate with team leads to develop a cohesive vision for each Agent that ensures audience resonance, and successful integration with the existing cast through personality, visual aesthetics, and gameplay Lead, manage, and mentor a high performing, healthy, and collaborative concept art team Work with production to ensure your team’s timely and successful delivery of products Maintain and contribute to artifacts that inform, align, and empower teams to successfully create character concept art in the VALORANT style

  • GWS
  • Trưởng phòng IT
Onsite
vietnam_flag