您的位置:首页 > 编程语言 > PHP开发

【转】PHP简单拦截器的实现

2016-05-19 16:48 716 查看
最近在看Yii的源代码,收获了不少,这里就是从中得到的启发,而写的一个简单拦截器的实现下面看例子:

<?php
class A{
private $_e = array();

public function attachEvent($name,$handle){
$this->_e[$name] = $handle;
}

public function raiseEvent($name){
call_user_func($this->_e[$name]);
}

public function action(){
$this->raiseEvent("befor");
echo "hahaha";
$this->raiseEvent("after");
}
}

function beforAction(){
echo "befor action";
}

function afterAction(){
echo "after action";
}

$a = new A();
$a->attachEvent("befor", "beforAction");
$a->attachEvent("after", "afterAction");

$a->action();

这里思路蛮好的,可以在任何你想调用的函数前调用自己的拓展的功能,Yii里面的拦截器就是这么实现的。这里的event你可以添加N个,我为了让人更易懂,就没有拓展。

from:http://blog.sina.com.cn/s/blog_495697e60100yuvh.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: