• 理解Facade门面


    理解Facade门面

    标签(空格分隔): php

    tp5中的Facade

    门面(Facade)
    门面为容器中的类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,你可以为任何的非静态类库定义一个facade类。
    
    <?php
    
    
    /**
     * @method static get(string $string, string $string1)
     */
    class Config extends Facade
    {
        public static function getFacadeClass()
        {
            return 'Config2';
        }
    }
    
    class Facade {
    
        public static function getFacadeClass()
        {}
    
        /**
         * @return mixed
         */
        public static function createFacade()
        {
            // 实现 Ioc
            $class = static::getFacadeClass();
            return new $class;
        }
    
        /**
         * @param string $name 方法名
         * @param array $arguments 方法参数
         * @return mixed
         */
        public static function __callStatic($name, $arguments)
        {
            
            return call_user_func_array([static::createFacade(), $name], $arguments);
        }
    }
    
    
    class Config2
    {
        public $config= [];
    
        public function __construct()
        {
           $this->config = require('../config/app.php');
        }
    
    
        public function get($key, $value=null)
        {
            if (isset(($this->config)[$key])) {
                return ($this->config)[$key];
            }
            return $value;
        }
    }
    
    $var = Config::get("menu_url_map");
    var_dump($var);
  • 相关阅读:
    python 展开嵌套列表
    python对字典排序
    CentOS7 Network Setting
    华为交换机Stelnet ssh/rsa验证模式下16进制公钥生成方法
    CentOS7 DHCP自动获取IP地址
    拔掉网线才能登陆域
    Exchange日志清理
    Exchange日志
    EMS邮箱数据库常用命令(二)
    EMS邮箱数据库常用命令(一)
  • 原文地址:https://www.cnblogs.com/yanweifeng/p/12603343.html
Copyright © 2020-2023  润新知