Phần 1: Cấu trúc thư mục
- Thư mục app : chứa mã nguồn của ứng dụng mà chúng ta sẽ viết trong laravel tại
- đây chứa phần lớn source code xử lý logic , helper và điều hướng controller …
- Thư mục bootstrap : chứa các file hệ thống quan trọng cho quá trình khởi động
- Thư mục config : chứa các file cấu hình cho ứng dụng như xác thực , cache , mail ,
- cơ sở dữ liệu …
- Thư mục database : chứa các file migration và seeder
- Thư mục public : chứa file index.php và các file tài sản như css js sass less …
- Thư mục resource : chứa view và blade
- Thư mục routes : chứa các file route
- Thư mục storage : chứa các file cần lưu trữ như cache , session , logs …
- Thư mục vendor : chứa core laravel và thư viện
Phần 2: Laravel Request Lifecycle
- Chu trình hoạt động của laravel:
Điểm đầu tiên của laravel là file public/index.php Nó là điểm bắt đầu của ứng dụng cùng xem nội dung của file này :
- File index.php này gọi file bootstrap/autoload để gọi autoload của các thư viên
trong vendor
- Sau đó nó khởi tạo đối tượng application của laravel vào trong biến $app.
- Quá trình này đồng nghĩa với việc đưa vào trong container 1 vài đối tượng quan trọng :
- Bạn có thể để ý câu lệnh trong file index.php:
- Trước đó ứng dụng đã bind:
- Tại đây khi lấy ra contract kernel thực chất là lấy ra App\Http\Kernel class
- Đây là nội dung của nó:
- Class kernel này kế thừa từ Illuminate\Foundation\Http\Kernel class, Nơi này định nghĩa một mảng của bootstraps sẽ chạy trước khi request được thực thi:
- Boostrap này sẽ cấu hình các biến môi trường , load cấu hình , xử lý exception , đăng ký facade , đăng ký service provider , khởi động các provider và thực thi các tác vụ khác cần để hoàn tất trước khi request được xử lý.
- Http kernel cũng định nghĩa danh sách của http middleware mà tất cả các request phải thực hiện trước khi xử lý request tới ứng dụng . Các middleare xử lý đọc và viết http session xác định nếu ứng dụng đang ở trạng thái bảo trì , xác thực:
- CSRF token
- Phương thức hande trong http kernel khá đơn giản nhận 1 request và trả về 1 response:
Service provider
- Một điều quan trọng của kernel là việc load các service provider cho ứng dụng. Tất cả các service provider cho ứng dụng được cấu hình trong config/app.php . Đầu tiên phương thức register được gọi trong các service provider sau khi tất cả các service provider đã được đăng ký phương thức boot() sẽ được gọi
- Service provider chịu trách nhiệm cho việc khởi động các componet của fw ví dụnhư cơ sở dữ liệu , hàng đợi , validation, routeing . Sau đó tất cả các service sẽ có hiệu lực trong toàn bộ quá trình khởi động ứng dụng .
- Một khi ứng dụng đã hoàn tất việc khởi động và tất cả các service provider đã được đăng ký Request sẽ được xử lý và trao cho route điều hướng ứng dụng.
- Router sẽ gọi tới controller hay xử lý các yêu cầu trong file route mà thường là file route/web.php
- Tập trung vào service provider
- Service providers là chìa khóa của việc khởi động ứng dụng laravel. Đối tượng ứng dụng được tạo các service provider được đăng ký và request được xử lý tới ứng dụng đã được khởi động:
- Appserviceprovider là nơi bạn có thể thực hiện bind vào trong service container. Nhưng trong các ứng dụng lớn bạn nên tự viết service provider cho riêng mình .
Cách Cài đặt laravel ? Khóa học lập trình PHP 7 với Laravel Framework 5.5 tại Techmaster được cập nhật với những bài giảng trực quan, dễ hiểu và đáp ứng nhu cầu tuyển dụng của thị trường Job Laravel hiện nay.
Bình luận