webman 能不能加个追加配置的功能

hans

在很多框架中, 都能在程序中追加配置, 以 laravel 为例, 可以通过以下代码添加:

config(['app.xxx' => true])

阅读 webman 配置相关的源码之后, 发现现在 webman 并不能支持, 可否加一个这样的功能呢?

1400 4 0
4个回答

walkor 打赏

不清楚什么需求需要动态更改配置?

动态追加/修改配置这个不太好做,因为在webman里有些配置生效后再改动是无效的,例如数据库配置、redis配置、server相关的配置、自定义进程配置等等很多。另外webman多进程的,那么在A进程内存中更改了配置,在B进程是不生效的。支持动态配置后预期会有很多人反馈bug,所以这个功能暂时不考虑增加。

  • hans 2022-04-22

    感谢 walkor 回复. 最近在做一个扩展(A), 实现其中一个功能的时候, 有两个方案:

    其一, 自己实现一套, 比较麻烦.

    其二, 使用其他开发者贡献的扩展(B).

    现在我准备采用第二种方案的时候遇到一个问题, 就是配置信息应该放在那里的问题:

    • 如果是在B的配置文件里面添加, 就需要在安装了A之后, 再到B的配置文件里去添加配置.
    • 如果将配置信息放在A里, 就想到了把A里面的配置信息追加到B配置信息中的思路.

    由于目前B扩展的配置信息不是注入的, 而是在构造函数中直接通过 config 函数获取的, 所以从 B 扩展这边也不好下手.

    如果目前不考虑支持的话, 我再想想其他办法. 感谢.

oscar

系统级别的配置在应用启动后一般来说都不变的。
尤其是常驻内存型的。
像以前FPM的框架,一改文件就能加载随便改没问题。
如果是自己的业务配置,我就缓存起来,想怎么搞就怎么搞。

  • 暂无评论
liziyu

说实话,的确没用过呢!~
不晓得使用场景是怎样的?

  • hans 2022-04-22

    有的程序会将配置全部做成功能进行配置, 保存到数据库. 然后加载的时候先从数据库读取, 再追加到配置中

  • liziyu 2022-04-22

    哦哦明白了,不过这种多了一次数据库查询。

= - =

老大,也许功能是动态修改配置,减少对项目程序的文件修改。我在使用 laravel 开发业务级的扩展包时,都是扩展里面自行修改了配置。

  • 暂无评论
年代过于久远,无法发表回答
×
🔝