hyperf 配置中心使用 etcd 获取不到 string 值问题
在配置 hyperf 使用 etcd 作为配置中心时,遇到了如下问题:
$ttl = config('hb.app.ttl'); // 1800 $mode = config('hb.app.mode'); // null
原因分析
经过代码检查,发现 hyperf configetcd 驱动默认采用 json 打包器对 etcd 中的数据进行打包。因此,在 etcd 中保存的 string 类型数据,在获取时需要以 json 格式进行解析。
解决方案
修改 hyperf 配置中心配置,将数据打包器从 jsonpacker 修改为 phppacker:
'packer' => hyperf\utils\packer\phppacker::class,
示例:
$ttl = config('hb.app.ttl'); // 1800 $mode = config('hb.app.mode'); // "fast"
进一步优化
为了更好地支持不同数据类型,可以考虑在 etcd 中使用类似 type 字段来指示数据类型,并在代码中进行相应处理。
以上就是Hyperf配置中心Etcd:如何正确获取String类型配置值?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号