Xem thêm

Cấu trúc thư mục Laravel và Laravel module

Huy Erick
Laravel: Một framework phát triển web mạnh mẽ Laravel là một framework phát triển web mã nguồn mở được viết bằng ngôn ngữ PHP. Được tạo ra bởi Taylor Otwell vào năm 2011, Laravel đã...

Laravel: Một framework phát triển web mạnh mẽ

Laravel là một framework phát triển web mã nguồn mở được viết bằng ngôn ngữ PHP. Được tạo ra bởi Taylor Otwell vào năm 2011, Laravel đã nhanh chóng trở thành một trong những framework phát triển web PHP phổ biến nhất trên thế giới. Laravel mang đến rất nhiều tính năng tiện ích, giúp cho việc phát triển ứng dụng web PHP trở nên dễ dàng và nhanh chóng hơn bao giờ hết.

Mô hình MVC (Model - Controller - View) là cấu trúc phát triển chính của Laravel. Hiện tại, Laravel đã cho ra mắt phiên bản mới nhất là Laravel 10 với vô số chức năng mới và thú vị.

Cấu trúc thư mục Laravel: Sắp xếp tất cả theo đúng vị trí

cau truc thu muc laravel Hình ảnh minh họa của cấu trúc thư mục Laravel

Cấu trúc thư mục mặc định của Laravel ứng dụng gồm các thư mục và tệp tin sau:

1. Thư mục app

thu muc app - thu muc laravel

Thư mục app trong Laravel chứa mã nguồn PHP của ứng dụng, bao gồm các controllers, models, views và các tệp tin liên quan đến ứng dụng. Đây là thư mục chính của ứng dụng, hầu như tất cả các xử lý logic đều nằm trong thư mục này.

2. Thư mục bootstrap

cau truc thu muc laravel

Thư mục bootstrap chứa các tệp tin liên quan đến bootstrap ứng dụng, bao gồm các tệp tin khởi tạo ứng dụng và các cấu hình khởi động. Thư mục này cũng chứa thư mục cache, nơi lưu trữ các caching của hệ thống như view, truy vấn, và nhiều hơn nữa.

3. Thư mục config

cau truc thu muc laravel

Thư mục config chứa các tệp tin cấu hình của ứng dụng, bao gồm cấu hình cho các trình xử lý, cấu hình cho cơ sở dữ liệu và các cấu hình khác.

4. Thư mục database

cau truc thu muc laravel

Thư mục database chứa các tệp tin liên quan đến cơ sở dữ liệu của ứng dụng, bao gồm các migrations và seeders. Laravel đã tạo sẵn cho chúng ta bảng users như trên hình, với các migration được gắn ngày tháng năm tự động phía trước để tránh trùng class.

5. Thư mục public

cau truc thu muc laravel

Thư mục public chứa các tệp tin mà người dùng có thể truy cập trực tiếp qua giao thức HTTP. Đây là nơi lưu trữ tệp tin index.php và các tệp tin liên quan đến front-end như hình ảnh, video, file html, css,...

6. Thư mục resource

thu muc resource

Thư mục resource chứa tệp tin tài nguyên của ứng dụng, bao gồm views, assets và các tệp tin liên quan đến localization.

7. Thư mục route

thu muc route

Thư mục route chứa các tệp tin định tuyến của ứng dụng, bao gồm các tệp tin định tuyến cho các API, web routes và các tệp tin liên quan đến middleware.

8. Thư mục storage

thu muc storage

Thư mục storage chứa các tệp tin lưu trữ của ứng dụng, bao gồm logs, sessions và các tệp tin liên quan đến cache.

9. Thư mục tests

thu muc test

Thư mục tests chứa các tệp tin liên quan đến testing của ứng dụng, bao gồm unit tests và feature tests.

10. Thư mục vendor

thu muc vendor

Thư mục vendor chứa các tệp tin của các dependencies của ứng dụng, bao gồm thư viện và các package mà ứng dụng phụ thuộc vào.

Ngoài ra, Laravel còn cung cấp các thư mục và tệp tin khác, tuy nhiên chúng không nằm trong cấu trúc mặc định và chỉ được sử dụng khi cần thiết.

Laravel module: Tùy chỉnh cấu trúc thư mục cho linh hoạt

laravel module Hình ảnh minh họa về cấu trúc thư mục Laravel module

Ngoài cách tổ chức thư mục theo mặc định, ta có thể tùy chỉnh lại cấu trúc thư mục trong Laravel framework để đáp ứng yêu cầu của từng ứng dụng web cụ thể.

Thay vì sử dụng cấu trúc mặc định của Laravel framework, ta có thể sử dụng dưới dạng module để có thể tái sử dụng cao hơn.

Đầu tiên, bạn cần cài đặt package nwidart/laravel-module. Bạn có thể sử dụng lệnh composer sau:

composer require nwidart/laravel-modules

Phiên bản Laravel mới nhất sẽ tự động tải các provider, không cần thao tác gì thêm. Tuy nhiên, nếu bạn đang sử dụng các phiên bản Laravel cũ hơn, hãy sử dụng lệnh sau để publish vendor:

php artisan vendor:publish -provider="Nwidart\Modules\LaravelModulesServiceProvider"

Để tạo một module mới có tên là "Blog", bạn có thể sử dụng lệnh artisan trong Laravel:

php artisan module:make Blog

Lệnh trên sẽ tạo cho bạn một module có đường dẫn là Modules/Blog. Tất cả các module bạn tạo sẽ nằm trong thư mục modules. Trong thư mục Blog, bạn sẽ tìm thấy một cấu trúc tương tự như một dự án Laravel thông thường. Tuy nhiên, thay vì sử dụng thư mục model, nhà phát triển Laravel đổi tên thành Entity. Bắt đầu phát triển ứng dụng web của bạn trong thư mục blog, Laravel sẽ tự động autoload các provider vào dự án mà không cần thêm bất kỳ thao tác nào.

Bạn có thể tìm hiểu thêm về việc sử dụng package nwidart/laravel-module tại đây: https://docs.laravelmodules.com/v10/introduction

Kết luận

Bài viết đã giới thiệu về cấu trúc thư mục của Laravel và cung cấp một cái nhìn tổng quan về framework này trong quá trình học và thực hiện các dự án thực tế. Để tối ưu hóa việc tái sử dụng code giữa các dự án, bạn có thể sử dụng package nwidart/laravel-module để làm việc với Laravel. Chúc các bạn thành công!

Tham khảo thêm:

  • Laravel là gì? Framework Laravel là gì?
  • Vòng đời Laravel - Lifecycle Laravel
  • Laravel 10 có gì mới
1