国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

模擬用戶登錄驗證的案例 依賴注入 Facade

Original 2019-10-31 22:56:26 462
abstract://virefy.php<?php //數(shù)據(jù)庫連接類 class Db{             public $databaseType = null;          

//virefy.php

<?php

 //數(shù)據(jù)庫連接類

class Db{
            public $databaseType = null;

             //獲得數(shù)據(jù)庫類型

             public function getType($databaseType){
                            $this->databaseType = $databaseType;
                            return $this;

             }

            //驗證數(shù)據(jù)庫類型

             public function conn(){

                             if($this->databaseType == 'mysql'){
                                        return '數(shù)據(jù)庫連接成功';
                            }else{
                                        return '數(shù)據(jù)庫連接失敗';
                            }

             }
        }
        //數(shù)據(jù)庫驗證類

        class Validate{
                     protected $username;
                     protected $password;

                     //獲取數(shù)據(jù)庫用戶名和密碼

                     public function getValid($username,$password){
                                            $this->username = $username;
                                            $this->password = $password;
                                        return $this;

                     }

                     //驗證數(shù)據(jù)庫用戶名和密碼

                     public function check(){
                                    if($this->username == 'root' && $this->password == 'root'){
                                                return '驗證成功'; }else{ return '驗證失敗';

                                     }

                     }

         }
        //數(shù)據(jù)顯示類

        class User{
                     protected $username;
                     protected $password;

                     //獲取用戶名和密碼

                     public function getUser($username,$password){
                                    $this->username = $username;
                                    $this->password = $password;
                                    return $this;

                     }

                     //驗證登錄用戶名和密碼

                     public function login(){

                                     if($this->username == 'admin' && $this->password == 'admin'){

                                             return '用戶登錄成功';

                                      }else{

                                             return '用戶登錄失敗';

                                     }

                 }
        }


//container.php

<?php

        require 'virefy.php';
        class Container{

             //聲明對象數(shù)組

             public $instance = [];
            //綁定類

             public function bind($classType,closure $closeFun){
                        $this->instance[$classType] = $closeFun;
            }
            //調(diào)用容器綁定類方法

             public function make($classType,$params = []){

                //通過數(shù)組賦值的匿名函數(shù)返回類對象

                         return call_user_func_array($this->instance[$classType],$params);
            }

     }
        //聲時一個容器實例

        $container = new Container;

        //綁定Db

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

        //綁定Validate

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

        //綁定User $container->bind('User',function(){ return new User; });

        <?php

                require 'container.php';
                class Facade{

                             //聲明容器類變量

                             public static $container = null;

                             //構(gòu)造容器類賦值

                             public static function init(Container $container){
                                            self::$container = $container;

                             }
                            public static function conn($databaseType){
                            //返回Db類conn方法

                             return self::$container->make('Db')->getType($databaseType)->conn();

                            }
                            public static function check($username,$password){
                            //返回Validate類check方法

                             return self::$container->make('Validate')->getValid($username,$password)->check(); }
                            public static function login($username,$password){
                            //返回User類display方法

                             return self::$container->make('User')->getUser($username,$password)->login();

                             }
        }
    //Facade類初始化容器

        Facade::init($container);

    //Facade類驗證數(shù)據(jù)庫類型

        echo Facade::conn('mysql').'<br>';

    //Facade類驗證數(shù)據(jù)庫用戶和密碼

        echo Facade::check('root','root').'<br>';

    //Facade類驗證登錄用戶和密碼

        echo Facade::login('admin','admin').'<br>';

Correcting teacher:天蓬老師Correction time:2019-11-01 14:41:21
Teacher's summary:這是用最簡單的方式在模擬, 實際項目中, 遠(yuǎn)比這個復(fù)雜

Release Notes

Popular Entries