国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

關(guān)于容器和外觀模式的案例

原創(chuàng) 2019-01-06 03:16:22 224
摘要://這里是容器模塊 <?php class Db { public function connect() { return '數(shù)據(jù)庫(kù)連接成功<br>'; } } class Validate { public function check() { return &#
//這里是容器模塊
<?php
class Db
{
	public function connect()
	{
		return '數(shù)據(jù)庫(kù)連接成功<br>';
	}
}

class Validate
{
	public function check()
	{
		return '數(shù)據(jù)驗(yàn)證通過(guò)<br>';
	}
}

class View
{
	public function display()
	{
		return '用戶登錄成功<br>';
	}
}

class Container
{
	protected $instance = [];

	public function __get($value)
	{
		return $this->$value;
	}

	public function bind($object,Closure $Closure)
	{
		$this->instance[$object] = $Closure;
	}
	public function make($object,$parameter=[])
	{
		return call_user_func_array($this->instance[$object],[]);
	}
}
$container = new Container;

$container->bind('Db',function(){
	return new Db;
});
$container->bind('Validate',function(){
	return new Validate;
});
$container->bind('View',function(){
	return new View;
});

下面是外觀調(diào)用

<?php
include 'container.php';

class Facade
{
	protected $container = null;

	public function init(Container $container)
	{
		$this->container = $container;
		echo '<pre>';
		// var_dump($this->container);
	}
	public function connect()
	{
		return $this->container->make('Db')->connect(); 
	}
	public function check()
	{
		return $this->container->make('Validate')->check(); 
	}
	public function display()
	{
		return $this->container->make('View')->display(); 
	}
}
$facade = new Facade;
$facade->init($container);
echo $facade->connect();
echo $facade->check();
echo $facade->display();

按照老師提供的案例自己通過(guò)思路做了一遍,感覺(jué)一下思想開(kāi)闊了很多,對(duì)于框架的一些調(diào)用方法有了一些想法,很實(shí)用的案例。

批改老師:滅絕師太批改時(shí)間:2019-01-06 10:07:15
老師總結(jié):知識(shí)點(diǎn)都是整合過(guò)的,不實(shí)用的基本被拋卻了,完成的不錯(cuò)呦!繼續(xù)加油!

發(fā)布手記

熱門詞條