Antworten:
Verwenden Sie das Modulgewicht, hook_module_implements_alter()anstatt es zu ändern.
Beispielimplementierung aus 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()(eigentlich mir passiert ist , denke ich , mit einem der i18n Module).
Dafür gibt es jetzt eine API:
module_set_weight('your_module_name', 10);
Sie können den Hook auch implementieren, wie Ivan Jaros sagte, was eine feinkörnigere Steuerung ermöglicht (z. B. zuerst für einen Hook, zuletzt für einen anderen, nach einem bestimmten Modul für den dritten). Das Modulgewicht sollte aber auch funktionieren.
Wenn Sie Import / Export-Konfigurationen verwenden, können Sie das Gewicht des Moduls in der core.extension.ymlDatei ändern. Die Nummer nach dem Namen des Moduls ist das Gewicht.
Sie können die Verwendung Module Gewicht Modul:
Manchmal müssen wir die Ausführungsreihenfolge der Module ändern, und einige Leute könnten einen Code schreiben, der die Abfrage ausführt, um das Gewicht eines Moduls in der Systemtabelle zu ändern. Einige gehen direkt zu seinem bevorzugten SQL-Client und ändern den Datensatz direkt. Dieses Modul bietet eine Schnittstelle zum Neuordnen des Modulgewichts.
Offenlegung: Ich bin der Betreuer des Moduls Modules Weight .