Yaf_Plugin_Abstract (class)
Yaf_Plugin_Abstract类
介绍
(Yaf >=1.0.0)
插件允许轻松式扩展和定制框架。
插件是类。实际的类定义会根据组件而有所不同 - 您可能需要实现此接口,但事实是插件本身就是一个类。
通过在注册后使用Yaf_Dispatcher :: registerPlugin()可以将一个插件加载到Yaf中,插件根据此接口实现的所有方法将在适当的时候被调用。
例子
示例#1插件示例
<?php
/* bootstrap class should be defined under ./application/Bootstrap.php */
class Bootstrap extends Yaf_Bootstrap_Abstract {
public function _initPlugin(Yaf_Dispatcher $dispatcher) {
/* register a plugin */
$dispatcher->registerPlugin(new TestPlugin()
}
}
/* plugin class should be placed under ./application/plugins/ */
class TestPlugin extends Yaf_Plugin_Abstract {
public function routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
/* before router
in this hook, user can do some url rewrite */
var_dump("routerStartup"
}
public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
/* router complete
in this hook, user can do login check */
var_dump("routerShutdown"
}
public function dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
var_dump("dispatchLoopStartup"
}
public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
var_dump("preDispatch"
}
public function postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
var_dump("postDispatch"
}
public function dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
/* final hoook
in this hook user can do loging or implement layout */
var_dump("dispatchLoopShutdown"
}
}
Class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {
return FALSE; //prevent rendering
}
}
$config = array(
"application" => array(
"directory" => dirname(__FILE__) . "/application/",
),
$app = new Yaf_Application($config
$app->bootstrap()->run(
?>
上面的例子会输出:
string(13) "routerStartup"
string(14) "routerShutdown"
string(19) "dispatchLoopStartup"
string(11) "preDispatch"
string(12) "postDispatch"
string(20) "dispatchLoopShutdown"
类简介
Yaf
_
Plugin
_
Abstract
{
/* 方法 */
public void dispatchLoopShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void dispatchLoopStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void postDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void preDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void preResponse ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void routerShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void routerStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
}
目录
- Yaf_Plugin_Abstract :: dispatchLoopShutdown - dispatchLoopShutdown用途
- Yaf_Plugin_Abstract :: dispatchLoopStartup - dispatchLoopStartup的用途
- Yaf_Plugin_Abstract :: postDispatch - postDispatch的用途
- Yaf_Plugin_Abstract :: preDispatch - preDispatch的用途
- Yaf_Plugin_Abstract :: preResponse - preResponse的目的
- Yaf_Plugin_Abstract :: routerShutdown - routerShutdown的用途
- Yaf_Plugin_Abstract::routerStartup — RouterStartup hook
← Yaf_Loader::__wakeup
Yaf_Plugin_Abstract::dispatchLoopShutdown →