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

Cấu trúc thư mục trong Laravel 5 là vấn đề được nhiều lập trình viên quan tâm, bởi những kiến thức trên trường lớp là không đủ, vì vậy bài Cấu trúc thư mục trong Laravel 5 sẽ chia sẻ tới bạn nhiều thông tin hữu ích

Mọi người vẫn hỏi tôi về việc học lập trình nói chung và Laravel nói riêng có cần năng khiếu hay quá khó để tiếp cận hay không. Thì tôi có thể trả lời rằng, học lập trình cũng như việc bạn học tiếng Anh hay bất kỳ một ngôn ngữ khác, bởi lập trình...là ngôn ngữ của máy tính, để máy tính đọc và máy tính thực hiện theo yêu cầu của mình, bạn thích là học được.

Và trong bài này, chúng ta sẽ tìm hiểu cấu trúc của Laravel để có thể hiểu được vai trò và mục đích của từng chuyên mục, tập tin của Laravel đồng thời cũng thấy được sự khác nhau về các bố trí mô hình MVC của Laravel và các Framework khác có gì khác và giống nhau. Và bây giờ chúng ta sẽ vào khám phá ngay nhé.

Tìm hiểu cấu trúc của Laravel

Ở bài trước chúng ta đã cài đặt thành công laravel trong chuyên mục basic-laravel, chúng ta tiến hành mở chúng sẽ thấy có cấu trúc như sau:

basic-laravel/
├── app/
│   ├── Console
│   ├── Exceptions
│   ├── Http
│   │   ├── Controllers
│   │   ├── Middleware
│   │   └──  Kernel.php
│   └── Providers
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── storage/
├── routes/
├── tests/
├── vendor/
├── .env
├── .env.example
├── composer.json
├── composer.lock
├── package.json
├── gulpfile.js
├── server.php
└── artisan

Và bây giờ mình sẽ giải thích mục đích, vai trò của từng thư mục tập tin trong đây nhé, chúng ta sẽ có như sau:

  • app là thư mục chứa tất cả các thư mục, các tập tin php, các class php, thư viện, models để xây dựng project của bạn.
  • Console thư mục chứa các tập tin định nghĩa các lệnh thực thi trên Artisan.
  • Excerption thư mục chứa các tập tin quản lý, điều hướng lỗi.
  • HttpControllers là thư mục chứa các tập tin controllers
  • Middleware là thư mục chứa các tập tin lọc và ngăn chặn các requests.
  • Kernel.php là tập tin cấu hình, định nghĩa Middleware hoặc nhóm Middleware.
  • Providers chứa các providers mình sẽ nói rõ về nó trong các bài nâng cao.
  • bootstrap thư mục chứa tập tin điều hướng khởi động hệ thống, thường thì chúng ta sẽ không làm gì đến nó.
  • config chứa mọi tập tin cấu hình của Laravel
  • database chứa các thư mục tập tin về CSDL
  •  migrations chứa các tập tin định nghĩa khởi tạo và sử bảng.
  •  seeds chứa các tập tin định nghĩa dữ liệu insert vào database.
  •  factories chứa các tập tin định nghĩa các cột bảng dữ liệu để tạo ra các dữ liệu ảo phục vụ cho tests.
  • public chính là webroot người dùng sẽ truy cập vào đây, đây cũng là nơi chứa các tập tin css, js, image.
  • resources chứa các tập tin giao diện (js, css, less, sass, coffeescript,...), views, ngôn ngữ.
  • storage chứa các tập tin hệ thống như upload, cache, session, cookie, log...
  • routes là thư mục chứa các tập tin định nghĩa các router, xử lý router hoặc điều hướng router (tức là URL, laravel không tự đặt url theo kiểu example.com/controller/action/value mà chúng ta phải tự định nghĩa chúng) bao gồm 3 loại là web, api và console.
  •  tests chứa các tập tin định nghĩa tests.
  • vendor thư mục của composer.
  • .env.env.example là 2 tập tin cấu hình chính của laravel như key app, tên app, url app, email, env mode, CSDL hay bật tắt debug.
  • composer.json, composer.lock tập tin của composer.
  • package.js tập tin cấu hình của nodejs chứa các package cần thiết cho projects.
  • gulpfile.js là tập tin gulp builder.
  • phpunit.xml là tập tin xml của phpunit dùng để testing project.
  • server.php là tập tin để artisan trỏ đến tạo server khi gõ lệnh php artisan serve
  • artisan tập tin thực thi lệnh của Laravel, cũng là tập tin mà chúng ta tương tác nhiều nhất.

Ngoài ra còn có các thư mục và tập tin khác nữa, nhưng mình sẽ nói rõ hơn ở các bài sau. Có một số thư mục mình còn giải thích quá trừu tượng, nhưng các bạn hãy tạm hiểu như thế ở các bài học riêng từng cái mình sẽ nói rõ hơn về Laravel.

Lời kết

Qua bài này, chúng ta đã biết được cấu trúc và vai trò mục đích của từng thư mục tập tin trong Laravel. Ở bài tiếp theo chúng ta sẽ tiến hành tìm hiểu về routers và tạo một trang đầu tiên bằng Laravel nhé, nếu có thắc mắc về bài này bạn có thể để lại comment hoặc đặt câu hỏi tại Group chính thức của FreeTuts.net nhé. Hẹn gặp lại các bạn ở các bài học tiếp theo.

Bài viết được đóng góp bởi Đinh Quốc Hân.


Hy vọng với bài viết về Cấu trúc thư mục trong Laravel 5 đã giải đáp giúp bạn phần nào về kiến thức lập trình Laravel. Như tôi đã nói, ngôn ngữ lập trình không quan trọng bằng tư duy giải thuật, tư duy logic để giải quyết vấn đề.

Với những năm trước đây, lập trình viên là một cái nghề khó và kén chọn người học, đồng nghĩa với việc thu nhập hàng tháng của các lập trình viên luôn cao. Còn những năm gần đây, thì lập trình là môn học phổ thông, và ai cũng nên học một ngôn ngữ lập trình nào đó.

Nếu bạn còn bất kỳ câu hỏi nào trong việc học lập trình online, hãy gửi yêu cầu cho tôi qua email hoidapcode.com@gmail.com hoặc để lại comment bên dưới, tôi sẽ giải đáp trong vòng 24 giờ!

Blog hoidapcode.com là blog được tổng hợp tự động các bài học, thông tin về lập trình trên mạng internet. Nếu bạn có ý kiến hoặc đóng góp về bài viết này, hãy liên hệ với tôi!