容器依赖注入和Thinkphp中Facade应用

Original 2019-03-16 17:08:03 171
abstract:
bind[$abstract] = $process; } public function make($abstract, $params=[]){ return call_user_func_array($this->bind[$abstract], []); } } class Facade{ protected static $container = null; public static function initialize(Container $container) { self::$container = $container; } public static function connect(){ return self::$container->make('DB')->connect(); } public static function check(){ return self::$container->make('Validate')->check(); } public static function success(){ return self::$container->make('Login')->success(); } } $container = new Container(); $container->bind('DB', function(){ return new DB(); }); $container->bind('Validate', function(){ return new Validate(); }); $container->bind('Login', function(){ return new Login(); }); Facade::initialize($container); echo Facade::connect(); echo '
'; echo Facade::check(); echo '
'; echo Facade::success(); // echo $container->make('DB')->connect(); // echo '
'; // echo $container->make('Validate')->check(); // echo '
'; // echo $container->make('Login')->success();

案例描述:

  1. 先用容器对登陆操作进行解耦

  2. 再通过Facade门面对操作进一步简化。让用户知其然不知其所以然。

Correcting teacher:查无此人Correction time:2019-03-18 09:42:22
Teacher's summary:不错,不错,继续加油。功能比较难理解,还需要反复练习的。

Release Notes

Popular Entries