您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2024/4/22 23:34:06发布23次查看
详解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装饰模式的示例代码的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product