내 연구에 따르면, 내가 찾은 것은 다음과 같습니다.
인수 해석기는 다음에 작성됩니다 lib\internal\Magento\Framework\App\ObjectManagerFactory.php
.
protected function createArgumentInterpreter(
\Magento\Framework\Stdlib\BooleanUtils $booleanUtils
) {
$constInterpreter = new \Magento\Framework\Data\Argument\Interpreter\Constant();
$result = new \Magento\Framework\Data\Argument\Interpreter\Composite(
[
'boolean' => new \Magento\Framework\Data\Argument\Interpreter\Boolean($booleanUtils),
'string' => new \Magento\Framework\Data\Argument\Interpreter\StringUtils($booleanUtils),
'number' => new \Magento\Framework\Data\Argument\Interpreter\Number(),
'null' => new \Magento\Framework\Data\Argument\Interpreter\NullType(),
'object' => new \Magento\Framework\Data\Argument\Interpreter\DataObject($booleanUtils),
'const' => $constInterpreter,
'init_parameter' => new \Magento\Framework\App\Arguments\ArgumentInterpreter($constInterpreter),
],
\Magento\Framework\ObjectManager\Config\Reader\Dom::TYPE_ATTRIBUTE
);
// Add interpreters that reference the composite
$result->addInterpreter('array', new \Magento\Framework\Data\Argument\Interpreter\ArrayType($result));
return $result;
}
이 코드에서 인수의 type 속성에 따라 다른 인터프리터가 사용됨을 분명히 알 수 있습니다 \Magento\Framework\ObjectManager\Config\Reader\Dom::TYPE_ATTRIBUTE
.
- 부울 =>
\Magento\Framework\Data\Argument\Interpreter\Boolean
- 문자열 =>
\Magento\Framework\Data\Argument\Interpreter\StringUtils
- 숫자 =>
\Magento\Framework\Data\Argument\Interpreter\Number
- null =>
\Magento\Framework\Data\Argument\Interpreter\NullType
- 객체 =>
\Magento\Framework\Data\Argument\Interpreter\DataObject
- const =>
\Magento\Framework\Data\Argument\Interpreter\Constant
- init_parameter =>
\Magento\Framework\App\Arguments\ArgumentInterpreter
(이것은\Magento\Framework\Data\Argument\Interpreter\Constant
생성자 매개 변수가 아닌 as 매개 변수를 사용합니다)
또한 배열 유형을 처리하기 위해 추가 인터프리터가 즉시 추가됩니다.
- 배열 =>
\Magento\Framework\Data\Argument\Interpreter\ArrayType
참고 : init_parameter
유형은 app\code\Magento\Store\etc\di.xml
일부 상수를 시작하는 데에만 사용되는 것처럼 보입니다 .
<argument name="xFrameOpt" xsi:type="init_parameter">Magento\Framework\App\Response\XFrameOptPlugin::DEPLOYMENT_CONFIG_X_FRAME_OPT</argument>
...
<argument name="isCustomEntryPoint" xsi:type="init_parameter">Magento\Store\Model\Store::CUSTOM_ENTRY_POINT_PARAM</argument>
...
<argument name="runMode" xsi:type="init_parameter">Magento\Store\Model\StoreManager::PARAM_RUN_TYPE</argument>
<argument name="scopeCode" xsi:type="init_parameter">Magento\Store\Model\StoreManager::PARAM_RUN_CODE</argument>
static
대신 하여 대신 사용해 보셨습니까const
? 나는 작동 유형 찾을 수 없습니다static
:-( 내 수업에 필드