1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php 设计问题 写了一个Config类 读取配置文件

php 设计问题 写了一个Config类 读取配置文件

时间:2020-05-27 03:24:48

相关推荐

php 设计问题 写了一个Config类 读取配置文件

后端开发|php教程

php

后端开发-php教程

我觉得把loadConfigFiles放在Config类中不太好,这样用户就会使用这个方法,但是我得实现配置文件的加载,怎么把类内部的$items实现填满吗?

服务器管理软件源码,vscode炫酷界面,ubuntu装载vhd,tomcat修改端口后,如何把sqlite导出来,如何用爬虫下载vip电子书,php 获取img,服务端渲染 seo,悦换流量网站,微页修改模板lzw

<?php/** * User: 火蜥蜴制作 * Date: /8/27 * Time: 8:19 * 配置类 */namespace Core;class Config { // All of the configuration items. private static $items = []; private static $isLoaded = false; /*** 获取配置* @param $key 如"database.dbname"* @param null $default* @return mixed*/ public static function get($key, $default = null) { $params = array_filter(explode(., $key)); $prefix = $params[0]; $key = $params[1]; if(array_key_exists($key, self::$items[$prefix])) { return self::$items[$prefix][$key]; } else { return $default; } } /*** 设置配置* @param $key* @param $value*/ public function set($key, $value) { $params = array_filter(explode(., $key)); $prefix = $params[0]; $key = $params[1]; self::$items[$prefix][$key] = $value; } /*** 加载所有配置文件*/ public static function loadConfigFiles() { if(!self::$isLoaded) { $pattern = __DIR__ . "/../config/*.php"; $files = glob($pattern); foreach ($files as $file) {$prefix = basename($file, ".php");self::$items[$prefix] = require($file); } self::$isLoaded = true; } }}

博客源码 jsp,vscode暗黑主题,ubuntu neon,tomcat 开源的,苹果sqlite编辑器,wordpress好用的会员插件,前端ui哪个框架比较好,小爬虫动物图片卡通,文本数据 php,中山seo服务价格,免费播放电影的网站源码,网页模板.net,app客户模板lzw

回复内容:

Android彩票类源码,ubuntu挂载网络磁盘,虚拟机打开tomcat,爬虫店毒蛇,php表单重复提交技巧,seo 排序lzw

我觉得把loadConfigFiles放在Config类中不太好,这样用户就会使用这个方法,但是我得实现配置文件的加载,怎么把类内部的$items实现填满吗?

<?php/** * User: 火蜥蜴制作 * Date: /8/27 * Time: 8:19 * 配置类 */namespace Core;class Config { // All of the configuration items. private static $items = []; private static $isLoaded = false; /*** 获取配置* @param $key 如"database.dbname"* @param null $default* @return mixed*/ public static function get($key, $default = null) { $params = array_filter(explode(., $key)); $prefix = $params[0]; $key = $params[1]; if(array_key_exists($key, self::$items[$prefix])) { return self::$items[$prefix][$key]; } else { return $default; } } /*** 设置配置* @param $key* @param $value*/ public function set($key, $value) { $params = array_filter(explode(., $key)); $prefix = $params[0]; $key = $params[1]; self::$items[$prefix][$key] = $value; } /*** 加载所有配置文件*/ public static function loadConfigFiles() { if(!self::$isLoaded) { $pattern = __DIR__ . "/../config/*.php"; $files = glob($pattern); foreach ($files as $file) {$prefix = basename($file, ".php");self::$items[$prefix] = require($file); } self::$isLoaded = true; } }}

构造方法里调用不就可以了

如果实在不想让使用者看到这个方法的话,我觉得可以变为private然后在将get方法变为:

public static function get($key, $default = null) { $params = array_filter(explode(., $key)); $prefix = $params[0]; $key = $params[1]; if(array_key_exists($key, self::$items[$prefix])) { return self::$items[$prefix][$key]; } else if (self::$isLoaded) { return $default; } else { self::loadConfigFiles(); } }

把加载的过程转移给第一次get调用时执行

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。