這裡 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的實現