Tôi thấy trong các di.xml
tệp từ lõi có một số đối số có kiểu init_parameter
nhưng các giá trị của các tham số đều là hằng số.
<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>
hoặc cái này
<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>
và nhiều người khác.
Nhưng từ những gì tôi thấy trong trình thông dịch liên quan đến init_parameter
, trình thông dịch liên tục được sử dụngMagento\Framework\App\Arguments\ArgumentInterpreter::evaluate
public function evaluate(array $data)
{
return ['argument' => $this->constInterpreter->evaluate($data)];
}
Nhưng kết quả hơi khác so với 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']);
}
Ai đó có thể giải thích làm thế nào init_parameter
loại hoạt động và làm thế nào mọi thứ xảy ra dưới mui xe?