01/10/2018, 16:57

MVC PHP - Giới thiệu về MVC

Trong quá trình xây dựng – phát triển – vận hành và bảo trì một hệ thống hay một ứng dụng – phần mềm người ta thường áp dụng những mô hình nghiệp vụ dành riêng, chúng được tạo nên từ nhiều thành phần độc lập nhau nhưng sẽ có sự tương tác nhau. Những mô hình này, sẽ giúp người quản lý ứng dụng, phát ...

Trong quá trình xây dựng – phát triển – vận hành và bảo trì một hệ thống hay một ứng dụng – phần mềm người ta thường áp dụng những mô hình nghiệp vụ dành riêng, chúng được tạo nên từ nhiều thành phần độc lập nhau nhưng sẽ có sự tương tác nhau. Những mô hình này, sẽ giúp người quản lý ứng dụng, phát triển, lập trình viên có một cái nhìn tổng quan nhất về chức năng và các luồng xử lý có trong dự án, từ đó họ có một điểm chung để trao đổi đưa ra các yêu cầu, dễ dàng tiếp cận – tìm hiểu các chức năng nghiệp vụ đang có và tiến hành xây dựng và phát triển dự án một cách nhanh chóng và hiệu quả nhất. Một mô hình có thể phi chuẩn hoặc hợp chuẩn, nó sẽ có những đặc thù riêng và chỉ áp dụng cho những loại dự án cụ thể, từ đó các chuyên gia sẽ lựa chọn mô hình nào phù hợp; những mô hình chuẩn được ưa thích sử dụng rộng rãi và phổ biến.

Hiện nay, trong các dự án website, phần mềm người ta thường áp dụng mô hình chuẩn Model – View – Controller trong quá trình xây dựng – phát triển, nó đã khá quen thuộc và phổ biến với dân lập trình.

  • Vậy mô hình MVC là gì?
  • Nó gồm những thành phần nào?
  • Áp dụng của mô hình MVC như thế nào cho hiệu quả và chính xác nhất?
  • Nó co ưu điểm gì?

Trong bài viết này, chúng ta sẽ đi tìm hiểu tất cả các vấn đề đó để có thể hiểu được một khái niệm trong lập trình.

1. MVC là gì?

MVC (Model – View - Controller): là một design pattern, theo hướng đối tượ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. Nó cho phép developer có thể chia nhỏ code của mình ra thành 3 phần:

  • 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 sang các đoạn mã HTML, bạn có thể hiểu nôm na đây người ta còn gọi là thành phần giao diện.
  • 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.

Trong đó:

  • Controller: có thể gửi yêu cầu đến View liên kết của nó để thay đổi hiển thị trên View, cũng có thể gửi yêu cầu đến model để cập nhật trạng thái của model.
  • Model: thông báo đến các View và Controller có liên quan khi có thay đổi trạng thái. Thông báo này cho phép các View tạo ra các hiển thị được cập nhật và cho phép các C t ll on roller thay đổi các command
  • View: yêu cầu Model gửi các thông tin mà nó cần để tạo ra các hiển thị trên View. 

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

Ưu điểm

  • Phát triển phần mềm: chuyên nghiệp hóa, có thể chia công việc cho nhiều nhóm chuyên môn khác nhau: nhóm thiết kế, nhóm lập trình, nhóm tổ chức database... Giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp.
  • Bảo trì: Với các lớp đ ợư c phân chia, các thành phần của một hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trong từng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của nó, chứ không làm ảnh hưởng cả chương trình.
  • Mở rộng: Việc thêm chức năng vào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác

    Nhược điểm

    • Thích hợp với dự án vừa và lớn còn đối với dự án nhỏ việc áp dụng mô hình MVC sẽ gây cồng kềnh, tốn thời gian trong quá trình phát triển.
    • Tốn thời gian trung chuyển dữ liệu giữa các lớp

    3. Lý do nên làm việc theo mô hình MVC

    • Vì mô hình MVC đã chia ứng dụng thành M, V và C nên developer có thể tạo ra nhiều view và nhiều cotroller cho các model mà không phải đối mặt với việc thay đổi trong thiết kế model.
    • Giúp cho việc duy trì, di chuyển và tổ chức ứng dụng dễ dàng hơn.
    • Đối với những người mới thì việc xây dựng ứng dụng dựa trên mô hình MVC phức tạp và lãng phí vì công việc này như là xây dựng một dự án lớn, tuy nhiên “bí mật” của MVC pattern không nằm ở chỗ viết code mà ở chỗ duy trì nó.
    • Cho phép sửa đổi code mà không ảnh hưởng nhiều đến các thà hn phần khác.
    • Cho phép việc làm việc nhóm trở nên dễ dàng hơn vì nhóm nào sẽ làm việc của nhóm đó dựa trên thế mạnh của mình.

    - Nhóm View Team sẽ chịu trách nhiệm về việc thực hiện các View

    - Nhóm Model Team Model Team sẽ lo về mặt dữ liệu

    - Nhóm Controller Team sẽ có cái nhìn tổng thể về các luồng của ứng dụng, quản lý các yêu cầu, làm việc với các model và lựa chọn View hiển thị cho khách hàng

    4. Ứng dụng thực tế mô hình MVC

    Có rất nhiều hệ thống, ứng dụng – phần mềm được xây dựng theo chuẩn mô hình MVC và được giới thiệu, phân phối như :

    • Zend Framework 1 & 2
    • Yii Framework
    • Phalcon
    • Codeingteger
    • Laravel
    • CakePHP

    Đây là một vài ví dụ về những PHP Framework được xây dựng và áp dụng mô hình MVC rất hiệu quả hiện nay. Các bạn có thể tìm hiểu các tài liệu liên quan được cung cấp để có thể hiểu hơn chúng được phát triển và vận hành như thế nào.

    5. Tổng kết.

    Bài viết này chỉ mang tính chất giới thiệu mô hình MVC là gì, các thành phân cơ bản trong mô hình MVC như model, controller và view .Trong bài viết tiếp theo mình sẽ hướng dẫn các bạn các bước để xây dựng ứng dụng theo mô hình MVC.

    0