后端开发|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
调用时执行