©
This document uses PHP Chinese website manual Release
(Yaf >=1.0.0)
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被实例化的时候,它将被调用。
Action可能需要参数,当一个请求来到的时候,在路由中如果请求的参数有相同名称的变量(例如: Yaf_Request_Abstract::getParam() ), Yaf将把他们传递给action方法(see Yaf_Action_Abstract::execute() )。
$tpl
[, array $parameters
] )$module
[, string $controller
[, string $action
[, array $paramters
]]] )$name
)$options
] )$url
)$tpl
[, array $parameters
] )$view_directory
)你也可以通过使用这个值和 Yaf_Action_Abstract 在一个单独的PHP脚本中定义action函数。
Example #1 在一个独立的文件中定义action
<?php
class IndexController extends Yaf_Controller_Abstract {
protected $actions = array(
"dummy" => "actions/Dummy_action.php" ,
);
public indexAction ( $name , $id ) {
assert ( $name == $this -> getRequest ()-> getParam ( "name" ));
assert ( $id == $this -> _request -> getParam ( "id" ));
}
}
?>
Example #2 Dummy_action.php
<?php
class DummyAction extends Yaf_Action_Abstract {
public execute () {
}
}
?>
模块名
当前的请求实例
视图引擎