我di.xml
从核心文件中看到,某些参数具有类型,init_parameter
但是参数的值都是常数。
<type name="Magento\Framework\View\Page\Config\Renderer">
<arguments>
<argument name="appMode" xsi:type="init_parameter">Magento\Framework\App\State::PARAM_MODE</argument>
</arguments>
</type>
或这个
<type name="Magento\Framework\App\Cache\State">
<arguments>
<argument name="banAll" xsi:type="init_parameter">Magento\Framework\App\Cache\State::PARAM_BAN_CACHE</argument>
</arguments>
</type>
还有很多其他
但是从我在与关联的解释器中看到的内容来看init_parameter
,使用了常量解释器Magento\Framework\App\Arguments\ArgumentInterpreter::evaluate
public function evaluate(array $data)
{
return ['argument' => $this->constInterpreter->evaluate($data)];
}
但是结果与 Magento\Framework\Data\Argument\Interpreter\Constant::evaluate
public function evaluate(array $data)
{
if (!isset($data['value']) || !defined($data['value'])) {
throw new \InvalidArgumentException('Constant name is expected.');
}
return constant($data['value']);
}
有人可以解释一下这种init_parameter
类型如何工作以及一切在引擎盖下如何发生吗?