1.
Zend_Controller
Là một trong ba bộ phận cấu thành của MVC, controller có
nhiệm vụ nhận các request từ client,điều hướng theo yêu cầu của request. Dựa
vào request, controller gọi các phương thức của các class trong model, sau khi
nhận dữ liệu trả về nó sẽ chuyển các dữ liệu ra view để hiển thị ra màn hình.
1.1. Controller và Action
-
Mô hình không module chúng ta có cấu trúc thư mục
application như sau:
-
Các controller sẽ nằm trong thư mục controllers,controller
mặc định viếng thăm một link là IndexController, nghĩa là khi ta gõ link http://ten_project/public/index.php/ thì mặc
định Zend sẽ gọi controller index.
-
Mỗi controller sẽ là một class,tên class là tên controller
và class này kế thừa lớp Zend_Controller_Action
class IndexController extends
Zend_Controller_Action
{
//danh sách các actioncontroller
}
-
Khi ta vừa tạo một actioncontroller
thì tương ứng với nó trong thư mục views
sẽ có 1 file ‘.phtml’ với tên
tương ứng với actioncontroller.
-
Bên trong controller là các action, đường dẫn tới action
chính là link mà chúng ta gõ trên thanh địa chỉ của trình duyệt.Mỗi action là
một hàm của class, cú pháp của hàm như sau:<ten_action>Action.
public
function <tên action>Action()
{
// action body
}
1.2. Khái niệm font controller
-
Front Controller giống như bộ định tuyến router có nhiệm vụ
đọc các thông số cấu hình ban đầu và điều hướng sang controller và action tướng
ứng với request của client.
-
Chúng ta có thể can thiệp vào nó bằng 2 cách :Viết trong application.ini hoặc bằng code php.
Trong file
application.ini
-
Chỉ ra thư mục controller trong ứng dụng không module
resources.frontController.controllerDirectory
= APPLICATION_PATH "/controllers"
-
Chỉ ra thư mục modules trong ứng dụng multimodules
resources.frontController.controllerDirectory
= APPLICATION_PATH "/modules"
-
Đặt module,controller,action mặc định
resources.frontController.defaultModule="TENMODULE"
resources.frontController.defaultControllerName="TENCONTROLLER"
resources.frontController.defaultAction="TENACTION"
-
Đặt base url
-
Tại bootstrap viết hàm _initApplication và bổ sung các dòng
sau:
$font=
Zend_Controller_Font::getInstance();
-
Chỉ ra thư mục chứa modules
$font->addModuleDirectory(APPLICATION_PATH."/modules");
-
Chỉ ra controller mặc định
$font->setDefaultControllerName("index");
-
Chỉ ra action mặc định
$font->setDefaultAction("listall");
Ngoài ra
các tham số được truyền đi cũng được font controller đăng kí, việc lấy tham số
sẽ thông qua font controller.Ta có các cách lấy tham số sau:
-
Lấy 1 tham số: $this->_request_getParam("tenthamso");
-
Lấy toàn bộ tham số :$this->_request_getParams();
-
Thay dổi giá trị tham số:$this->_request_setParams();
-
Xóa toàn bộ tham số:$this->_request_clearParams();
-
Lấy toàn bộ tham số theo phương thức Post :
$this->_request_getPost("ten
the input");
Không có nhận xét nào:
Đăng nhận xét