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

依賴注入和Facade門面技術(shù)簡易的實現(xiàn)用戶登錄驗證過程

original 2019-04-22 12:13:01 205
abstrait:創(chuàng)建container.php文件注入容器對象<?phpnamespace app\index\controller;use think\Validate;// 創(chuàng)建數(shù)據(jù)庫連接類class Db{ public function connect() {        $db=mysqli_connect('localhost',

創(chuàng)建container.php文件注入容器對象


<?php

namespace app\index\controller;


use think\Validate;

// 創(chuàng)建數(shù)據(jù)庫連接類

class Db

{


public function connect()

{

        $db=mysqli_connect('localhost','root','root');

        if(!$db){

die('連接失敗:'.mysql_error());

}

return '數(shù)據(jù)庫連接成功!,<br>';

}

}


//創(chuàng)建數(shù)據(jù)驗證類驗證

class Validate

{

public function check()

{

$name=['name'=>'require|length:3,12',

               'password'=>'require|length:6,18'];

        $verification=[

            'name.require'=>'用戶名不能為空',

            'name.between'=>'用戶名必須在3到12個數(shù)字之間',

            'password.require'=>'用戶名不能為空',

            'password.between'=>'用戶名必須在3到12個數(shù)字之間'

           ];  

        

        $a=['name'=>name,

            'password'=>123456];

        

        $b=validate::make($name,$verification);

        

        $c=$b->check($a);

        

        return $c ? '數(shù)據(jù)驗證成功!<br>': $b->getError();

}

}


// 創(chuàng)建視圖類

class View

{

public function display()

{

return '用戶登錄成功!';

}

}


// 創(chuàng)建容器類

class Container

{

public $instance = [];


public function bind($abstract,Closure $process)

{

$this->instance[$abstract]=$process;

}


public function make($abstract,$params=[])

{

return call_user_func_array($this->instance[$abstract],[]);

}

}



//將類的實例綁定到容器中

$container = new Container();


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


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


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

---------------------------------分割線----------------------------------------

在task.php文件中導入container.php文件

<?php

//用require()函數(shù)導入container.php文件

require 'container.php';



class Facade

{

//創(chuàng)建成員屬性到容器對象

protected static $container=null;


//創(chuàng)建初始化方法為容器對象賦值

public static function initialize(Container $container)

{

static::$container=$container;

}


//調(diào)用連接數(shù)據(jù)庫類

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();

}

}


//客戶端調(diào)用

Facade::initialize($container);

echo Facade::connect();

echo Facade::check();

echo Facade::display();


Professeur correcteur:天蓬老師Temps de correction:2019-04-22 13:54:29
Résumé du professeur:將教學代碼直接貼上來了, 真得懂了嗎?

Notes de version

Entrées populaires