Xem thêm

Mô hình MVC trong PHP: Tích hợp và quản lí ứng dụng web dễ dàng

Huy Erick
Fig 1 - Luồng xử lí của mô hình MVC Mô hình MVC là mô hình phát triển ứng dụng web phổ biến nhất hiện nay. Tuy nhiên, rất ít hướng dẫn cung cấp cái...

Luồng xử lí của mô hình MVC Fig 1 - Luồng xử lí của mô hình MVC

Mô hình MVC là mô hình phát triển ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> web phổ biến nhất hiện nay. Tuy nhiên, rất ít hướng dẫn cung cấp cái nhìn toàn diện và dễ hiểu về mô hình này. Bài viết này sẽ chia sẻ một số thông tin quan trọng về mô hình MVC và giải thích cách nó hoạt động.

1. Giới thiệu

  • Mô hình MVC gồm ba lớp: Model, View, Controller. Cụ thể như sau:
    • Model: Lớp này quản lí dữ liệu, giao tiếp với cơ sở dữ liệu và lưu trữ hoặc truy vấn dữ liệu.
    • View: Lớp này là giao diện của ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> biểu diễn dữ liệu thành các dạng nhìn thấy được.
    • Controller: Lớp này quản lí và điều phối hoạt động của ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> Nó nhận request từ client, điều phối Model và View để trả kết quả về người dùng.

Mô hình <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title= <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title='ứng dụng' class='hover-show-link replace-link-6'>ứng dụng<span class='hover-show-content'></span></a>  class='hover-show-link replace-link-5' <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title='ứng dụng' class='hover-show-link replace-link-6'>ứng dụng<span class='hover-show-content'></span></a> span class='hover-show-content'></span></a> minh hoạ Fig 2 - Mô hình ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> minh hoạ

2. Tổ chức chương trình và source code

  • Đầu tiên, chúng ta cần một điểm truy cập ban đầu để vào ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> file index.php đảm nhận nhiệm vụ này. Điểm truy cập này sẽ hiển thị các tính năng của ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> và cho phép người dùng truy cập vào chức năng mong muốn (controller tương ứng).

Tổ chức source code của <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title= <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title='ứng dụng' class='hover-show-link replace-link-6'>ứng dụng<span class='hover-show-content'></span></a>  class='hover-show-link replace-link-5' <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title='ứng dụng' class='hover-show-link replace-link-6'>ứng dụng<span class='hover-show-content'></span></a> span class='hover-show-content'></span></a> minh hoạ Fig 3 - Tổ chức source code của ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> minh hoạ

a. Tầng Controller

  • Đây là tầng điều phối của ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> nhận request từ client, phân tích request, gọi Model để lấy dữ liệu và View để hiển thị dữ liệu.
  • Trong ví dụ này, chúng ta sẽ điều phối chức năng quản lí học sinh bằng controller C_Student.php. Controller này chịu trách nhiệm hiển thị danh sách học sinh và chi tiết học sinh tương ứng với các tham số đầu vào.

Cài đặt controller của <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title= <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title='ứng dụng' class='hover-show-link replace-link-6'>ứng dụng<span class='hover-show-content'></span></a>  class='hover-show-link replace-link-5' <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title='ứng dụng' class='hover-show-link replace-link-6'>ứng dụng<span class='hover-show-content'></span></a> span class='hover-show-content'></span></a>  /> <em>Fig 4 - Cài đặt controller của <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title= <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title='ứng dụng' class='hover-show-link replace-link-6'>ứng dụng<span class='hover-show-content'></span></a>  class='hover-show-link replace-link-5' <a href='https://search.google.com/search-console?resource_id=https%3A%2F%2Fnisshin.edu.vn%2F' title='ứng dụng' class='hover-show-link replace-link-6'>ứng dụng<span class='hover-show-content'></span></a> span class='hover-show-content'></span></a> /em></p> <h3>b. Tầng Model và các lớp thực thể (Entity class)</h3> <ul> <li>Tầng Model thực hiện thao tác với cơ sở dữ liệu, bao gồm các thao tác đọc, thêm, xoá, sửa dữ liệu.</li> <li>Ngoài ra, tầng Model cũng chứa các lớp thực thể (Entity class) để mô phỏng đối tượng trong thực tế. Trong ví dụ này, Model_Student và Entity_Student sẽ làm việc cùng nhau để truy xuất dữ liệu từ cơ sở dữ liệu.</li> </ul> <p><img src= Fig 5 - Entity class, mô tả các bảng trong CSDL

Lớp Model phụ trách phần liên kết dữ liệu Database Fig 6 - Lớp Model phụ trách phần liên kết dữ liệu Database

c. Tầng View

  • Tầng View định dạng hiển thị dữ liệu cho người dùng. Với hai tính năng danh sách học sinh và chi tiết học sinh, chúng ta sẽ có hai view khác nhau. Controller sẽ truyền dữ liệu vào View để hiển thị.
  • Mã PHP được nhúng vào mã HTML để truyền dữ liệu từ Controller vào View.

View của “Danh sách học sinh” Fig 7 - View của “Danh sách học sinh”

View của “Chi tiết học sinh” Fig 8 - View của “Chi tiết học sinh”

  • Mô hình tuần tự sau đây mô tả luồng hoạt động của một HTTP request trong mô hình MVC:

Sơ đồ tuần tự mô tả luồng chạy của một xử lí trong mô hình MVC Fig 9 - Sơ đồ tuần tự mô tả luồng chạy của một xử lí trong mô hình MVC

3. Tóm tắt

  • Mô hình MVC là mô hình tiện lợi nhất trong việc phát triển ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> web. Bài viết cung cấp cái nhìn cơ bản về mô hình MVC và cách các thành phần của nó hoạt động. Các framework khác cũng sử dụng mô hình MVC với cấu trúc tương tự.
  • Một số lợi ích của MVC:
    • Tách biệt Model và View, tạo sự linh hoạt khi thay đổi ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'>
    • Model và View có thể thay đổi độc lập. Ta có thể tạo các ứng dụng class='hover-show-link replace-link-5' ứng dụng span class='hover-show-content'> giao tiếp thông minh hơn bằng cách thay đổi View hoặc sử dụng Web service thay thế cơ sở dữ liệu.

Bài viết được đăng với sự đồng ý của Nhungdongcodevui.

Xem thêm các việc làm IT hot tại TopDev!

1