Ở 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!
Tóm tắt nội dung
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/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/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

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 app
, framework
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.

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ả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.
Pingback: Route trong Laravel P1 |Kiến thức Laravel cơ bản
When someone writes an article he/she keeps the plan of a user in his/her mind that how
a user can be aware of it. Thus that’s why this article is great.
Thanks!