Risposte:
Utilizzare hook_module_implements_alter()
anziché modificare il peso del modulo.
Implementazione di esempio da content_translation.module :
function content_translation_module_implements_alter(&$implementations, $hook) {
switch ($hook) {
// Move our hook_entity_type_alter() implementation to the end of the list.
case 'entity_type_alter':
$group = $implementations['content_translation'];
unset($implementations['content_translation']);
$implementations['content_translation'] = $group;
break;
// Move our hook_entity_bundle_info_alter() implementation to the top of the
// list, so that any other hook implementation can rely on bundles being
// correctly marked as translatable.
case 'entity_bundle_info_alter':
$group = $implementations['content_translation'];
$implementations = [
'content_translation' => $group,
] + $implementations;
break;
}
}
hook_module_implements_alter()
(in realtà mi è successo, penso con uno dei moduli i18n).
C'è un'API per questo ora:
module_set_weight('your_module_name', 10);
Puoi anche implementare il gancio come ha detto Ivan Jaros, il che consente un controllo più accurato (ad es. Primo per un gancio, ultimo per un altro, dopo un modulo specifico per il terzo). Ma dovrebbe funzionare anche il peso del modulo.
Se si utilizzano le configurazioni di importazione / esportazione, è possibile modificare il peso del modulo nel core.extension.yml
file, il numero dopo il nome del modulo è il peso.
È possibile utilizzare il modulo di peso Moduli :
A volte abbiamo bisogno di modificare l'ordine di esecuzione dei moduli e alcune persone potrebbero scrivere un codice che esegue la query per modificare il peso di un modulo nella tabella di sistema, qualcuno potrebbe andare direttamente al suo client SQL preferito e modificare direttamente il record. Questo modulo fornisce un'interfaccia per riordinare il peso dei moduli.
Informativa: sono il manutentore del modulo Moduli Peso .