您好,欢迎访问一九零五行业门户网

详解PHP装饰模式的示例代码

详解php装饰模式的示例代码
<?php // 装饰模式 function echoline($msg) { echo $msg, '<br/>'; } class requesthelper { /** * return class resource id */ public function tostring() { ob_start(); var_dump($this); $str = ob_get_clean(); if (preg_match('/object\(' . class . '\)\#\d+/', $str, $matches)) { return $matches[0]; } return class; } } // --------------------------------------------------------- interface processrequest { public function process(requesthelper $req); } /** * http request */ class httprequest implements processrequest { public function process(requesthelper $req) { echoline('process http request[' . $req . ']'); } } /** * log decorator * add log function */ class logrequest implements processrequest { protected $pr; public function construct(processrequest $pr) { $this->pr = $pr; } public function process(requesthelper $req) { echoline('add log function!'); $this->pr->process($req); } } /** * authenticate decorator * add authenticate function */ class authenticaterquest implements processrequest { protected $pr; public function construct(processrequest $pr) { $this->pr = $pr; } public function process(requesthelper $req) { echoline('add authenticate function!'); $this->pr->process($req); } } // test code $req = new requesthelper(); $process = new httprequest(); // add log $process = new logrequest($process); // add auth $process = new authenticaterquest($process); // process request $process->process($req);
以上就是详解php装饰模式的示例代码的详细内容。
其它类似信息

推荐信息