abstract:<?php class Pdosql{ function connect() { return 'pdo数据库连接成功<br>'; }}class Container{ public $instance = []; public function bind($abstract, Closure $process) { $this->instan
<?php
class Pdosql
{
function connect()
{
return 'pdo数据库连接成功<br>';
}
}
class Container
{
public $instance = [];
public function bind($abstract, Closure $process)
{
$this->instance[$abstract] = $process;
}
public function make($abstract, $params=[])
{
return call_user_func_array($this->instance[$abstract],$params);
}
}
$container = new Container();
$container->bind('pdo', function(){
return new Pdosql();
});
class Facade
{
protected static $container = null;
public static function initialize(Container $container)
{
static::$container = $container;
}
public static function connect()
{
return static::$container->make('pdo')->connect();
}
}
Facade::initialize($container);
echo Facade::connect();