此外,Yaf_Action_Abstract是继承自Yaf_Controller_Abstract的,这也是将这两个内建类放到一起学习的原因之一。
[php] view plaincopyabstract Yaf_Action_Abstract extends Yaf_Action_Controller { public abstract void execute ( void ); } Yaf_Controller_Abstract类摘要 [php] view plaincopyabstract Yaf_Controller_Abstract { /* 属性 */ public $actions ; protected $_module ; protected $_name ; protected $_request ; protected $_response ; protected $_invoke_args ; protected $_view ; /* 方法 */ final private void __clone ( void ) final private __construct ( void ) protected bool display ( string $tpl [, array $parameters ] ) public void forward ( string $module [, string $controller [, string $action [, array $paramters ]]] ) public void getInvokeArg ( string $name ) public void getInvokeArgs ( void ) public string getModuleName ( void ) public Yaf_Request_Abstract getRequest ( void ) public Yaf_Response_Abstract getResponse ( void ) public Yaf_View_Interface getView ( void ) public void getViewpath ( void ) public void init ( void ) public void initView ([ array $options ] ) public void redirect ( string $url ) protected string render ( string $tpl [, array $parameters ] ) public void setViewpath ( string $view_directory ) } Yaf_Controller_Abstract成员方法列表 Yaf_Controller_Abstract::__clone — Yaf_Controller_Abstract 不能被克隆 Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor Yaf_Controller_Abstract::display — The display purpose Yaf_Controller_Abstract::forward — The forward purpose Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose Yaf_Controller_Abstract::getModuleName — 获取当前控制器所属的模块名 Yaf_Controller_Abstract::getRequest — The getRequest purpose Yaf_Controller_Abstract::getResponse — The getResponse purpose Yaf_Controller_Abstract::getView — 获取当前的视图引擎 Yaf_Controller_Abstract::getViewpath — The getViewpath purpose Yaf_Controller_Abstract::init — 控制器初始化 Yaf_Controller_Abstract::initView — The initView purpose Yaf_Controller_Abstract::redirect — The redirect purpose Yaf_Controller_Abstract::render — 渲染视图模板 Yaf_Controller_Abstract::setViewpath — The setViewpath purpose 对于Controller来说, 真正的执行体是在Controller中定义的一个一个的动作Action, 当然这些动作也可以定义在Controller外(放在成员$actions中指定) [php] view plaincopy "actions/Dummy_action.php", ); /* action method may have arguments */ public indexAction($name, $id) { assert($name == $this->getRequest()->getParam("name")); assert($id == $this->_request->getParam("id")); } } ?> 文件actions/Dummy_action.php为一个action类 [php] view plaincopy 与一般的框架不同, 在Yaf中, 可以定义动作的参数, 这些参数的值来自对Request的路由结果中的同名参数值. 比如对于如下的控制器