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.

 

 

 

Bài liên quan

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.

Nguyễn Huân viết 07:07 ngày 13/10/2018

Cấu trúc PE & COFF File và ý nghĩa trong việc phân tích mã độc

Ở các bài trước Tôi đã giới thiệu đến các bạn một loạt các bài viết liên quan đến mã độc như hiểm họa của mã độc đến an ninh mạng đồng thời cũng giới thiệu cho các bạn về các phương pháp phân tích mã độc. Ở chủ đề lần này xin tiếp tục gửi đến các bạn chủ đề:”Cấu trúc PE & COFF File và ý ...

Vũ Văn Thanh viết 15:01 ngày 18/09/2018

Bài 2: Cấu trúc của laravel (5.3)

1,Cấu trúc của Laravel. -Ở bài trước mình đã giới thiệu qua về Laravel và các cách cài đặt nó trên windows rồi. Sau khi đã cài đặt được nó rồi thì chúng ta bắt đầu xem qua về cấu trúc của nó nhé. lar-53/ |--- app/ │ |--- Console │ |--- Exceptions │ |--- Http │ │ ...

Tạ Quốc Bảo viết 17:34 ngày 07/09/2018

Xây dựng cấu trúc project với react-native

Trong quá trình xây dựng và phát triển một dự án ngoài việc lựa chọn công nghệ, lựa chọn các thư viện hỗ trợ... thì việc tổ chức các thư mục, các thành phần, cấu trúc của project là việc cực kì quan trọng, nó là một trong những công việc cần phải thực hiện đầu tiên trước khi bạn bắt tay vào việc ...

Trịnh Tiến Mạnh viết 18:17 ngày 12/08/2018

Một số vấn đề gặp phải khi deploy project Laravel lên Heroku và cách giải quyết

Khi deploy một project Laravel lên Heroku, thường thì nó sẽ không thể chạy ngon ngay từ lần đầu được mà chắc chắn sẽ dính lỗi tùm lum, cho dù là các host thông thường cũng sẽ dính lỗi, lý do vì sao thì có lẽ do Laravel hơi khác biệt một chút so với các framework khác. Dưới đây là một số lỗi khó ...

Trịnh Tiến Mạnh viết 18:16 ngày 12/08/2018
+2