Xem thêm

CÁCH HIỆN THỰC MÔ HÌNH MVC VỚI PHP

Huy Erick
Giới thiệu Mô hình MVC (Model-View-Controller) là một mô hình kiến trúc phần mềm phổ biến nhất trong việc phát triển ứng dụng web, giúp quản lý và xây dựng dự án phần mềm hiệu...

Giới thiệu

Mô hình MVC (Model-View-Controller) là một mô hình kiến trúc phần mềm phổ biến nhất trong việc phát triển ứng dụng web, giúp quản lý và xây dựng dự án phần mềm hiệu quả hơn. Trên PHP, có nhiều Framework sử dụng mô hình MVC, cho thấy sự quan trọng của nó.

Mô hình MVC

Các thành phần trong mô hình MVC

Mô hình này bao gồm 3 thành phần chính, mỗi thành phần đảm nhiệm một vai trò riêng:

  • Model: thực hiện thao tác với cơ sở dữ liệu, chứa các hàm và phương thức truy vấn dữ liệu. Controller sẽ sử dụng các hàm này để lấy dữ liệu và gửi qua View.

  • View: nhận dữ liệu từ Controller và hiển thị nội dung dưới dạng mã HTML, giao diện giao tiếp với người dùng.

  • Controller: là trung gian giữa Model và View. Nó nhận yêu cầu từ client, xử lý request, gọi model và gửi dữ liệu qua view tương ứng.

MVC Pattern cần có trong mọi framework PHP - All Laravel

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

Bước 1: Controller dựa vào yêu cầu của người dùng và gọi một hàm để lấy dữ liệu từ Model nếu cần.

Bước 2: Controller gửi dữ liệu qua View. View xử lý dữ liệu và chuyển thành mã HTML.

Bước 3: Controller gửi nội dung HTML của View về cho client.

Tổ chức website PHP theo mô hình MVC

CÁCH HIỆN THỰC MÔ HÌNH MVC VỚI PHP

Cấu trúc website được tổ chức như hình bên dưới, trong đó index.php là file đóng vai trò như là router của website.

  1. Cài đặt router - index.php: Mọi yêu cầu từ người dùng trong mô hình MVC đều đi qua router. Dưới đây là một cách đơn giản để viết route PHP cho những người mới làm quen với MVC PHP.

Với cách cài đặt này, các liên kết trong trang phải có dạng: /mvc-implement/index/php/xxx

Ví dụ khi có request: http://127.0.0.1/mvc-implement/index.php

Server thực hiện route như sau:

  • Lấy mảng $url với hàm getUrl() tại dòng 14, kết quả là mảng: [domain,mvc-implement,index.php]
  • Do mảng chỉ có chỉ số tối đa là 2, các dòng còn lại không được thực thi
  • Dòng lệnh cuối cùng, dòng 33, hàm index nằm trong controller Home

Ví dụ khi có request: http://127.0.0.1/mvc-implement/index.php/product

Server thực hiện route như sau:

  • Lấy mảng $url với hàm getUrl() tại dòng 14, kết quả là mảng: [domain,mvc-implement,index.php,product]
  • Do mảng có chỉ số tối đa là 3, dòng lệnh 17 thỏa mãn và cập nhật lại controller để xử lý yêu cầu là Product
  • Do không có phần tử là action, mặc định action là index
  • Dòng lệnh cuối cùng, dòng 33, hàm index nằm trong controller Product
  1. Controller: Xây dựng các controller tương ứng cho website, với các hành động để xử lý yêu cầu khi router điều hướng tới.

Dưới đây là ví dụ về controller Product, với hàm index trả về view hiển thị tất cả sản phẩm, và hàm detail trả về view hiển thị thông tin chi tiết sản phẩm theo mã sản phẩm.

  1. View: Thiết kế view để hiển thị kết quả và trả về cho người dùng.

Image: CÁCH HIỆN THỰC MÔ HÌNH MVC VỚI PHP

Đó là cách tổ chức website theo mô hình MVC trên PHP. Có rất nhiều cách tổ chức khác nhau, bài viết này chỉ là một cách tổ chức đơn giản dành cho những người mới làm quen với MVC PHP.

Mong rằng bài viết này sẽ mang lại cho các bạn sinh viên một kênh tham khảo về cách hiện thực website PHP với mô hình MVC.

Tác giả: Thy Đào Quốc - Ngày viết: 22/03/2023

Danh mục: Chương trình đào tạo, CNTT - Thiết kế Website, CNTT - Ứng dụng phần mềm, Ngành Công nghệ thông tin - Ứng dụng phần mềm, NHÓM NGÀNH CÔNG NGHỆ THÔNG TIN

1