摘要://这里是容器模块 <?php class Db { public function connect() { return '数据库连接成功<br>'; } } class Validate { public function check() { return
//这里是容器模块 <?php class Db { public function connect() { return '数据库连接成功<br>'; } } class Validate { public function check() { return '数据验证通过<br>'; } } class View { public function display() { return '用户登录成功<br>'; } } class Container { protected $instance = []; public function __get($value) { return $this->$value; } public function bind($object,Closure $Closure) { $this->instance[$object] = $Closure; } public function make($object,$parameter=[]) { return call_user_func_array($this->instance[$object],[]); } } $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 include 'container.php'; class Facade { protected $container = null; public function init(Container $container) { $this->container = $container; echo '<pre>'; // var_dump($this->container); } public function connect() { return $this->container->make('Db')->connect(); } public function check() { return $this->container->make('Validate')->check(); } public function display() { return $this->container->make('View')->display(); } } $facade = new Facade; $facade->init($container); echo $facade->connect(); echo $facade->check(); echo $facade->display();
按照老师提供的案例自己通过思路做了一遍,感觉一下思想开阔了很多,对于框架的一些调用方法有了一些想法,很实用的案例。
批改老师:灭绝师太批改时间:2019-01-06 10:07:15
老师总结:知识点都是整合过的,不实用的基本被抛却了,完成的不错呦!继续加油!