首页 > PHP资讯 > PHP培训技术 > Yaf内建类之Yaf_Controller_Abstract和Yaf_Action_Abstract

Yaf内建类之Yaf_Controller_Abstract和Yaf_Action_Abstract

PHP培训技术
Yaf_Controller_Abstract 是Yaf的MVC体系的核心部分。 MVC是指Model-View-Controller, 是一个用于分离应用逻辑和表现逻辑的设计模式。每个用户自定义controller都应当继承Yaf_Controller_Abstract。 

你会发现在你自己的controller中无法定义__construct方法。因此,Yaf_Controller_Abstract 提供了一个魔术方法Yaf_Controller_Abstract::init()。如果在你自己的controller里面已经定义了一个init()方法,当你的controller被实例化的时候,它将被调用。 


Yaf_Action_Abstract是MVC中C的动作, 一般而言动作都是定义在Yaf_Controller_Abstract的派生类中的, 但是有的时候, 为了使得代码清晰, 分离一些大的控制器, 则可以采用单独定义Yaf_Action_Abstract来实现。Yaf_Action_Abstract体系具有可扩展性, 可以通过继承已有的类, 来实现这个抽象类, 从而添加应用自己的应用逻辑. 

此外,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的路由结果中的同名参数值. 比如对于如下的控制器

PHP培训技术

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持44不支持0