13/10/2018, 07:07

Cấu trúc project Laravel 5.x và mô hình MVC

Bài viết giới thiệu về cấu trúc cơ bản của 1 project Laravel 5.x, mô hình MVC và nguyên lý hoạt động của mô hình MVC.

1. Cấu trúc cơ bản của 1 project Laravel 5.x

  • app: Chứa các thư mục, các tập tin php, thư viện, models.
    • Console: Chứa các tập tin định nghĩa các câu lệnh trên artisan.
    • Excerption:  Chứa các tập tin quản lý, điều hướng lỗi.
    • Http
      • Controllers : Chứa các controllers của project.
      • Middleware:  Chứa các tập tin lọc và ngăn chặn các requests.
      • Kernel.php:  Cấu hình, định nghĩa Middleware.
    • Models: chứa các model của project.
    • Providers: Chứa các providers thực hiện việc binding vào service container
    • User.php: Là model User mà Laravel tự địn sẵn cho chúng ta.
  • bootstrap:Chứa tập tin điều hướng hệ thống.
  • 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ềdatabase.
    •  migrations: Chứa các tập tin định nghĩa,khởi tạo và sửa bảng.
    •  seeds: Chứa các tập tin định nghĩa dữ liệu insert vào trong 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.
  • public: Chứa các tập tin css, js, image.
    • index.php: Đây là tệp tin root của Laraver
  • resources: Chứa các views, ngôn ngữ của project.
  • routes: Chứa các tập tin định nghĩa các router, xử lý điều hướng router bao gồm : web, api và console.
  • storage: Chứa các tập tin hệ thống cache, session, ...
  •  tests: Chứa các tập tin định nghĩa tests.
  • vendor: Chứa các thư viện của composer.
  • .env: Là tập tin cấu hình chính của laravel như key app,database.
  • .env.example: Tệp tin cấu hình mẫu của laraver.
  • composer.json: tập tin của composer.
  •  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 dùng 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 server.
  •  artisan: Tập tin thực thi lệnh của Laravel.

2. Mô hình MVC trong Laravel

- Mô hình MVC là một kiến trúc thiết kế của một phần mềm công nghê thông tin, trong đó có cả PHP. Khi một phần mềm sử dụng mô hình này thì nó sẽ phải chia ra thành ba phần chính Model-View-Controller (MVC) với  3 nhiệm vụ khác nhau:

Model: là thành phần chứa tất cả các phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý...

View: Là phần đảm nhận việc hiển thị thông tin, tương tác với người dùng. Hoặc chúng ta có thể hiểu nôm na đó là phần giao diện của ứng dụng.

Controller: Controller là phần xử lý và điều hướng các hành động của client, từ đó đưa ra các xử lý với database nếu có. Hay nói các khác thì controller là cầu nối giữa view và Model.

 

 

- Nguyên lý hoạt động của mô hình MVC:

Từ trình duyệt người dùng sẽ gửi 1 yêu cầu đến web server, web server nhận yêu cầu và gửi cho bộ định tuyến (Route) của Laravel. Bộ định tuyến của Laravel nhận được yêu cầu và chuyển hướng đến phương thức của lớp Controller thích hợp dựa trên khuôn mẫu định tuyến URL. Lúc này Controller sẽ thực hiện việc điều hành của mình nhằm có phản hồi phù hợp với tương tác từ phía người dùng. Trong 1 số trường hợp Controller ngay lập tức render 1 View và gửi trả kết quả cho trình duyệt. Còn thông thường, đối với các trang web động, Controller tương tác với Model, gọi đến cơ sở dữ liệu (CSDL) lấy ra các thông tin dữ liệu cần thiết, sau đó mới thực hiện render 1 View và gửi kết quả về cho trình duyệt.

 

 

 

+2