Cấu trúc thư mục trong Laravel

 Ở bài trước trong seris hướng dẫn Laravel cơ bản,mình đã nói về cấu hình trong Laravel và hướng dẫn các bạn cách để thao tác với nó.Ở bài viết này,chúng ta cùng đi vào tìm hiểu cấu trúc thư mục trong laravel và chức năng của từng thành phần nhé.Bắt đầu với Telsky thôi!

1.Thư mục App

Thư mục này chứa những code cốt lõi (core code) của ứng dụng. Hầu như tất cả các lớp (class) bạn tạo cho project sẽ nằm ở đây.

Thư mục app/Console

Thư mục này chứa các tập tin định nghĩa các câu lệnh trên artisan.

Thư mục app/Exceptions

Thư mục chứa các tập tin quản lý, điều hướng lỗi

thư mục app cấu trúc thư mục trong laravel
Cấu trúc thư mục trong LARAVEL- Thư mục APP

Thư mục app/Http

Thư mục Http chứa các controllers, middleware, và form requests. Tất cả các logic xử lý requests vào ứng dụng của bạn sẽ nằm ở trong thư mục này.

Thư mục app/Http/Controllers

Thư mục chứa các controller của project

Thư mục app/Http/Middleware

Thư mục chứa các tập tin lọc và ngăn chặn các requests

Thư mục app/Models

Thư mục chứa các model của project (Với Laravel 8 sẽ có sẵn thư mục Models)

Thư mục app/Providers

Thư mục chứa các file thực hiện việc khai báo service và bind vào trong Service Container

2.Thư mục Bootstrap

Cấu trúc thư mục trong Laravel có thư mục bootstrap , chứa file cài đặt các biến cơ bản của laravel (paths.php), nơi cài đặt môi trường làm việc (start.php) đồng thời cũng là nơi các file khác được include vào laravel (autoload.php).

3.Thư mục Config

Thư mục config, đúng như cái tên của nó, chứa tất cả những file cấu hình. Thật tuyệt vời khi bạn lướt qua tất cả các file của nó với những cấu hình có sẵn cho bạn.

4.Thư mục Database

Thư mục database chứa những file database migration và seeds. Nếu bạn muốn, bạn cũng có thể sử dụng nó để tổ chức một cơ sử dữ liệu SQLite.

thư mục database-cấu trúc thư mục trong laravel
thư mục database-cấu trúc thư mục trong laravel

Thư mục database/factories

Thư mục chứa các file định nghĩa các cột bảng dữ liệu để tạo ra các dữ liệu mẫu

Thư mục database/migrations

Thư mục chứa các file tạo và chỉnh sửa dữ liệu

Thư mục database/seeds

Thư mục chứa các file tạo dữ liệu thêm vào CSDL

5.Thư mục Lang

Nơi chứa các file ngôn ngữ.Cấu trúc thư mục trong laravel

6.Thư mục Public

Thư mục public chứa file index.php, .htaccess, assets (thường dùng để chứa các file js, css, image của giao diện) . File khi khởi chạy ứng dụng, file .htaccess sẽ chuyển hướng mọi yêu cầu (request) tới file index.php, index.php sẽ gọi đến các thành phần tương ứng của laravel (model, view, controller, …) để thực thi và trả về kết quả (response).

7.Thư mục resources

Thư mục chứa các tài nguyên thô chưa được biên dịch như view, LESS, SASS hoặc Javascript…

Thư mục resources/views

Thư mục chứa các file view xuất giao diện người dùng.

8.Thư mục routes

cấu trúc thư mục routes

Thư mục chứa tất cả các điều khiển route (đường dẫn) trong project.

Chứa các file route sẵn có: web.php, channels.php, api.php, và console.php

Thư mục routes/api.php

Như ở trên đã nói, file này sẽ chứa các route có chức năng như là RESTful API hoặc cái gì đó tương tự, chịu ảnh hưởng qua kiểm duyệt token, authenticated… và có thể giới hạn thời gian tồn tại.

Thư mục routes/web.php

Cấu hình các route liên quan đến web (Có giao diện người dùng).Đơn giản nó sẽ chứa những route chứa request từ trình duyệt, chịu ảnh hưởng từ session, cookie, CSRF (tính năng bảo mật trong Laravel). Nếu ứng dụng của bạn không có các RESTful API thì hầu như các route sẽ nằm trong file này.

Thư mục routes/console.php

Nơi đây bạn có thể định nghĩa các Clouser bằng các lệnh console, dù nằm trong nhóm route nhưng đây không phải định nghĩa một route theo phương thức HTTP.

Thư mục routes/channels.php

Bạn tìm đến file này khi ứng dụng của bạn sử dụng thời gian thực (real-time), file này hỗ trợ cho ứng dụng của bạn có thể tương tác các sự kiện giữa phía người dùng (client-side) và phía hệ thống (server-side).

9.Thư mục Storage

Thư mục storage chứa các file blade template (chúng ta sẽ tìm hiểu nó ở tập sau) đã được phiên dịch (complied), các file session, file cache và một số file khác được tạo bởi framework. cấu trúc thư mục này gồm appframework và logs.

Thư mục storage/app

Dùng để lưu trữ bất kỳ file nào do ứng dụng của mình tạo ra. Thư mục storages/app/public có thể dùng để lưu trữ các file do người dùng (user) đăng tải, chẳng hạn như ảnh đại diện (avatar) có thể truy cập công khai.

Thư mục storage/framework

Như đã nói ở trên, nó dùng để lưu trữ các file mà framework tạo ra để hỗ trợ trong việc chạy ứng dụng.

Thư mục storage/logs

Sẽ chứa các file log gồm có các lỗi trong quá trình code (errror log).

10.Thư mục tests

Thư mục tests chứa những file tests của bạn. Ví dụ PHPUnit nó cung cấp rất đầy đủ. Mỗi một class test nên chứa hậu tố với từ Test. Bạn có thể chạy class test của bạn bằng lệnh phpunit hoặc php vendor/bin/phpunit.

11.Thư mục Vendor

Cấu trúc hư mục vendor chứa các thư việc tích hợp và mã nguồn của Laravel, nếu bạn nào thích tìm tòi, khám phá và học hỏi cách code của nó thì nên tìm hiểu sâu thư mục này.

cấu trúc thư mục vendor
cấu trúc thư mục vendor

File .env

File chứa các config chính của Laravel

File artisan

File thực hiện lệnh của Laravel

File .gitattributes, .gitignore

File dùng để xử lý git

File composer.json, composer.lock, composer-setup.php

File sinh ra của composer

File package.json

File chứa các package cần dùng cho projects

File phpunit.xml

File phpunit.xml, xml của phpunit dùng để testing project

File webpack.mix.js

File dùng để build các webpack

Tổng kết

Trên đây, tôi đã chia sẻ cấu trúc thư mục trong Laravel Framework (Phiên bản 8). Nếu có bất kỳ câu hỏi nào hãy comment phía dưới bài viết này

cấu trúc thư mục trong laravel
cấu trúc thư mục trong laravel

Cảm ơn các bạn đã quan tâm theo dõi. Cùng đồng hành với mình qua những tập tiếp theo tại series “hướng dẫn Laravel cơ bản” nhé! Chúc may mắn và hẹn gặp lại.

2 bình luận trong “Cấu trúc thư mục trong Laravel”

  1. Pingback: Route trong Laravel P1 |Kiến thức Laravel cơ bản

Trả lời

Email của bạn sẽ không được hiển thị công khai.