Die Reihenfolge in module.xmlhat einen Einfluss auf app/etc/config.php. Diese Datei wird beim Ausführen aktualisiert. Wenn Sie bin/magento module:enable Vendor_ModuleNamealso Sequenzen hinzugefügt / geändert haben, würde ich vorschlagen, Ihr Modul zu deaktivieren und es dann wieder zu aktivieren. Aktualisieren der module.xmlDatei und das Leeren des Caches nicht genug hier ist, müssen Sie eine vollständige tun disableWieder- enableZyklus Magento zu erhalten Sequenzänderungen während der Entwicklung zu sehen.
Die Sortierreihenfolge der Module in der config.phpDatei 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>
pageLayoutFileSourceBaseSortedDerjenige , 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 moduleListbasiert darauf, Magento\Framework\Module\ModuleListwelcher wiederum den oben erwähnten Loader verwendet.