LARAVEL 5.X CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 04: Tìm hiểu cấu trúc của Laravel 5.x

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é.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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

Bài viết này được đăng tại [free tuts .net]

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.
    • Http
      • Controllers 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.

Cùng chuyên mục:

Cách sử dụng Relationships trong Laravel

Cách sử dụng Relationships trong Laravel

Cách dùng Encryption và decryption trong Laravel

Cách dùng Encryption và decryption trong Laravel

Cách sử dụng Error Handling trong Laravel

Cách sử dụng Error Handling trong Laravel

Cách dùng URL Generation trong Larevel

Cách dùng URL Generation trong Larevel

Cách sử dụng Email Verification trong Laravel

Cách sử dụng Email Verification trong Laravel

Facades là gì? Cách dùng Facades trong Laravel

Facades là gì? Cách dùng Facades trong Laravel

Tìm hiểu và sử dụng Service Provider trong Laravel

Tìm hiểu và sử dụng Service Provider trong Laravel

Sử dụng Service Container trong Laravel dễ dàng

Sử dụng Service Container trong Laravel dễ dàng

Cách xử lý đa ngôn ngữ trong Laravel dễ dàng

Cách xử lý đa ngôn ngữ trong Laravel dễ dàng

Cách sử dụng CQRS trong Laravel từ A đến Z đơn giản

Cách sử dụng CQRS trong Laravel từ A đến Z đơn giản

Cách dùng Event Sourcing trong Laravel

Cách dùng Event Sourcing trong Laravel

Task Scheduling là gì? Cấu hình Task Scheduling trong Laravel

Task Scheduling là gì? Cấu hình Task Scheduling trong Laravel

Cách dùng Queue trong laravel để tạo tác vụ bất đồng bộ

Cách dùng Queue trong laravel để tạo tác vụ bất đồng bộ

Cách tích hợp Vue.js vào Laravel và làm một ứng dụng căn bản

Cách tích hợp Vue.js vào Laravel và làm một ứng dụng căn bản

Cách dùng Long polling trong Laravel để cải thiện trải nghiệm

Cách dùng Long polling trong Laravel để cải thiện trải nghiệm

Dùng Server-Sent Events trong Laravel để làm ứng dụng realtime

Dùng Server-Sent Events trong Laravel để làm ứng dụng realtime

Cách dùng Socket.io trong Laravel để tạo ứng dụng realtime

Cách dùng Socket.io trong Laravel để tạo ứng dụng realtime

Laravel WebSockets, các bước tạo WebSockets trong Laravel

Laravel WebSockets, các bước tạo WebSockets trong Laravel

Real-time web applications là gì ? Tầm quan trọng  trong Laravel

Real-time web applications là gì ? Tầm quan trọng trong Laravel

Cách tạo Database Testing trong Laravel

Cách tạo Database Testing trong Laravel

Top