返回依赖注入和fa......登陆

依赖注入和facade模式的简单实用方法

©李政2019-05-25 16:31:10257
<?php
//数据库类
class Db
{
    public function connect()
    {
        echo '数据库连接成功<br>';
    }
}
//主页
class Display
{
    public function view()
    {
        echo '登陆成功,进入主页<br>';
    }
}

//容器
class Container
{
    protected $arr=[];
    public function bind($index,Closure $item)
    {
        //将new出来的对象放在数组中
        $this->arr[$index]=$item;
    }
    public function make($index)
    {
        //调用函数
        return call_user_func_array($this->arr[$index],[]);
    }
}
$container=new Container();
$container->bind('db',function (){
    return new Db();
});
$container->bind('view',function (){
    return new Display();
});

class login
{
    public static $container=null;
    public static function init(Container $container)
    {
        static::$container=$container;
    }
    public static function connect()
    {
        static::$container->make('db')->connect();
    }
    public static function view()
    {
        static::$container->make('view')->view();
    }
}
//初始化
login::init($container);
login::connect();
login::view();


最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送