Home >Backend Development >PHP Tutorial >怎么修改laravel的config下面的配置文件?

怎么修改laravel的config下面的配置文件?

WBOY
WBOYOriginal
2016-06-06 20:20:481898browse

目前想到的办法是把它当成文件读取然后进行修改,但是不知道怎么进行下去。

除此之外,有什么比较优雅的办法吗?或者有没有现成的包可以用?

Add:
我的意思是比如我在系统后台有个模块是系统设置,我怎么把从request或者其他地方获得的配置选项写入某一个指定的文件,比如config/app.php。有没有什么比较好方法或者现成的包推荐?

回复内容:

目前想到的办法是把它当成文件读取然后进行修改,但是不知道怎么进行下去。

除此之外,有什么比较优雅的办法吗?或者有没有现成的包可以用?

Add:
我的意思是比如我在系统后台有个模块是系统设置,我怎么把从request或者其他地方获得的配置选项写入某一个指定的文件,比如config/app.php。有没有什么比较好方法或者现成的包推荐?

到没有接触过类似于这样的库,不过可以提供一个思路,我觉得楼主的意思是要加入一个策略,并且后台可以配置,当request过来的时候,优先去check一下或者load一下这个配置,我不知道你的controller有没有这样的类设计,如果你用的Laravel5以上,所有你的controller都是继承自Controller

<code>class UserController extends Controller{

}</code>

我的建议是在中间加一个基类,比如叫BaseController,而你的controller都继承自BaseController

<code>class BaseController extends Controller{

}
class UserController extends BaseController{

}</code>

这样的时候,你就可以在BaseController中(可以是construct() 也可以是其他自定义函数都可以 )加入你想要check或者load的那个配置策略了。

希望能解决你的问题。

这种需要经常修改的配置可以放在数据库或者缓存里,例如memcache 和redis等。

不过还是提供个写入 laravel config下面的文件的思路:
laravel下面的配置文件基本是return 一个数组,你可以用这种方法得到符合php语法的数组字符串:

<code>ob_start();
var_export(['abc' => 'efc']);
$arrStr = ob_get_contents();
ob_end_clean();
$config = '<?php ' . PHP_EOL
        . 'return ' . $arrStr;
file_put_contents('config.php', $config);</code></code>

不过这样始终不太安全,建议真要写入文件的话还是用json做配置吧

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn