利用php反射机制实现动态代理模式

来源:互联网 发布:电脑卸载不了软件 编辑:程序博客网 时间:2024/05/21 17:45
<?phpinterface  classDao{public function eat();}class Classone implements classDao{public function eat(){echo "one 吃东西";}}class Classtwo implements  classDao{public function eat(){echo 'two 吃东西';}}class  ClassoneDelegator{private $objarr = array();public function addObj($obj){$this->objarr[] = $obj; }public function __call($name,$args){foreach($this->objarr as $obj){$Class = new ReflectionClass($obj);if($method = $Class->getMethod($name)){if($method->isPublic() && !$method->isAbstract()){$method->invoke($obj,$args);}}}}}$classoneDelegator = new ClassoneDelegator();$classoneDelegator->addObj(new Classone());$classoneDelegator->addObj(new Classtwo());$classoneDelegator->eat();

原创粉丝点击