【转】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
<?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
相关文章推荐
- xunsearch之php索引维护(四)
- PHP入门教程之数组函数操作大全
- php基础知识收集--数组、文件、字符串、文件、会话
- 内网FTPpassword嗅探
- 解析php中session相关应用
- mac 安装php mongo扩展,无法使用的解决办法
- 关于php运算符优先级的几道题
- PHP程序员常用的8款Laravel软件包
- php 保存图片到服务器
- Yii 1.1 请求报400错误
- PHP编写登录验证码功能 附调用方法
- php中in_array需要注意的一点
- matplotlib使用show方法后不能显示图像的问题
- 一段实用的php验证码函数
- matplotlib 资料收集
- 关于PHP中的in_array会踩的坑
- PHP libevent 使用总结
- php基本知识复习--变量
- The logging tag can be at most 23 characters, was 28 (EnterpriseUnixFTPEntryParser) less... (Ctrl+F1
- 编译php扩展