zoukankan      html  css  js  c++  java
  • 理解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);
  • 相关阅读:
    编程总结3
    编程总结2
    编程总结1
    对我影响最深的老师
    自我介绍
    BFC 规则及解决的问题?
    简述 CSS 精灵图原理,及优缺点?
    等高布局、圣杯布局、双飞翼布局的实现原理
    CSS 基本选择器有哪些?
    CSS 引入方式有哪些?
  • 原文地址:https://www.cnblogs.com/yanweifeng/p/12603343.html
Copyright © 2011-2022 走看看