代理模式为其他对象提供一种代理以控制对这个对象的访问。
Irequest.php
<?phpnamespace proxy;interface Irequest{ ???function sendRequest();}
Request.php
<?phpnamespace proxy;class Request{ ???function sendRequest(){ ???????echo "send Request"; ???}}
RequestProxy.php
<?phpnamespace proxy;class RequestProxy{ ???private $_request; ???function __construct(){ ???????$this->_request = new Request(); ???} ???function sendRequest(){ ???????$this->beforeRequest(); ???????echo "<br>"; ???????$this->_request->sendRequest(); ???????echo "<br>"; ???????$this->afterRequest(); ???} ???protected function beforeRequest(){ ???????echo "before"; ???} ???protected function afterRequest(){ ???????echo "after"; ???}}
client.php
<?phpnamespace proxy;require ‘../autoload.php‘;$request = new RequestProxy();$request->sendRequest();
autoload.php
<?phpspl_autoload_register(function ($class_name) { ???$file_dir = str_replace(‘\\‘,‘/‘,$class_name); ???require_once $file_dir . ‘.php‘;});
client.php为客户端发起请求的文件,autoload.php为自动加载类的文件
php 代理模式
原文地址:http://www.cnblogs.com/changfengSven/p/7677127.html