Réponses:
Utilisez hook_module_implements_alter()
plutôt que de modifier le poids du module.
Exemple d'implémentation de 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()
(en fait, cela m'est arrivé, je pense avec l'un des modules i18n).
Il y a maintenant une API pour cela:
module_set_weight('your_module_name', 10);
Vous pouvez également implémenter le crochet comme l'a dit Ivan Jaros, ce qui permet un contrôle plus fin (par exemple, premier pour un crochet, dernier pour un autre, après un module spécifique pour le troisième). Mais le poids du module devrait également fonctionner.
Si vous utilisez des configurations d'importation / exportation, vous pouvez modifier le poids du module dans le core.extension.yml
fichier, le nombre après le nom du module est le poids.
Vous pouvez utiliser le module de poids des modules:
Parfois, nous devons modifier l'ordre d'exécution des modules, et certaines personnes peuvent écrire un code qui exécute la requête pour modifier le poids d'un module dans la table système, certains peuvent aller directement à son client SQL préféré et modifier directement l'enregistrement. Ce module fournit une interface pour réorganiser le poids des modules.
Divulgation: Je suis le responsable du module Modules Weight .