亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Faade的驗(yàn)證登入

オリジナル 2019-06-14 12:06:37 384
サマリー:<?php  /**  * 外觀模式:facade,也叫門面模式  * 1.用一句來說:就是將操作進(jìn)行封裝,對外提供一個(gè)統(tǒng)一的接口  * 2.因?yàn)椴僮骺赡芊植荚诙鄠€(gè)類中,而剛才學(xué)過的容器恰好可以將不同的類與實(shí)現(xiàn)封裝起來  * 3.所以外觀模式與依賴容器是黃金搭檔,經(jīng)常會放在一起使用  */
<?php 
/**
 * 外觀模式:facade,也叫門面模式
 * 1.用一句來說:就是將操作進(jìn)行封裝,對外提供一個(gè)統(tǒng)一的接口
 * 2.因?yàn)椴僮骺赡芊植荚诙鄠€(gè)類中,而剛才學(xué)過的容器恰好可以將不同的類與實(shí)現(xiàn)封裝起來
 * 3.所以外觀模式與依賴容器是黃金搭檔,經(jīng)常會放在一起使用
 */

/**
 * 用戶登錄的操作涉及三個(gè)操作
 * 1.連接數(shù)據(jù)庫
 * 2.用戶數(shù)據(jù)驗(yàn)證
 * 3.輸出提示信息
 */

require 'container.php';

//創(chuàng)建Facade類,實(shí)現(xiàn)以上三個(gè)功能
class Facade
{
	//連接數(shù)據(jù)庫
	public static function connect(Container $container)
	{
		return $container->make('db')->connect();
	}

	//用戶數(shù)據(jù)驗(yàn)證
	public static function check(Container $container)
	{
		return $container->make('validate')->check();
	}

	//輸出提示信息
	public static function display(Container $container)
	{
		return $container->make('view')->display();
	}
}



//客戶端調(diào)用
echo Facade::connect($container);
echo Facade::check($container);
echo Facade::display($container);


//可以在外觀模型中使用初始化方法事先注入容器對象,來簡化客戶端調(diào)用

container代碼

<?php 

//數(shù)據(jù)庫操作類
class Db
{
	//數(shù)據(jù)庫連接
	public function connect()
	{
		return '數(shù)據(jù)庫連接成功<br>';
	}
}

//數(shù)據(jù)驗(yàn)證類
class Validate
{
	//數(shù)據(jù)驗(yàn)證
	public function check()
	{
		return '數(shù)據(jù)驗(yàn)證成功<br>';
	}
}

//視圖圖
class View
{
	//內(nèi)容輸出
	public function display()
	{
		return '用戶登錄成功';
	}
}

/******************************************************************************/

//一.創(chuàng)建容器類
class Container
{
	//創(chuàng)建屬性,用空數(shù)組初始化,該屬性用來保存類與類的實(shí)例化方法
	public $instance = [];

	//初始化實(shí)例數(shù)組,將需要實(shí)例化的類,與實(shí)例化的方法進(jìn)行綁定
	public function bind($abstract, Closure $process)
	{
		//鍵名為類名,值為實(shí)例化的方法
		$this->instance[$abstract] = $process;
	}

	//創(chuàng)建類實(shí)例
	public function make($abstract, $params=[])
	{
		return call_user_func_array($this->instance[$abstract],[]);
	}

}
//二、服務(wù)綁定: 將類實(shí)例注冊到容器中
$container = new Container(); 
//將Db類綁定到容器中
$container->bind('db', function(){
	return new Db();
});
//將Validate類實(shí)例綁定到容器中
$container->bind('validate', function(){
	return new Validate();
});

//將View類實(shí)例綁定到容器中
$container->bind('view', function(){
	return new View();
});


添削の先生:查無此人添削時(shí)間:2019-06-14 14:21:46
先生のまとめ:完成的不錯?;A(chǔ)上php已經(jīng)入門了,以后多練習(xí)實(shí)戰(zhàn)項(xiàng)目。繼續(xù)加油。

手記を発表する

人気のある見出し語