Open dongqibin opened 4 years ago
Describe the bug bean.php 中使用config('jaeger.open', 1) 时候,默认值1没有生效
Expected behavior 希望默认值能够生效
Details
bean.php中使用config()函数,默认值无法生效
//app/bean.php 'testLogic' => [ 'class' => \App\Model\Logic\TestLogic::class, 'open' => config('jaeger.open', 1), ],
发现config()函数内部实现在没有Config这个bean的时候.返回了一个字符串.但是该字符串中没有体现默认值.
// vendor/swoft/framework/src/Helper/Functions.php function config(string $key = null, $default = null) { if (!BeanFactory::hasBean('config')) { //此字符串中没有体现默认值 return sprintf('${.config.%s}', $key); } /* @var Config $config */ $config = BeanFactory::getBean('config'); return $config->get($key, $default); }
后面根据字符串获取配置时候.默认值彻底丢了...
// vendor/swoft/framework/src/BeanHandler.php public function getReferenceValue($value) { $values = explode('.', $value); // Remove `config.` prefix, if exists. if (isset($values[0]) && $values[0] === 'config') { array_shift($values); $value = implode('.', $values); } /** @see \Swoft\Config\Config::get() */ return Swoft::getBean('config')->get($value); }
感谢反馈,我们修复下
Describe the bug bean.php 中使用config('jaeger.open', 1) 时候,默认值1没有生效
Expected behavior 希望默认值能够生效
Details