Urutan dalam module.xmlberdampak pada app/etc/config.php. File ini akan diperbarui ketika Anda menjalankannya bin/magento module:enable Vendor_ModuleNamejadi jika Anda telah menambahkan / mengubah urutan Saya sarankan menonaktifkan modul Anda dan kemudian mengaktifkannya kembali. Memperbarui module.xmlfile dan menghapus cache tidak cukup di sini, Anda harus melakukan daur disableulang penuh enableuntuk membuat Magento melihat perubahan urutan selama pengembangan.
Urutan modul di config.phpfile kemudian digunakan untuk semua memuat file konfigurasi lainnya sesuai komentar Anton di sini.
Lokasi kode dalam komentar itu agak ketinggalan zaman. Ini adalah kode untuk pengurutan berurutan https://github.com/magento/magento2/blob/2.0.2/lib/internal/Magento/Framework/Module/ModuleList/Loader.php#L131
Pembaruan 2:
app / etc / 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>
yang mereferensikan pengumpul file tata letak halaman di di.xml yang sama
<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>
yang terlihat menarik bagi kami pageLayoutFileSourceBaseSortedmasih di di.xml yang sama
<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 melakukan penyortiran berikut
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;
}
di mana moduleListdidasarkan pada Magento\Framework\Module\ModuleListyang pada gilirannya menggunakan cara Loader yang disebutkan di atas.