La sequenza in module.xml
ha un impatto su app/etc/config.php
. Questo file viene aggiornato quando lo esegui, bin/magento module:enable Vendor_ModuleName
quindi se hai aggiunto / modificato sequenze ti suggerisco di disabilitare il modulo e quindi riattivarlo. Aggiornare il module.xml
file e svuotare la cache non è abbastanza qui, dovrai fare un disable
riciclo enable
completo per far vedere a Magento i cambiamenti di sequenza durante lo sviluppo.
L'ordinamento dei moduli nel config.php
file 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 è pageLayoutFileSourceBaseSorted
ancora 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 moduleList
si basa su Magento\Framework\Module\ModuleList
quale a sua volta utilizza il Caricatore menzionato sopra.