依赖容器与facade

原创 2018-12-28 15:47:38 211
摘要://创建工具 class Db {     public function connect()     {     return '数据库连接成功';     } } //创建容器 c
//创建工具
class Db
{
    public function connect()
    {
    return '数据库连接成功';
    }
}
//创建容器
class Container
{
    protected $instance = [];
    public function bind($abstract,Closure $process)
    {
    $this->instance[$abstract] = $process;
    }
    public function make($abstract,$params=[])
    {
        return call_user_func_array($this->instance[$abstract],[]);
    }
}
//服务注册
$container = new Container();
$container->bind('db',function(){
    return new Db();
});
//注入容器
class User
{    
    pubic funtion login(Container $container)
    {
        echo $container->make('db')->connect();
    }
}
$user = new User();
echo $user->login($container);
//Facade
class Facade
{
	//1连接数据库
	public static function connect(Container $container)
	{
		return $container->make('db')->connect();
	}
	//2数据验证
	public static function check(Container $container)
	{
		return $container->make('validate')->check();
	}
	//3输出提示
	public static function display(Container $container)
	{
		return $container->make('view')->display();
	}
}
//客户端调用

echo Facade::connect($container);
echo Facade::check($container);
echo Facade::display($container);


批改老师:韦小宝批改时间:2018-12-28 17:02:15
老师总结:写的很不错哦,课后记得多多练习!继续加油吧!

发布手记

热门词条