MVC là trong PHP nói về cách tổ chức code với mô hình MVC trong PHP. Nhờ đó triển khai tốt hơn trong các dự án phức tạp, cả team cùng làm.
Lập trình với MVC trong PHP
MVC là cách tổ chức code thường được dùng hiện nay để lập trình trong các ngôn ngữ. Bạn có thể không viết code theo kiểu MVC cũng được. Nhưng nếu tổ chức code theo kiểu MVC thì hay hơn. Các chức năng sẽ được tách bạch khi triển khai và bảo trì dự án.
MVC là viết tắt của chữ Controller View Model. Trong đó:
- Controller là thành phần đóng vai trò tiếp nhận yêu cầu của user, xử lý nghiệp vụ.
- Model là thành phần kết nối database, tính toán, cung cấp dữ liệu.
- View là thành phần trình bày dữ liệu, nơi hiện dữ liệu. Đây là nơi viết code html, css, javascript.
Cách tổ chức code theo kiểu MVC trong PHP giúp tiến độ công việc ứng dụng nhanh hơn, việc nâng cấp dễ dàng hơn, rất thích hợp với các dự án nghiệp vụ phức tạp, nhiều người cùng phát triển.
MVC giúp chia nhỏ quá trình xử lý của ứng dụng theo chức năng (M, V, C) . Vì thế bạn có thể làm việc trên từng thành phần riêng lẻ, không ảnh hưởng đến các thành phần khác.
Thành phần Controller
Trong mỗi dự án, bạn có thể tạo nhiều controller. Mỗi controller chứa các hàm để thực thi các yêu cầu từ user như tiếp nhận tham số, nạp model, gọi các hàm trong model, nạp các view cần thiết để hiện cho user xem.
Thành phần Model
Mỗi website mà bạn lập trình có thể tạo nhiều model. Mỗi model là chứa code tính toán dữ liệu, kết nối database, trích lọc, chèn, chỉnh sửa dữ liệu trong database. Có khi code model để tương tác với file system , có khi gọi api server để có dữ liệu. Model được nạp vào từ controller.
Thành phần View
Khi viết code theo kiểu MVC, bạn có thể tạo nhiều file view. Mỗi file view là một trang web hiển thị dữ liệu gì đó. Dữ liệu mà view hiển thị do controller cung cấp (controller lấy từ model để đưa cho view).
Sự tách biệt của giữa Model và View giúp cho người lập trình phân định rõ ràng cách thức lưu trữ dữ liệu và cách trình bày dữ liệu. Do vậy quy trình lấy dữ liệu, xử lý dữ liệu trước khi trả về sẽ không làm ảnh hưởng đến việc trình bày dữ liệu.
Mô hình này thực sự đảm bảo việc tách biệt vai trò của người thiết kế giao diện với vai trò của người lập trình. Như vậy khi làm việc theo nhóm, có thể tổ chức nhóm phát triển thành các nhóm kĩ năng và phát triển ứng dụng song song với nhau.
Tổ chức folder cho website
Sau đây là một gợi lý cách tổ chức folder website dùng MVC. Có thể có cách tổ chức folder khác cũng được tùy nhu cầu và quy mô dự án.
Trong folder controllers, bạn tạo các file controller cần triển khai trong dự án website. Ví dụ SanphamController.php, BaivietController.php, MemberController.php, AdminSPController.php, AdminDonHangController.php.. Mỗi controller gồm nhiều function tùy theo yêu cầu.
Hầu như mỗi controller cần tới một model. Các file model sẽ đặt trong folder models. Ví dụ sanpham.php, member.php, adminsp.php…Model sẽ được include vào controller để controller có thể lấy dữ liệu thông qua việc gọi các function trong model
Bạn tạo các file trình bày dữ liệu và lưu trong folder views . Ví dụ spmoi.php, spnoibat.php, sptrongloai.php, detai.php, home.php, layout.php, header.php, footer.php, menu.php…
Còn các file css, js, hình ảnh thì lưu trong folder public. Bạn có thể tạo các folder con để lưu các tài nguyên này thích hợp.
File .htaccess làm nhiệm vụ điều hướng. Các địa chỉ user request đến sẽ được chuyển về trang chủ index.php để xử lý.
File index.php là trang chủ, nơi đây bạn định nghĩa các địa chỉ dẫn đến các chức năng trong code của bạn. Trong index còn nạp cấu hình, khởi động session, phân tích url của user đề biết họ đang cần chức năng gì …
File config.php là file chứa các cấu hình cần dùng cho website. Ví dụ tên database, địa chỉ website, pageSize, các thông số gửi mail…
Trên đây một gợi ý về cách tổ chức code cho website của bạn khi tổ chức code với MVC trong PHP. Bạn tổ chức khác cũng được không sao.
Tham khảo thêm: