it-swarm.com.de

Wie kann ich das Gewicht des Moduls während des Modulinstallationsprozesses reduzieren / erhöhen?

Ich entwickle ein benutzerdefiniertes Modul und möchte mein Modulgewicht erhöhen, wenn das Modul installiert ist.

Wie kann ich das erreichen? Weiß sonst jemand, in welcher Tabelle das Gewicht des Moduls gespeichert ist?

8
user15837

Verwenden Sie hook_module_implements_alter() , anstatt das Modulgewicht zu ändern.

Beispielimplementierung von 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;
  }
}
5
user21641

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.

5
Berdir

Sie können das Modul Modulgewicht verwenden:

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 Modulgewicht .

4

Wenn Sie Import/Export-Konfigurationen verwenden, können Sie das Gewicht des Moduls in der Datei core.extension.yml Ändern. Die Nummer nach dem Namen des Moduls ist das Gewicht.

4
skorzh