石家庄seo培训:PHP 反射机制实现动态代理的代码

时间:2009-07-04 10:54来源:网络营销管理学院 作者:网络营销专家 点击:次 [收藏到本地收藏夹]
以下为引用的内容: class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function __construct() { $this->target[] = new ClassOne(); } function __call($name, $args) { forea

以下为引用的内容:

class ClassOne {

function callClassOne() {

本文来自织梦

print "In Class One";

本文来自织梦

}

dedecms.com

}

织梦好,好织梦

class ClassOneDelegator {

织梦内容管理系统

private $targets; 本文来自织梦

function __construct() {

copyright dedecms

$this->target[] = new ClassOne();

dedecms.com

} 织梦内容管理系统

function __call($name, $args) {

内容来自dedecms

foreach ($this->target as $obj) { copyright dedecms

$r = new ReflectionClass($obj); copyright dedecms

if ($method = $r->getMethod($name)) { 本文来自织梦

if ($method->isPublic() && !$method->isAbstract()) {

copyright dedecms

return $method->invoke($obj, $args);

织梦内容管理系统

}

织梦好,好织梦

}

copyright dedecms

} 织梦内容管理系统

} 织梦内容管理系统

} 本文来自织梦

$obj = new ClassOneDelegator();

织梦好,好织梦

$obj->callClassOne(); 本文来自织梦

?> 织梦好,好织梦

输出结果:

织梦内容管理系统

In Class One

本文来自织梦

可见,通过代理类ClassOneDelegator来代替ClassOne类来实现他的方法。

copyright dedecms

同样的,如下的代码也是能够运行的:

copyright dedecms

class ClassOne { copyright dedecms

function callClassOne() { 本文来自织梦

print "In Class One";

内容来自dedecms

}

本文来自织梦

}

织梦好,好织梦

class ClassOneDelegator {

本文来自织梦

private $targets; copyright dedecms

function addObject($obj) {

copyright dedecms

$this->target[] = $obj;

内容来自dedecms

}

织梦内容管理系统

function __call($name, $args) { 本文来自织梦

foreach ($this->target as $obj) {

内容来自dedecms

$r = new ReflectionClass($obj); 织梦内容管理系统

if ($method = $r->getMethod($name)) {

织梦内容管理系统

if ($method->isPublic() && !$method->isAbstract()) {

本文来自织梦

return $method->invoke($obj, $args);

织梦内容管理系统

} dedecms.com

} 织梦好,好织梦

}

内容来自dedecms

}

本文来自织梦

}

织梦好,好织梦

$obj = new ClassOneDelegator(); 织梦好,好织梦

$obj->addObject(new ClassOne()); 织梦内容管理系统

$obj->callClassOne(); dedecms.com

?> 织梦内容管理系统

  dedecms.com

  织梦内容管理系统

  copyright dedecms

     更多精彩:http://www.cnseoo.net                  www.hbmobiles.cn 织梦内容管理系统

顶一下
(0)
0%
踩一下
(0)
0%
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
营销百科 娱乐资讯

济南办证 天津办证