Laravel - Cấu trúc ứng dụng

Cấu trúc ứng dụng trong Laravel về cơ bản là cấu trúc của các thư mục, thư mục con và tệp có trong một dự án. Khi chúng ta tạo một dự án trong Laravel, chúng ta sẽ có một cái nhìn tổng quan về cấu trúc ứng dụng như thể hiện trong hình ở đây.

Ảnh chụp nhanh được hiển thị ở đây đề cập đến thư mục gốc của Laravel, cụ thể là laravel-project. Nó bao gồm nhiều thư mục con và tệp tin. Phân tích các thư mục và tệp, cùng với các khía cạnh chức năng của chúng được đưa ra dưới đây:

Ứng dụng

Nó là thư mục ứng dụng và bao gồm toàn bộ mã nguồn của dự án. Nó chứa các sự kiện, ngoại lệ và khai báo phần mềm trung gian. Thư mục ứng dụng bao gồm các thư mục con khác nhau như được giải thích bên dưới -

Bảng điều khiển

Bảng điều khiển bao gồm các lệnh thủ công cần thiết cho Laravel. Nó bao gồm một thư mục có tênCommands, nơi tất cả các lệnh được khai báo với chữ ký thích hợp. Tập tinKernal.php gọi các lệnh được khai báo trong Inspire.php.

Nếu chúng ta cần gọi một lệnh cụ thể trong Laravel, thì chúng ta nên thực hiện các thay đổi thích hợp trong thư mục này.

Sự kiện

Thư mục này bao gồm tất cả các sự kiện cho dự án.

Các sự kiện được sử dụng để kích hoạt các hoạt động, nêu ra lỗi hoặc các xác nhận cần thiết và cung cấp tính linh hoạt cao hơn. Laravel giữ tất cả các sự kiện trong một thư mục. Tệp mặc định bao gồm làevent.php nơi tất cả các sự kiện cơ bản được khai báo.

Ngoại lệ

Thư mục này chứa tất cả các phương thức cần thiết để xử lý các ngoại lệ. Nó cũng chứa tệphandle.php xử lý tất cả các ngoại lệ.

Http

Các Httpthư mục có các thư mục con cho bộ điều khiển, phần mềm trung gian và các yêu cầu ứng dụng. Vì Laravel tuân theo mẫu thiết kế MVC, thư mục này bao gồm mô hình, bộ điều khiển và chế độ xem được xác định cho các thư mục cụ thể.

Các Middleware thư mục con bao gồm cơ chế phần mềm trung gian, bao gồm cơ chế lọc và giao tiếp giữa phản hồi và yêu cầu.

Các Requests thư mục con bao gồm tất cả các yêu cầu của ứng dụng.

Việc làm

Các Jobsthư mục duy trì các hoạt động được xếp hàng đợi cho ứng dụng Laravel. Lớp cơ sở được chia sẻ giữa tất cả các Công việc và cung cấp một vị trí trung tâm để đặt chúng dưới một mái nhà.

Người nghe

Người nghe phụ thuộc vào sự kiện và chúng bao gồm các phương pháp được sử dụng để xử lý các sự kiện và ngoại lệ. Ví dụ,login sự kiện được khai báo bao gồm một LoginListener biến cố.

Chính sách

Các chính sách là các lớp PHP bao gồm logic ủy quyền. Laravel bao gồm một tính năng để tạo tất cả logic ủy quyền trong các lớp chính sách bên trong thư mục con này.

Nhà cung cấp

Thư mục này bao gồm tất cả các nhà cung cấp dịch vụ cần thiết để đăng ký các sự kiện cho các máy chủ lõi và để cấu hình ứng dụng Laravel.

Bootstrap

Thư mục này chứa tất cả các tập lệnh khởi động ứng dụng. Nó chứa một thư mục con cụ thể làcache, bao gồm tất cả các tệp được liên kết để lưu vào bộ đệm một ứng dụng web. Bạn cũng có thể tìm thấy tệpapp.php, khởi tạo các tập lệnh cần thiết cho bootstrap.

Cấu hình

Các configthư mục bao gồm các cấu hình khác nhau và các thông số liên quan cần thiết để ứng dụng Laravel hoạt động trơn tru. Các tệp khác nhau được bao gồm trong thư mục cấu hình được hiển thị trong hình ảnh ở đây. Các tên tệp hoạt động theo chức năng được liên kết với chúng.

Cơ sở dữ liệu

Như tên cho thấy, thư mục này bao gồm các tham số khác nhau cho các chức năng của cơ sở dữ liệu. Nó bao gồm ba thư mục con như được đưa ra bên dưới:

  • Seeds - Phần này chứa các lớp được sử dụng cho cơ sở dữ liệu kiểm thử đơn vị.

  • Migrations - Thư mục này trợ giúp trong các truy vấn để di chuyển cơ sở dữ liệu được sử dụng trong ứng dụng web.

  • Factories - Thư mục này được sử dụng để tạo ra một số lượng lớn các bản ghi dữ liệu.

Công cộng

Đây là thư mục gốc giúp khởi tạo ứng dụng Laravel. Nó bao gồm các tệp và thư mục sau:

  • .htaccess - Tập tin này cung cấp cấu hình máy chủ.

  • javascript and css - Các tệp này được coi là tài sản.

  • index.php - Tệp này cần thiết để khởi tạo ứng dụng web.

Tài nguyên

Thư mục tài nguyên chứa các tệp giúp nâng cao ứng dụng web của bạn. Các thư mục con có trong thư mục này và mục đích của chúng được giải thích bên dưới -

  • assets - Thư mục nội dung bao gồm các tệp như LESS và SCSS, được yêu cầu để tạo kiểu ứng dụng web.

  • lang - Thư mục này bao gồm cấu hình để bản địa hóa hoặc nội bộ hóa.

  • views - Chế độ xem là các tệp hoặc mẫu HTML tương tác với người dùng cuối và đóng vai trò chính trong kiến ​​trúc MVC.

Quan sát rằng thư mục tài nguyên sẽ được làm phẳng thay vì có một thư mục tài sản. Hình ảnh đại diện tương tự được hiển thị bên dưới -

Lưu trữ

Đây là thư mục lưu trữ tất cả nhật ký và các tệp cần thiết thường xuyên cần thiết khi một dự án Laravel đang chạy. Các thư mục con có trong thư mục này và mục đích của chúng được đưa ra bên dưới:

  • app - Thư mục này chứa các tệp được gọi nối tiếp nhau.

  • framework - Nó chứa các phiên, bộ nhớ cache và các chế độ xem được gọi thường xuyên.

  • Logs - Tất cả các ngoại lệ và nhật ký lỗi được theo dõi trong thư mục con này.

Kiểm tra

Tất cả các trường hợp kiểm thử đơn vị được bao gồm trong thư mục này. Quy ước đặt tên để đặt tên các lớp test case làcamel_case và tuân theo quy ước theo chức năng của lớp.

Nhà cung cấp

Laravel hoàn toàn dựa trên các phụ thuộc của Composer, ví dụ để cài đặt thiết lập Laravel hoặc bao gồm các thư viện của bên thứ ba, v.v. Thư mục Vendor bao gồm tất cả các phụ thuộc của composer.

Ngoài các tệp được đề cập ở trên, Laravel cũng bao gồm một số tệp khác đóng vai trò chính trong các chức năng khác nhau như cấu hình GitHub, gói và thư viện của bên thứ ba.

Các tệp có trong cấu trúc ứng dụng được hiển thị bên dưới: