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

用戶登錄驗(yàn)證的案例

原創(chuàng) 2019-05-14 18:57:25 244
摘要:1.容器container.php<?php//容器:也叫服務(wù)容器//1.創(chuàng)建容器:本質(zhì)就是一個(gè)類與它的實(shí)現(xiàn)綁定到一個(gè)關(guān)聯(lián)數(shù)組//2.服務(wù)注冊(cè):初始化這個(gè)關(guān)聯(lián)數(shù)組,將工具類綁定到容器中;//3.容器依賴:也叫依賴容器,調(diào)用的時(shí)候直接傳一個(gè)容器對(duì)象即可,不用一個(gè)一個(gè)傳具體對(duì)象class Db{    public function connect()   &nbs

1.容器container.php

<?php
//容器:也叫服務(wù)容器
//1.創(chuàng)建容器:本質(zhì)就是一個(gè)類與它的實(shí)現(xiàn)綁定到一個(gè)關(guān)聯(lián)數(shù)組
//2.服務(wù)注冊(cè):初始化這個(gè)關(guān)聯(lián)數(shù)組,將工具類綁定到容器中;
//3.容器依賴:也叫依賴容器,調(diào)用的時(shí)候直接傳一個(gè)容器對(duì)象即可,不用一個(gè)一個(gè)傳具體對(duì)象
class Db
{
   public function connect()
   {
       return '數(shù)據(jù)庫(kù)連接成功<br>';
   }
}

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

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


class Container
{
//    創(chuàng)建一個(gè)空數(shù)組來保存工具類以及實(shí)現(xiàn)方法
   public $instance = [];
//    protected $instance = [];

//    $instance['類名']='類的實(shí)例化過程';
//將需要實(shí)例化的類與它的實(shí)現(xiàn)方法進(jìn)行綁定:將對(duì)象容器初始化
   public function bind($abstract, Closure $process)
   {
       $this->instance[$abstract] = $process;
//        $this->instance['db'] = function(){
//            return new Db();
//        }
   }

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

//二、服務(wù)注冊(cè):其實(shí)就是調(diào)用容器的bind()將對(duì)象注冊(cè)到容器中
$container = new Container();
//將Db類綁定到容器中
$container->bind('db', function () {
   return new Db();
});
//將Validate類綁定到容器中
$container->bind('validate', function () {
   return new Validate();
});
//將View類綁定到容器中
$container->bind('view', function () {
   return new View();
});

2.facade

<?php
require 'container.php';

class Facade
{
   protected static $container = null;

   public static function initialize(Container $container)
   {
       static::$container = $container;
   }

   public static function connect()
   {
       return static::$container ->make('db')->connect();
   }

   public static function check()
   {
       return static::$container ->make('validate')->check();
   }

   public static function display()
   {
       return static::$container ->make('view')->display();
   }
}

echo '<h1 style="color:red">簡(jiǎn)化后的,使用外觀模式Facade門面統(tǒng)一調(diào)用</h1>';
Facade::initialize($container);
echo Facade::connect();
echo Facade::check();
echo Facade::display();

QQ圖片20190514185603.png

批改老師:天蓬老師批改時(shí)間:2019-05-15 13:31:20
老師總結(jié):設(shè)計(jì)模型是前輩們, 對(duì)于一些常見問題總結(jié)出來的解決方案, 值得學(xué)習(xí)

發(fā)佈手記

熱門詞條