如何在laravel框架中动态修改config里面值?

第一次使用laravel在做商城后台时,对于composer下来的支付包时自带了config配置的参数,想在后台实现管理动态修改这些支付的配置信息。

laravel框架中动态修改config里面值
翻阅了百度的各种文档,尝试了一些办法后。缓存无效,数据库存储不现实;

laravel框架中动态修改config里面值
后面想着本身config是一个php文件,通过storage去存储文件,在通过函数去获取文件的值,但是这种方法好像比较low,想问问大家有什么建议和处理的方法?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

可以用var_export 尝试下, 需要新建立一个配置文件,然后用来存储后台动态配置。

function getConfig()
{
    // 使用laravel读取这个位置文件
    $config = [
       'debug' => true,
       'web_name' => '测试配置'
    ];
    return $config;
}

function setConfig($name, $value)
{
    $config = getConfig();
    $config[$name] = $value;
  file_put_contents('/config/path/config.php', "<?php \n return ".var_export($config, true)  . ";");

}

setConfig('topic_url', 'https://learnku.com/laravel/t/50682');

示例截图:

file

1周前 评论
Wangguv2019 (楼主) 1周前
讨论数量: 7

可以在获取后台配置后动态设置配置值:

config(['pay.alipay.appid' => 'xxx']);
1周前 评论
Wangguv2019 (楼主) 1周前
00x00 1周前
Wangguv2019 (楼主) 1周前
ORH (作者) 1周前

如果是多商户的话,我建议把配置写入数据库

1周前 评论

想在后台动态修改配置,那配置就存到数据库,,,

1周前 评论

以前写过一个包来解决这个问题,不过场景有些许差异,我们涉及的是多系统交互,共用配置,动态更新,你可以参考 github.com/crcms/file-config

1周前 评论
Wangguv2019 (楼主) 1周前

可以用var_export 尝试下, 需要新建立一个配置文件,然后用来存储后台动态配置。

function getConfig()
{
    // 使用laravel读取这个位置文件
    $config = [
       'debug' => true,
       'web_name' => '测试配置'
    ];
    return $config;
}

function setConfig($name, $value)
{
    $config = getConfig();
    $config[$name] = $value;
  file_put_contents('/config/path/config.php', "<?php \n return ".var_export($config, true)  . ";");

}

setConfig('topic_url', 'https://learnku.com/laravel/t/50682');

示例截图:

file

1周前 评论
Wangguv2019 (楼主) 1周前

取配置自己初始化就行了

$alipay = Pay::alipay($this->config)->web($order);
1周前 评论

我记得yansongda的支付包是可以传配置项的,但是我写支付中心的时候用过这个包,当时是单例出来一个他的实例 然后分发 获取配置 ,不要随便去修改laravel的配置文件,如果并发高了你就知道没你好果汁吃了

1周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!