La sequenza in module.xmlha un impatto su app/etc/config.php. Questo file viene aggiornato quando lo esegui, bin/magento module:enable Vendor_ModuleNamequindi se hai aggiunto / modificato sequenze ti suggerisco di disabilitare il modulo e quindi riattivarlo. Aggiornare il module.xmlfile e svuotare la cache non è abbastanza qui, dovrai fare un disablericiclo enablecompleto per far vedere a Magento i cambiamenti di sequenza durante lo sviluppo.
L'ordinamento dei moduli nel config.phpfile viene quindi utilizzato per tutti gli altri file di configurazione caricati come da commento di Anton qui.
Le posizioni del codice in quel commento sono un po 'obsolete. Questo è il codice per l'ordinamento in sequenza https://github.com/magento/magento2/blob/2.0.2/lib/internal/Magento/Framework/Module/ModuleList/Loader.php#L131
Aggiornamento 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>
che fa riferimento a un raccoglitore di file di layout di pagina nello stesso 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>
quello che ci sembra interessante è pageLayoutFileSourceBaseSortedancora nello stesso 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 fa il seguente ordinamento
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;
}
dove moduleListsi basa su Magento\Framework\Module\ModuleListquale a sua volta utilizza il Caricatore menzionato sopra.