Magento2 से xml में सभी अनुमत `xsi: type` मान क्या हैं


20

Magento 2 (लगभग) में xml फ़ाइलों में सूचीबद्ध सभी तर्कों में एक विशेषता है xsi:typeजो यह निर्धारित करती है कि तर्क का मान कैसे व्याख्या किया गया है।
उदाहरण के लिए, di.xmlबैकएंड मॉड्यूल की फ़ाइल में यह है:

<argument name="scopeType" xsi:type="const">Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT</argument>

इसका मतलब है कि तर्क scopeTypeका मूल्य स्थिर का मूल्य हैMagento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT

या यह एक

<argument name="template" xsi:type="string">Magento_Theme::root.phtml</argument>

इसका मतलब यह है कि तर्क templateका मूल्य स्ट्रिंग है Magento_Theme::root.phtml

इस xsi:typeविशेषता के सभी संभावित मूल्य क्या हैं ?


क्या तुमने कभी एक का उपयोग करने की कोशिश की staticएक के बजाय constइस तरह के एक तर्क के लिए? मुझे ऐसा कोई प्रकार नहीं मिल रहा है staticजो मेरी कक्षा में किसी क्षेत्र के लिए काम करता हो :-(
peedee

नहीं, मैंने नहीं किया। मैं भी नहीं लगता कि समर्थन के लिए होती हैstatic
मेरियस

जवाबों:


36

मैंने <xs:extension base="argumentType"* .xsd फ़ाइलों में जाँच करके सभी प्रकारों को पाया है ।

lib/internal/Magento/Framework/Data/etc/argument/types.xsd, ये आधार प्रकार हैं :

  • " सरणी "
  • " स्ट्रिंग "
  • " बूलियन "
  • " वस्तु "
  • " configurableObject "
  • " संख्या "
  • " अशक्त "

lib/internal/Magento/Framework/ObjectManager/etc/config.xsd, di.xm l फाइलों में पाया जा सकता है :

  • " वस्तु "
  • " init_parameter "
  • " कास्ट "

lib/internal/Magento/Framework/View/Layout/etc/elements.xsd, लेआउट * .xml फ़ाइलों में पाया जा सकता है :

  • " विकल्प "
  • " url "
  • " सहायक "

Magento/Ui/etc/ui_components.xsd, UI घटक * .xml फ़ाइलों में पाया जा सकता है :

  • " स्थिर "
  • " url "

14

मेरे शोधों के अनुसार, यहाँ वही है जो मैंने पाया है:

तर्क दुभाषिया में बनाया गया है 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;
}

इस कोड में, आप स्पष्ट रूप से देख सकते हैं कि तर्क के प्रकार के आधार पर विभिन्न दुभाषियों का उपयोग किया जाता है \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
  • नल =>\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पैरामीटर के रूप में लेता है और निर्माता पैरामीटर नहीं)

इसके अलावा सरणी प्रकार को संभालने के लिए मक्खी पर एक अतिरिक्त दुभाषिया जोड़ा जाता है:

  • सरणी =>\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>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.