-
Mô hình MVC (Model-View-Controller) chia
ứng dụng thành 3 phần, mỗi phần có chức nắng khác nhau, mang lại sự thuận tiện
khi có nhu cầu nâng cấp, bảo trì.
-
Mô hình MVC trong ZF gồm 4 thành phần
chính: Front Controller, Controller Action, Model và View.
a.
Front
Controller:
-
Cần 2 file trong thư mục public để hoạt
động: index.php và .htaccess.
-
Đặt trước mô hình MVC – bootrap file.
-
Tất cả các request đều phải đi qua file
bootrap là index.php.
-
Xử lý lỗi khi có 1 request không thành
công.
-
Front Controller có chức năng khởi tạo ứng
dụng :
Khởi tạo đối tượng request và response:
Thực hiện một số chức
năng khác nhau như: Thêm đường dẫn vào ứng dụng, cấu hình cho ứng dụng, bố trí
các thành phần của MVC, Logging, kết nối database, đăng kí các biến toàn cục,…
Biến đổi URL sang đôi tượng request
trong ZF, phân tích URL thành các module, controller, action để lưu vào các đối
tượng request. URL của ứng dụng trên ZF có dạng mặt định như sau:
Định hướng request đến file chứa
controller action tương ứng: dựa vào đối tượng request, Front Controller sẽ
mapping request đến một action method trong một lớp controller cụ thể.
b.
Controller
Action:
-
Đóng vai trò là thành phần controller
trong mô hình MVC. Có nhiệm vụ thực hiện các luồng công việc, xử lý các yêu cầu
của ứng dụng, kết hợp View và Model.
-
Trong ZF mỗi controller được định nghĩa
bằng một lớp, lớp này phải được kế thừa từ lớp Zend_Controller_Action. Mỗi lớp
sẽ nhận nhiệm vụ xử lí một hoặc nhiều request tùy thuộc vào số action method
bên trong nó. Quy tắc đặt tên của lớp controller mycontrollerController.php
-
Những action method trong lớp controller
sẽ xử lý riêng từng request. Mỗ request từ client sẽ do 1 action method trong
controller thụ lý. Quy tắt đặt tên action Method: myactionAction().
c.
Model:
-
Có nhiệm vụ truy vấn cơ sở dữ liệu hoặc
dung để định nghĩa các kiểu dữ liệu phức tạp.
-
Trong ZF phần này thường dùng để chứa
các lớp tương ứng với các bảng trong mô hình cơ sở dữ liệu quan hệ hoặc dùng để
chứa các lớp do người dùng định nghĩa được sử dụng nhiều lần trong ứng dụng.
-
Nếu là các lớp dùng để kết nối cơ sở dữ
liệu thì thường được extends từ lớp Zend_Db_Table hoặc Zend_Db_Table_Astract.
-
Nếu là các lớp dùng để định nghĩa các kiểu
dữ liệu phức tạp cho ứng dụng thì chỉ là những lớp do người dùng tự viết theo
phương pháp lập trình hướng đối tượng của PHP hoặc extend từ bất kì lớp nào của
ZF, ví dụ như Zend_Form.
d.
View:
- Là
phần tạo ra giao diện người dùng, thể hiện các dữ liệu của ứng dụng ra màn hình,
xuất các kết quả đã được xử lý bởi Controller.
- Một
action method trong lớp Controller không nhất thiết phải có phần View nếu nó
không cần phải trả về kết quả cho người dùng và một action method cũng có thể
nhiều View điều này cần thiết bởi vì ta có thể chọn phần View phù hợp cho từng
đối tượng.
- Trong
ZF file View của mỗi action chỉ đơn giản là file php thông thường và các giá trị
sau khi xử lý trong Controller action cũng được truyền qua file php này và viêc
truy cập vào các biến chỉ thông qua biến $this.
Không có nhận xét nào:
Đăng nhận xét