摘要://这里是容器模块 <?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
老师总结:知识点都是整合过的,不实用的基本被抛却了,完成的不错呦!继续加油!