PHP中反射的简单实用(动态代理)
程序员文章站
2022-09-10 14:38:39
这里 sqlproxy起到一个代理的作用,使用时无需关注 mysql和oracle的实现 ......
<?php class mysql{ function connect($db){ echo "连接mysql数据库${db[0]} \r\n"; } } class oracle{ function connect($db){ echo "连接oracle数据库${db[0]} \r\n"; } } class sqlproxy{ private $target; function __construct($tar){ $this->target[] = new $tar(); } function __call($name,$args){ foreach ($this->target as $obj) { $r = new reflectionclass($obj); if($method = $r->getmethod($name)){ if($method->ispublic() && !$method->isabstract()){ $method->invoke($obj,$args); } } } } } $mysql = new sqlproxy('mysql'); $mysql->connect('member'); $oracle = new sqlproxy('oracle'); $oracle->connect('member');
这里 sqlproxy起到一个代理的作用,使用时无需关注 mysql和oracle的实现
上一篇: php中通过curl模拟登陆discuz论坛的实现代码
下一篇: 广东人的迷糊