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

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

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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

可以用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

3年前 评论
Wangguv2019 (楼主) 3年前
讨论数量: 7

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

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

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

3年前 评论

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

3年前 评论

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

3年前 评论
Wangguv2019 (楼主) 3年前

可以用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

3年前 评论
Wangguv2019 (楼主) 3年前

取配置自己初始化就行了

$alipay = Pay::alipay($this->config)->web($order);
3年前 评论
陈先生

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

3年前 评论

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