PHP: Mô hình MVC trong PHP


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

1. Mô hình MVC là gì?

MVC là chữ viết tắt của Model - View - Controller, mục đích của mô hình này là để quản lý và xây dựng dự án phần mềm một cách có hệ thống. Mô hình này được dùng khá rộng rãi và đặc biệt là trong các ngôn ngữ lập trình web. Trong PHP hiện tại có khá nhiều FrameWork và tất cả đều xây dựng từ mô hình MVC, từ đó bạn có thể thấy sự quan trọng của nó.

Trong mô hình này thì:

  • Model: có nhiệm vụ thao tác với cơ sở dữ liệu, nghĩa là nó sẽ chứa tất cả các hàm, các phương thức truy vấn trực tiếp với dữ liệu và Controller sẽ thông qua các hàm, phương thức đó để lấy dữ liệu rồi gửi qua View.
  • View: có nhiệm vụ tiếp nhận dữ liệu từ Controller và hiển thị nội dung dưới dạng mã HTML.
  • Controller: đóng vài trò trung gian giữa Model và View. Nó có nhiệm vụ tiếp nhận yêu cầu từ client sau đó xử lý request, load model tương ứng và gửi data qua View tương ứng rồi trả kết quả về cho client

Để rõ ràng hơn thì bạn xem hình dưới đây:

Mô hình MCV trong PHP

2. Ưu điểm và nhược điểm mô hình MVC

Ưu điểm:

  • Hệ thống phân ra từng phần nên dễ dáng phát triển
  • Chia thành nhiều modun nhỏ nên nhiều người có thể làm chung dự án
  • Vấn đề bảo trì cũng tương đối ok, dễ nâng cấp
  • Dễ dàng debug trong quá trình xây dựng

Nhược điểm:

  • Hệ thống sẽ chạy chậm hơn PHP thuần, tuy nhiên đây không phải là vấn đề lớn
  • Xây dựng cầu ký và mất thời gian để xây dựng thư viện, cấu trúc

Xét về ưu và nhược thì rõ ràng nên sử dụng MVC.

3. Luồng xử lý trong mô hình MVC

Giả sử bạn đang xem một bài viết có id=123 thì hệ thống MVC sẽ xử lý như sau:

  • Bước 1: Dựa vào yêu cầu của bạn là xem bài viết có id=123 nên Controller sẽ gọi tới một hàm lấy dữ liệu theo id trong Model.
  • Bước 2: Sau khi có dữ liệu Controller sẽ gửi qua View, lúc này View có nhiệm vụ xử lý dữ liệu và convert thành những đoạn mã HTML.
  • Bước 3: Sau khi View kết thúc thì Controller sẽ gửi trả nội dung HTML của View về cho client nên bạn sẽ xem được nội dung của bài viết có id=123.
» Tiếp: Late Static Bindings
« Trước: Thừa kế (Inheritance)
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!