Thứ Hai, 5 tháng 1, 2015

Zend Controller

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
resources.frontController.baseUrl = "http://localhost
-         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