门面模式和静态代理

Original 2018-10-30 17:13:40 270
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();



Release Notes

Popular Entries