Magento 2: মডিউল সিকোয়েন্স প্রভাব লেআউট XML লোডিং অর্ডার পরিচালনা করে?


11

ফাইলগুলিতে থাকা <sequence/>ট্যাগগুলি কি module.xmlম্যাসেজো XML ফাইলগুলিতে লেআউট হ্যান্ডেল প্রক্রিয়াকরণের আদেশটিকে প্রভাবিত করবে? আমার প্রাথমিক গবেষণা বলছে কোন , কিন্তু যে ভুল বলে মনে হয় তাই আমি / নিশ্চিতকরণ জন্য অপেক্ষায় থাকবো প্রমাণ যে তারা করবেন না (প্রমাণ == সোর্স কোড পয়েন্ট যেখানে বিন্যাস হ্যান্ডেল XML ফাইল পাথ তৈরি এবং লোড করা হয়)

যদি সিক্যুয়েন্স ট্যাগগুলি XML ফাইল লোডিং ক্রমের লেআউটটিকে পরিচালনা করে না - তবে এই ফাইলগুলি লোড হওয়া মডিউল ক্রমের পরিবর্তন করার কোনও উপায় আছে কি?

আমি যে নির্দিষ্ট সমস্যাটি সমাধান করার চেষ্টা করছি তা হ'ল যদি ধারকটি পৃষ্ঠাতে যুক্ত হওয়ার আগে আমার কাছে নিম্নলিখিত লোড হয়

    <referenceContainer name="product.info.media">    
        <action method="unsetChild">
            <argument name="block" xsi:type="string">product.info.media.image</argument>
        </action>
    </referenceContainer>

ম্যাজেন্টো বারফ

উত্তর:


17

এর ক্রমটির module.xmlউপর একটি প্রভাব রয়েছে app/etc/config.php। আপনি যখন চালান তখন এই ফাইলটি আপডেট হয়ে bin/magento module:enable Vendor_ModuleNameযায় যদি আপনি যদি সিকোয়েন্স যুক্ত / পরিবর্তন করেন তবে আমি আপনার মডিউলটি অক্ষম করার এবং আবার এটি সক্ষম করার পরামর্শ দিই। আপনার module.xmlফাইল আপডেট করা এবং আপনার ক্যাশে সাফ করা এখানে যথেষ্ট নয়, আপনাকে বিকাশের সময় ক্রম পরিবর্তনগুলি দেখতে ম্যাজেন্টোকে পেতে একটি পুরো disableপুনরায় enableচক্র করতে হবে।

config.phpফাইলটিতে মডিউলগুলির বাছাইয়ের ক্রমটি এন্টনের মন্তব্য অনুসারে অন্য সমস্ত কনফিগারেশন ফাইল লোড করার জন্য ব্যবহৃত হয়

সেই মন্তব্যে কোড অবস্থানগুলি কিছুটা পুরানো। এই সিক্যুয়েন্সটি https://github.com/magento/magento2/blob/2.0.2/lib/ অভ্যন্তরীণ / ম্যাজেন্টো / ফ্রেমওয়ার্ক / মডুল / মোডুলেলিস্ট / লোডার.এফপি#L131 বাছাইয়ের জন্য কোড

আপডেট 2:

অ্যাপ্লিকেশন / ইত্যাদি / di.xml

<type name="Magento\Framework\View\Model\Layout\Merge">
    <arguments>
        <argument name="fileSource" xsi:type="object">Magento\Framework\View\Layout\File\Collector\Aggregated\Proxy</argument>
        <argument name="pageLayoutFileSource" xsi:type="object">pageLayoutFileCollectorAggregated</argument>
        <argument name="cache" xsi:type="object">Magento\Framework\App\Cache\Type\Layout</argument>
    </arguments>
</type>

যা একই di.xml তে একটি পৃষ্ঠা বিন্যাস ফাইল সংগ্রাহককে উল্লেখ করে

<virtualType name="pageLayoutFileCollectorAggregated" type="Magento\Framework\View\Layout\File\Collector\Aggregated">
    <arguments>
        <argument name="baseFiles" xsi:type="object">pageLayoutFileSourceBaseSorted</argument>
        <argument name="themeFiles" xsi:type="object">pageLayoutFileSourceThemeSorted</argument>
        <argument name="overrideBaseFiles" xsi:type="object">pageLayoutFileSourceOverrideBaseSorted</argument>
        <argument name="overrideThemeFiles" xsi:type="object">pageLayoutFileSourceOverrideThemeSorted</argument>
    </arguments>
</virtualType>

যেটি আমাদের কাছে আগ্রহ দেখায় সেটি pageLayoutFileSourceBaseSortedএখনও একই di.xML এ রয়েছে

<virtualType name="pageLayoutFileSourceBaseSorted" type="Magento\Framework\View\File\Collector\Decorator\ModuleDependency">
    <arguments>
        <argument name="subject" xsi:type="object">pageLayoutFileSourceBaseFiltered</argument>
    </arguments>
</virtualType>

Magento\Framework\View\File\Collector\Decorator\ModuleDependency নিম্নলিখিত বাছাই করে

protected function getModulePriority($moduleName)
{
    if ($this->orderedModules === null) {
        $this->orderedModules = $this->moduleList->getNames();
    }
    $result = array_search($moduleName, $this->orderedModules);
    // Assume unknown modules have the same priority, distinctive from known modules
    if ($result === false) {
        return -1;
    }
    return $result;
}

পরিবর্তে উপরের লোডারটি উল্লিখিত উপায়ে ব্যবহার moduleListকরে Magento\Framework\Module\ModuleListযার ভিত্তিতে রয়েছে


2
ভাল তথ্যের জন্য +1, তবে এটি একটি উন্মুক্ত প্রশ্ন বলে মনে হচ্ছে - কনফিগারেশন ফাইল হিসাবে বিবেচিত লেআউট হ্যান্ডেল এক্সএমএল ফাইলগুলি, বা এগুলি অন্য কিছু
অ্যালান ঝড়

3
গুগল বংশধরগণ জন্য মন্তব্য - কনফিগারেশন লোড করে ক্রম সেটিংস আনুগত্য ক্রম একটি ক্যাশে পরিষ্কার সেট করা হয় না, একটি মডিউল তার সেট সক্ষম / অক্ষম করুন।
অ্যালান ঝড়

1
জীবন রক্ষাকারী! আমি খেয়াল করেছিলাম যে এটি ঘটছে before
আন্তন এভার্স

এবং থিমের লেআউট-এক্সএমএল (অ্যাপ / ডিজাইন / আশ্চর্যজনক থিম / ডিফল্ট / ..) কী হবে? এই সমস্ত লে-আউট-এক্সএমএলটি কি এখানে বর্ণিত একই ক্রমে বিক্রেতার এবং অ্যাপ্লিকেশন / কোডের অবস্থানগুলিতে ডি মডিউলগুলির পরে একত্রিত হয়েছে?
ক্লাস ভ্যান ডের ওয়েইজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.