Thứ Sáu, 26 tháng 12, 2014

Mô hình MVC trong Zend Framework


-         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