依赖注入和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();