Để trở thành chuyên gia Laravel, bạn không thể chỉ biết dùng câu lệnh, mà phải hiểu sâu cách Framework tổ chức.
#1. Request Lifecycle: Hành trình của dữ liệu
Mọi yêu cầu đều đi qua một hành trình logic chặt chẽ:
- Entry Point (
public/index.php): Nạp Composer Autoloader và khởi tạoIlluminate\Foundation\Application. - HTTP Kernel: Giai đoạn quan trọng, nơi Laravel nạp các Middleware toàn cục (như
CheckForMaintenanceMode,TrimStrings,TrustProxies). Đây là nơi đầu tiên bạn có thể tác động vào Request. - Routing & Dispatch: Dựa vào URL và Method, Laravel xác định route nào sẽ khớp. Sau đó, nó chạy thêm Route Middleware (ví dụ
auth,throttle). - Controller/Action: Business logic thực sự diễn ra ở đây.
- Response: Controller trả về một object
ResponsehoặcView, đi ngược lại qua middleware, rồi tới tay người dùng.
#2. Kiến trúc MVC: Sự tách biệt trách nhiệm
- Model: Không chỉ là lớp kết nối DB, nó là “thực thể” (Entity) chứa business logic (dùng Observer/Events nếu cần).
- View: Được quản lý bởi Blade - một engine biên dịch template thành PHP thuần, giúp vừa nhanh vừa dễ đọc.
- Controller: Chỉ nên là lớp trung gian, chịu trách nhiệm tiếp nhận input, gọi các Services/Actions, và trả về Response.
#3. Các trụ cột quan trọng
- Routing: Hệ thống định tuyến không chỉ ánh xạ URL, mà còn hỗ trợ Route Model Binding, giúp code gọn hơn.
- Validation: Hệ thống Laravel Validation tích hợp chặt chẽ với tầng DB. Sử dụng FormRequest giúp tách biệt logic validate, giúp Controller luôn “mỏng”.
- Service Container: Là hệ thống IoC (Inversion of Control) cho phép bạn quản lý các class phụ thuộc.
#4.Câu hỏi nhanh
- Q: Tại sao Middleware lại là phần quan trọng nhất khi nói về Lifecycle?
- A: Vì nó cho phép bẻ gãy luồng request (ví dụ: block nếu chưa login) hoặc thay đổi dữ liệu trước khi đến Controller. Đó là điểm duy nhất để can thiệp vào request trước khi nó được xử lý.
- Q: Middleware chạy trước chạy sau như thế nào?
- A: Middleware chạy theo cơ chế “củ hành” (onion). Code trước
$next($request)chạy khi request vào, code sau$next($request)chạy khi response đi ra.
#5. Kết luận
Laravel Fundamentals không chỉ là cú pháp, đó là sự hiểu biết về Pipeline và IoC. Hãy dành thời gian debug qua từng lớp của index.php để thấy ma thuật thực sự của Framework.