您的位置:首页 > 编程语言 > PHP开发

php设计模式---自动加载配置

2016-09-21 19:53 423 查看
<?php

//自动加载配置

class Config implements ArrayAccess

{

    protected $path;

    protected $configs = array();//用来保存已经加载过的配置

    

    public function __construct($path){

        //path为配置文件所在目录

        $this->path = $path;

    }

    public function offsetGet($key){

        if(!isset($this->configs[$key])){

            //先生成一个绝对文件的路径

            $file_path = $this->path . '/' . $key . ".php";

            //判断该文件是否存在

            if(!file_exists($file_path)){//文件不存在,返回-1

                return -1;

            }

            //将配置信息保存到数组中

            $this->configs[$key] = require("$file_path");

        }

        return $this->configs[$key];

    }

    public function offsetSet($key, $value){

        //设置数组的key

        $this->configs[$key] = $value;

    }

    public function offsetExists($key){

        //检测数组的key是否存在

        return isset($this->configs[$key]);//如果存在则返回true,否则返回false

    }

    public function offsetUnset($key){

        //删除数组的key

        if(isset($this->configs[$key])){

            //存在数组的key值,则删除其值,返回true值

            unset($this->configs[$key]);

            return true;

        }else{

            //不存在数组的key值,返回false值

            return false;

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: