Mô hình MVC trong joomla


I)Tại sao cần phải biết mô hình MVC trong joomla ?
– bạn sẽ dễ dàng tìm được những lỗi phát sinh nếu nắm rõ mô hình này. Tuy nhiên trên thực tế có một số extension viết không theo chuẩn của joomla thì chúng ta không bàn đến (1 ví dụ to đùng : Virtuemart version < 2.0).
– Nâng cao tốc độ website vì một số biến , dữ liệu quan trọng sẽ được joomla tự động ghi vào cache.
– Dễ nâng cấp tính năng nếu có nhu cầu phát triển thêm.

II) Cấu trúc file cơ bản nhất của 1 component theo chuẩn MVC:

[folder] – Component name (com_name)
[file]controller.php —-> controller
[file]name.php —-> file entry : điểm vào đầu tiên của ứng dụng
==[folder]views –> thư mục chứa các view
==[folder]view1 —> 1 view
====[file]view.html.php —> điểm vào của view
====[folder]tmpl —–> thư mục chứa layout – nơi hiển thị dữ liệu theo các hình thức khác nhau.
======default.php
[folder]models —> thư mục chứa các model
==[file]view1.php —> đây là model của view 1

ok, các bạn nhìn qua có thể cũng đã hiểu cơ cấu rồi mình xin nói lại :
name.php :
file này là file đầu tiên được gọi khi ứng dụng được request (vd: index.php?option=com_name) vậy nên nó sẽ có vai trò khởi tạo controller và quá trình của một MVC bắt đầu:
controller.php :
mặc định hàm display sẽ đc thực thi nếu không có task nào lúc này controller sẽ dựa vào các biến thu thập được để xem nên xử lý thế nào (như xem view nào chẳng hạn – index.php?option=com_name&view=view1) xử dụng model nào để lấy dữ liệu, xử lý dữ liệu và cuối cùng là hiển thị ở view nào.

models/view1.php :
sẽ có một class (extend JModel) xây dựng những hàm có sẵn (lấy dữ liệu, xóa, sửa … ) nhằm chờ cho đến khi controller giao việc cho nó thực thi, nó chỉ biết thực thi khi đc gọi mà thôi (tên model thường trùng với tên view để tận dụng default của joomla giảm những lượng code không cần thiết).

view1 – 1 foler có tên là tên view
view.html.php :
file này có một class (extend JView) mà hàm chính là hàm display sẽ thực thi khi đc gọi đến (view=view1) trong này các bạn có thể lấy dữ liệu từ model của nó ra và hiển thị. tuy nhiên nó không có nhiệm vụ hiển thị mà chỉ lấy dữ liệu để chuẩn bị cho việc sẽ hiển thị tại layout nằm trong thư mục tmpl

default.php – nằm trong thư mục tmpl của view :
file này sẽ hiển thị dữ liệu có ở view1.html.php, người ta thường đặt là default.php vì nếu không có request (layout=abc) thì mặc định default.php sẽ được gọi

ta xét 1 ví dụ nhỏ : sếp yêu cầu bạn thêm một khung text nhỏ tại trang index.php?option=com_etc&view=example&layout=globa l
nếu component com_etc viết đúng chuẩn MVC bạn dễ dàng nhìn ra lần theo cấu trúc chuẩn bạn sẽ tìm thấy file cần thêm nằm ở :
/components/com_etc/views/example/tmpl/global.php – giờ chỉ cần thêm vào chỗ cần thêm thôi.

how MVC pattern works in Joomla

III) Cài đặt

 

Bình luận về bài viết này