PHP的钩子实现解析
来源:互联网 发布:手机怎么注册淘宝网 编辑:程序博客网 时间:2024/06/06 12:54
我们想的是写一个类(通过这个类,向系统发送信息的时候,系统可以直接调用我们的类,而且我们的类只要遵循一定的规则设计,直接和原系统是相容的)。做了改进设计出如下钩子格式:
<?php
class Test {
public static function example() {
Hook::exec("string");
echo "hello<br />";
Hook::exec("arr");
}
}
class Hook {
static public function exec($type,$model=' ') {
if($model=' ') {
$m = new hello();
} else {
$m = new $model();
}
if($type=='string') {
$m->string();
} elseif($type=='arr') {
$m->arr();
}
}
}
//我们只要改动一个外部的hello类 就可以实现对系统内部的控制了。
class hello {
public function string() {
$str="I am a Hook test<br />";
echo "$str <br />";
}
public function arr() {
$arr =array(1,2,3,4,5,6);
echo "<pre>";
print_r($arr);
echo "</pre>";
}
}
Test::example();
?>
从上面可以看出,组成一个单独的类,系统内部的实现固定了后。外部可以写各种类,进行钩子的实现,现在写了一个hello类。假如增加一个拓展world类
同样可以仅仅改动Hook,而不用去改动Test系统内部,只要我们定义一个抽象类
abstract class lan {
abstract function string() ;
abstract function arr();
}
然后让所有的扩展类,比如hello或者另外写个类world继承这个抽象类,就可以直接写个扩展。
- PHP的钩子实现解析
- PHP的钩子实现解析
- php钩子实现
- php钩子的应用
- VB 钩子的实现
- 键盘钩子的实现
- 键盘钩子的实现
- wordpress 常用的钩子解析
- php 使用__call实现钩子方法
- 利用svn钩子实现php代码同步
- 钩子的类型和实现
- C实现的键盘钩子
- 钩子的类型和实现
- 钩子的类型和实现
- 钩子的类型和实现
- 钩子的类型和实现
- 钩子的类型和实现
- C#系统钩子的实现
- 无限轮播
- iOS CoreAnimation(4)-视觉效果
- 音频算法工程师发展前景
- 【HTML/markdown】CSDN-markdown
- gcd(swift)
- PHP的钩子实现解析
- wordcount详解shuffle机制
- 个人唠叨
- c++ mysql
- 解决2008 server r2 安装 PostgreSQL 9.5.4报错问题
- 转载-自己做聊天机器人
- Universal-Image-Loader源码阅读(24)-LimitedAgeDiskCache
- js、jQuery获取页面中的各种宽度和高度
- [BZOJ1085][SCOI2005]骑士精神