摘要:<?php //工具類 class Db { public function connect($localhost,$user,$pwd) { return '主機(jī)是'.$localhost.',用戶是'.$user.',密碼是'.$pwd; } } class Validate {
<?php //工具類 class Db { public function connect($localhost,$user,$pwd) { return '主機(jī)是'.$localhost.',用戶是'.$user.',密碼是'.$pwd; } } class Validate { public function check($user,$pwd) { if($user=='admin' && $pwd=='123'){ return '驗(yàn)證通過(guò)'; }else{ return '驗(yàn)證失敗'; } } } class View { public function display() { return '恭喜,登錄成功!'; } }
<?php //容器類 require './Classes.php'; class Container { protected $instance = []; public function bind($className,Closure $closure) { $this->instance[$className] = $closure; } public function make($className,$param=[]) { return call_user_func_array($this->instance[$className], $param); } } $container = new Container; $container->bind('db',function(){ return new Db(); }); $container->bind('validate',function(){ return new Validate(); }); $container->bind('view',function(){ return new View(); });
<?php //外觀模式 require './Container.php'; class Facade { protected static $container = null; //把容器綁定到外觀模式類中的屬性 public static function initialize(Container $container) { static::$container = $container; } //連接數(shù)據(jù)庫(kù) public static function connect($localhost,$user,$pwd) { return static::$container->make('db')->connect($localhost,$user,$pwd); } //驗(yàn)證 public static function check($user,$pwd) { return static::$container->make('validate')->check($user,$pwd); } //顯示信息 public static function display() { return static::$container->make('view')->display(); } } Facade::initialize($container); echo Facade::connect('localhost','root','root'),'<br>'; echo Facade::check('admin','123'),'<br>'; echo Facade::display();
批改老師:天蓬老師批改時(shí)間:2019-01-27 08:54:57
老師總結(jié):這個(gè)模式是ThinkPHP5.1 以及 laravel框架的基礎(chǔ), 如果掌握了, 對(duì)于框架底層的運(yùn)行 就有了一定的理解了