ম্যাগনটো 2 থেকে এক্সএমএল-তে সমস্ত অনুমোদিত `xsi: টাইপ` মানগুলি কী


20

ম্যাজেন্টো 2-তে (প্রায়) এক্সএমএল ফাইলগুলিতে তালিকাভুক্ত সমস্ত যুক্তিগুলির একটি বৈশিষ্ট্য 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আমার শ্রেণিতে একটি ক্ষেত্রের জন্য কাজ করে এমন কোনও সন্ধান আমি খুঁজে পাচ্ছি না :-(
পেডি

না আমি করিনি। আমি এমনকি সাধ্য নেই যে মনে করি নাstatic
মারিয়াস

উত্তর:


36

আমি <xs:extension base="argumentType"* .xsd ফাইলগুলি পরীক্ষা করে সমস্ত প্রকার খুঁজে পেয়েছি ।

lib/internal/Magento/Framework/Data/etc/argument/types.xsd, এগুলি বেস প্রকারগুলি :

  • " অ্যারে "
  • " স্ট্রিং "
  • " বুলিয়ান "
  • " অবজেক্ট "
  • " কনফিগারযোগ্যবজেক্ট "
  • " সংখ্যা "
  • " নাল "

lib/internal/Magento/Framework/ObjectManager/etc/config.xsd, di.xm l ফাইলে পাওয়া যাবে:

  • " অবজেক্ট "
  • " init_parameter "
  • " কনস্ট্যান্ট "

lib/internal/Magento/Framework/View/Layout/etc/elements.xsd, লেআউট * .xML ফাইলগুলিতে পাওয়া যাবে:

  • " বিকল্প "
  • " ইউআরএল "
  • " সহায়ক "

Magento/Ui/etc/ui_components.xsd, UI উপাদান '* .xML ফাইলগুলিতে পাওয়া যাবে:

  • " ধ্রুবক "
  • " ইউআরএল "

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
  • কনস্ট =>\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>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.