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

完成用戶登錄驗證過程類,用到依賴注入和facade

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

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

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

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

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

//實例化容器后對容器綁定外部類
$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
{
//    保存初始化容器類,靜態(tài)定義可讓類方法訪問
    protected static $container =null;

    //初始化獲取容器類,方便類內(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類
Facade::initialize($container);

//訪問facade類
echo Facade::connect();
echo Facade::check();
echo Facade::display();

2019-06-23_182513.jpg


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

Guru membetulkan:天蓬老師Masa pembetulan:2019-06-24 10:07:55
Rumusan guru:這類門面代碼與容器模型是緊密結(jié)合在一起的, 一定要結(jié)合 起來理解和學(xué)習(xí)

Nota Keluaran

Penyertaan Popular