サマリー:<?php /** * 2019-04-21 */ // 數據庫操作類 class Db { public function connect() {
<?php /** * 2019-04-21 */ // 數據庫操作類 class Db { public function connect() { return '數據庫連接成功'; } } // 數據驗證類 class Validate { public function check() { return '數據驗證成功'; } } // 視圖渲染類 class View { public function display() { return '登陸成功'; } } // 創(chuàng)建容器類 class Container { // 創(chuàng)建容器 public $instance = []; // 綁定 參數一:類名,參數二:實例化匿名函數,將對象容器初始化 public function bind($abstract,Closure $course) { // 將工具類綁定到容器中 $this->instance[$abstract] = $course; // 類似于: /*$this->instance['db'] = function (){ return new Db(); }*/ } // 實現方法 public function make($abstract,$params = []) { // 查詢類中的方法 return call_user_func_array($this->instance[$abstract],$params); } } // 注冊容器 $container = new Container(); // 添加Db類到容器中 $container->bind('db',function(){ return new Db(); }); // 添加驗證類到容器中 $container->bind('validate',function(){ return new Validate(); }); // 添加視圖類到容器中 $container->bind('view',function(){ return new View(); }); /*print_r($container->instance); echo $container->make('db')->connect();*/ // 使用Facade 依賴注入 統(tǒng)一入口 class Facade { // 定義靜態(tài)屬性,存放存放容器類 protected static $instance = null; // 創(chuàng)建方法傳入Container類 public static function Container(Container $container) { return static::$instance = $container; } // 數據庫連接方法 public static function connect() { return static::$instance->make('db')->connect(); } // 驗證類 public static function validate() { return static::$instance->make('validate')->check(); } // 視圖類 public static function view() { return static::$instance->make('view')->display(); } } // 使用Facade 實現Db,Validate,View,流程 // 將容器綁定到外觀模式中 Facade::Container($container); echo '<h2>使用Facade統(tǒng)一入口模式實現工具類中的三個方法</h2>'; echo Facade::connect(),'<br>'; echo Facade::validate(),'<br>'; echo Facade::view(),'<br>';
添削の先生:西門大官人添削時間:2019-04-22 10:55:13
先生のまとめ:代碼最好自己寫出來。不要拷貝老師的課件源碼。