解释器: 解释器设计模式用于分析一个实体的关键元素,并且针对每个元素都提供自己的解释或相应的动作。
解释器设计模式最常用于php/html 模板系统。
_username = $username; } public function getprofilepage() { $profile = i like never again ! ; $profile .= i love all of their songs. my favorite cd:
; $profile .= {{mycd.gettitle}}!!; return $profile; } } class usercd { public function setuser(user $user) { $this->_user = $user; } public function gettitle() { $title = waste of a rib; return $title; } } class usercdinterpreter { protected $_user = null; public function setuser(user $user) { $this->_user = $user; } public function getinterpreted() { $profile = $this->_user->getprofilepage(); if (preg_match_all('/\{\{mycd\.(.*?)\}\}/', $profile, $triggers, preg_set_order)) { $replacements = array(); foreach ($triggers as $trigger) { $replacements[] = $trigger[1]; } $replacements = array_unique($replacements); $mycd = new usercd(); $mycd->setuser($this->_user); foreach ($replacements as $replacement) { $profile = str_replace({{mycd.{$replacement}}}, call_user_func(array($mycd, $replacement)), $profile); } } return $profile; } } $username = aaron; $user = new user($username); $interpreter = new usercdinterpreter(); $interpreter->setuser($user); print {$username}'s profile; print $interpreter->getinterpreted(); ?>
数据库脚本请参照:http://www.cxybl.com/html/wlbc/php/2011_1126_9458.html