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

完成用戶登錄驗(yàn)證過(guò)程類(lèi),用到依賴注入和facade

original 2019-06-23 23:14:01 200
abstrait:<?php //數(shù)據(jù)庫(kù)連接過(guò)程 class Db {     public function connect()     {         return '連接數(shù)據(jù)庫(kù)====》成功&
<?php

//數(shù)據(jù)庫(kù)連接過(guò)程
class Db
{
    public function connect()
    {
        return '連接數(shù)據(jù)庫(kù)====》成功 !<br>';
    }
}

//驗(yàn)證過(guò)程
class Validate
{
    public function check()
    {
        return '驗(yàn)證通過(guò)====》成功 !<br>';
    }
}
//登陸顯示信息
class View
{
    public function display()
    {
        return '登陸成功====》成功 !<br>';
    }
}

//創(chuàng)建容器類(lèi)
class Container
{
//    創(chuàng)建容器屬性,用關(guān)聯(lián)數(shù)組保存類(lèi)或類(lèi)實(shí)例化方法
    public $instance=[];

//    對(duì)$instance[] 寫(xiě)入,綁定
    public function bind($login,Closure $process)
    {
        $this->instance[$login]=$process;
    }
//    對(duì)$instance[] 讀取,實(shí)例化對(duì)應(yīng)的關(guān)聯(lián)數(shù)組中的類(lèi)名
    public function make($login,$params=[])
    {
        return call_user_func_array($this->instance[$login],[]);
    }
}

//實(shí)例化容器后對(duì)容器綁定外部類(lèi)
$container = new Container();

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

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

$container->bind('view',function (){
    return new View();
});
<?php
/**
 * Created by PhpStorm.
 * User: 普通用戶
 * Date: 2019/6/23
 * Time: 17:44
 */
require 'facade.php';

class Facade
{
//    保存初始化容器類(lèi),靜態(tài)定義可讓類(lèi)方法訪問(wèn)
    protected static $container =null;

    //初始化獲取容器類(lèi),方便類(lèi)內(nèi)其他方法重新獲取
    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();
    }
}

//初始化facade類(lèi)
Facade::initialize($container);

//訪問(wèn)facade類(lèi)
echo Facade::connect();
echo Facade::check();
echo Facade::display();

2019-06-23_182513.jpg


本章節(jié)對(duì)之前的依賴注入知識(shí)又重新重溫一遍,可見(jiàn)依賴注入在開(kāi)發(fā)中比較重要,經(jīng)過(guò)學(xué)習(xí)對(duì)高度藕合的問(wèn)題在后續(xù)開(kāi)發(fā)中盡量避免,另外運(yùn)用facade類(lèi)實(shí)現(xiàn)不需要對(duì)基類(lèi)實(shí)例化后再訪問(wèn)而方便的使用靜態(tài)直接訪問(wèn)

Professeur correcteur:天蓬老師Temps de correction:2019-06-24 10:07:55
Résumé du professeur:這類(lèi)門(mén)面代碼與容器模型是緊密結(jié)合在一起的, 一定要結(jié)合 起來(lái)理解和學(xué)習(xí)

Notes de version

Entrées populaires