本文实例讲述了Zend Framework动作控制器用法。分享给大家供大家参考,具体如下:
动作控制器简介
为了使用Zend_Controller_Action类,需要在实际控制器类中把它子类化。
代码:
1
2
3
4
5
6
7
8
9
|
<?php
class FooController extends Zend_Controller_Action{
public function barAction(){
//do something
}
public function bazAction(){
//do something
}
}
|
说明:上述FooController类,定义了两个动作,bar和baz。
对象初始化
初始化更合适的方法来定制实例化是使用init()方法。该方法是在__construct()里的最后一个调用任务。
代码:
1
2
3
4
5
6
7
8
9
10
11
|
<?php
class FooController extends Zend_Controller_Action{
public function init(){
$this ->db = Zend_Db::factory( 'Pdo_Mysql' , array (
'host' => 'myhost' ,
'username' => 'user' ,
'password' => 'xxxx' ,
'dbname' => 'website'
));
}
}
|
说明:上述代码就在初始化对象的同时实现了对数据库的连接。
访问器
动作控制器可以包括很多内容,如请求对象、响应对象、调用参数、请求参数。这些内容都可以通过相应的访问器方法进行访问。
请求对象可以通过getRequest()方法来获取,执行该方法将返回一个Zend_Controller_Request_Abstract实例。
代码:
1
2
3
|
$module = $this ->getRequest()->getModuleName(); //获取模块名称
$controller = $this ->getRequest()->getControllerName(); //获取控制器名称
$action = $this ->getRequest()->getActionName(); //获取动作名称
|
响应对象可以通过getResponse()方法来获取,执行该方法将返回一个Zend_Controller_Response_Abstract实例。
请求对象的请求参数包括任意GET或GET或_POST参数。为了读取这些参数,可以使用_getParam($key)或_getAllParams()方法。
视图集成方法
视图初始化
执行initView()方法将初始化视图对象。
解析视图
render()方法用于解析视图
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
class MyController extends Zend_Controller_Action{
public function fooAction(){
//Renders my/foo.phtml
$this ->render();
//Renders my/bar.phtml
$this ->render( 'bar' );
//Renders baz.phtml
$this ->render( 'baz' ,null,true); //第三个参数,指定是否使用控制器目录作为子目录,true表示不使用
//Renders my/login.phtml to the 'form' segment of the response object
$this ->render( 'login' , 'form' );
}
}
|
其他方法
_forword(),该方法执行另外一个动作
_redirect(),该方法重定向到另外一个地方
希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。