Anpassen des Modulgewichts: Auf welche Risiken und Dinge ist zu achten?


14

Heute habe ich das Gewicht eines benutzerdefinierten Moduls von mir geändert, um die Ausführungsmethode von Hooks (hook_form_alter) zu ändern. Ich habe das Gewicht auf einen Wert geändert, der schwerer ist als das Gewicht des anderen Moduls. Dies schien das Sicherste zu sein, anstatt es mit einem "zufälligen" Gewicht von 100 zu belegen. Das ursprüngliche Modul ist ein Kernmodul (Übersetzung), also hoffe ich, dass ich nichts kaputt gemacht habe.

Worauf ist beim Anpassen des Gewichts eines Moduls zu achten, um die Ausführungsreihenfolge der Haken zu ändern, und welche Risiken sind damit verbunden?

Was ich mir vorstellen kann: unerwünschtes Verhalten durch hohe Kopplung.

Antworten:


10

Nun, es gibt keine generelle Antwort darauf, es hängt wirklich von den Modulen ab. Einige der Dinge, die ich in Betracht ziehen würde (In Drupal 6):

  • hook_boot wird aufgerufen, wenn Module geladen werden. Es wurden also nur Module aufgenommen, die leichter sind als Sie. Wenn Sie sich auf Code eines anderen Moduls verlassen, das schwerer ist als Sie, müssen Sie ihn manuell einfügen.

  • Wenn ein Modul standardmäßig eine andere Gewichtung als 0 hat, bedeutet dies, dass dieses Modul diese Gewichtung speziell festgelegt hat. Überprüfen Sie die .install-Datei des Moduls, da dies höchstwahrscheinlich der Ort ist, an dem das Gewicht festgelegt wird - und mit etwas Glück wird ein Kommentar angezeigt, der erklärt, warum! (Dies kann auch dann zutreffen, wenn das Gewicht Null ist.)

  • Module, die entweder ein sehr geringes oder ein sehr hohes Gewicht einstellen, haben normalerweise einen guten Grund dafür ( müssen vor / nach allem anderen ausgeführt werden). In der Regel tun dies Entwicklungsmodule, aber auch andere. Bewahren Sie diese Module als Erstes / Letztes auf, es sei denn, Sie haben einen guten Grund dafür.

  • Schauen Sie sich die Abhängigkeiten des Moduls an (diejenigen, von denen das Modul abhängt, und diejenigen, die von diesem Modul abhängen). Halten Sie diese Module im Idealfall in der gleichen Reihenfolge. Wenn Sie die Reihenfolge ändern müssen, können Sie die Folgen nur anhand des Codes nachvollziehen.

  • Verwenden Sie gesunden Menschenverstand. Informationen, die von einem Modul hinzugefügt werden (z. B. einem Knoten beim Laden eines Knotens), sind für Module, die leichter sind als dieses, nicht verfügbar.


1
Irgendwelche Unterschiede für Drupal 7?
DrCord

3

Ich glaube ehrlich gesagt nicht, dass es eine allgemeine Antwort darauf gibt. Was passiert, wenn Sie das Modulgewicht anpassen, hängt stark von den beteiligten Modulen ab. Wenn Sie das Gewicht zu vieler Module ändern, könnte dies zu unvorhersehbaren Ergebnissen führen.

Wenn Sie jedoch Ihr Risiko minimieren möchten, müssen Sie genau überlegen, was Ihr Modul tut. Welche Daten ändern Sie? Nehmen Sie größere Änderungen an den Datenstrukturen vor oder sind Änderungen kosmetischer? Das größte Risiko besteht meiner Meinung nach darin, vorhandene Daten auf unerwartete Weise zu ändern. Wenn Sie vorsichtig sind und die Modulgewichte sparsam anpassen, sollten Sie nicht zu viele Probleme haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.