本篇文章和大家了解一下thinkphp5.1支不支持extra。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 thinkphp5.1不支持extra,thinkphp5.1中config函数已经取消了extra的支持;可以将“function editConfig($arr = [] ,$user=’admin’){…}”代码贴入app或者application文件夹内的common.php中即可全局使用该函数。
thinkphp5.1是否支持extra?不支持。ThinkPHP5.1 使用文件作为配置文件ThinkPHP5.1 使用文件作为配置文件的踩坑记录使用Tp5.1(版本限定)作为App后台免费云主机域名的时候,用户频繁的请求,每一步操作都要访问数据库,每一步操作都要访问到 config 配置表,频繁的读取使数据库压力山大,在后台监控流量,发现将近30%的请求都是在访问config表,所以决定将配置固话到本地,使用文件作为配置.但是查询多方资料,未能找到可以静态修改配置,Tp5.1提供的Config::set()函数只能动态的修改配置文件,而且仅限于本控制器内,实际配置文件并没有改变,这显然不符合我们的要求.经查询多方资料后,发现这篇最为靠谱,但是实测无效,进入config函数后,发现Tp5.1中,config函数已经取消了extra的支持,于是乎自己动手改写了一下不多说,直接暴力上 代码.
/** *修改扩展配置文件 *@paramarray$arr需要更新或添加的配置 *@paramstring$user修改人 *@returnbool */ functioneditConfig($arr=[],$user='admin') { if(is_array($arr)){ //获取文件名 $filename='business.php'; //获取配置文件环境变量位置(请确保开启权限,如若报错,请改为绝对路径) $filepath=Env::get('CONFIG_PATH').$filename; //判定配置文件是否存在 if(!file_exists($filepath)){ if(!fopen($filepath,"w")){ return'PermissionError1'; } } //判定权限是否足够 if(!is_writable($filepath)){ return'PermissionError2'; } //遍历整个配置文件 $conf=include$filepath; foreach($arras$key=>$value){ $conf[$key]=$value; } //记录修改者 $time=date('Y/m/dH:i:s'); $str="$value){ if(is_array($value)){ $str.="t'$key'=>[rn"; foreach($valueas$ikey=>$r){ if(is_numeric($ikey)){ $str.="tt'$r',"; $str.="rn"; }else{ $str.="tt'$ikey'=>'$r',"; $str.="rn"; } } $str=rtrim($str,','); $str.="t],"."rn"; }else{ $str.="t'$key'=>'$value',"; $str.="rn"; } } $str.='];'; //关闭文件 $result=file_put_contents($filepath,$str); if($result){ return'success'; }else{ return$result; } }else{ return'error'; } }
将本段代码贴入app(或者application)文件夹内的common.php中,即可全局使用该函数,进行修改配置文件.范例:在网站根目录的config文件夹中建立一个business.php文件(注意读写权限),控制器中调用修改函数
publicfunctionsetBusiness(){ $arr=array( "WEB"=>[ "web_status"=>'1', 1,3,4 ], ); $result=editConfig($arr,'admin123'); if($result=='success'){ echo('修改成功'); }elseif($result=='error'){ echo('修改失败'); } elseif($result=='PermissionError'){ echo('文件无权限,请联系管理员'); } }
config文件夹下的配置文件就会修改为
[ 'web_status'=>'1', '1', '3', '4', ], ];
接下来,在其他控制器中,就可以直接使用config的法则来获取各种配置文件了,具体规则,请移步TP5.1手册配置获取章节.逻辑程序直接从文件读取配置,用户读取配置,可以设置缓存或者直接从redis里读取.以上就是thinkphp5.1支不支持extra的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注百云主机行业资讯频道哦!
这篇“怎么用C语言代码实现猜数字小游戏”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用C语言代码实现猜数字小游戏”文章吧。做任何一个小项目之…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。