Die Reihenfolge in module.xml
hat einen Einfluss auf app/etc/config.php
. Diese Datei wird beim Ausführen aktualisiert. Wenn Sie bin/magento module:enable Vendor_ModuleName
also Sequenzen hinzugefügt / geändert haben, würde ich vorschlagen, Ihr Modul zu deaktivieren und es dann wieder zu aktivieren. Aktualisieren der module.xml
Datei und das Leeren des Caches nicht genug hier ist, müssen Sie eine vollständige tun disable
Wieder- enable
Zyklus Magento zu erhalten Sequenzänderungen während der Entwicklung zu sehen.
Die Sortierreihenfolge der Module in der config.php
Datei wird dann für alle anderen Konfigurationsdateien verwendet, die gemäß Antons Kommentar hier geladen werden.
Die Codepositionen in diesem Kommentar sind etwas veraltet. Dies ist der Code für die Sequenzsortierung https://github.com/magento/magento2/blob/2.0.2/lib/internal/Magento/Framework/Module/ModuleList/Loader.php#L131
Update 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>
Dies verweist auf einen Seitenlayout-Dateisammler in derselben 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
Derjenige , der für uns von Interesse ist, befindet sich immer noch in derselben 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
führt die folgende Sortierung durch
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;
}
wo moduleList
basiert darauf, Magento\Framework\Module\ModuleList
welcher wiederum den oben erwähnten Loader verwendet.