Ajuster le poids du module: quels sont les risques et les choses à surveiller?

14

Aujourd'hui, j'ai changé le poids d'un de mes modules personnalisés afin de changer la méthode d'exécution des hooks (hook_form_alter). J'ai changé le poids en 1 valeur plus lourde que le poids de l'autre module. Cela semblait la chose la plus sûre à faire au lieu de lui donner un poids "aléatoire" de 100. Le module d'origine est un module de base (traduction) donc j'espère que je n'ai rien cassé.

Lors du réglage du poids d'un module afin de changer l'ordre d'exécution des hooks, quelles sont les choses à surveiller et quels sont les risques encourus?

Ce à quoi je peux penser: comportement indésirable résultant d'un couplage élevé.

Bart
la source

Réponses:

10

Eh bien, il n'y a pas de réponse générale à cela, cela dépend vraiment des modules. Certaines des choses que je prendrais en considération (dans Drupal 6):

  • hook_boot est appelé lorsque les modules sont chargés; seuls les modules plus légers que vous ont donc été inclus. Si vous comptez sur du code d'un autre module plus lourd que vous, assurez-vous de les inclure manuellement.

  • Si un module a par défaut un poids différent de 0, cela signifie que ce module définit spécifiquement ce poids. Vérifiez le fichier .install de ce module, car c'est probablement là que le poids est défini - et avec un peu de chance, un commentaire expliquera pourquoi! (cela peut être vrai même si le poids est nul)

  • Les modules qui définissent un poids très faible ou très élevé ont généralement une bonne raison ( doivent fonctionner avant / après tout le reste). En règle générale, les modules de développement le font, bien que d'autres le fassent aussi. Gardez ces modules en premier / dernier sauf si vous avez une bonne raison.

  • Regardez les dépendances du module (celles dont dépend le module et celles qui dépendent de ce module). Idéalement, gardez ces modules dans le même ordre. Si vous devez modifier la commande, la seule façon de comprendre les conséquences est de consulter le code.

  • Utiliser le bon sens. Les informations ajoutées par un module (par exemple à un nœud lors de la charge du nœud) ne seront pas disponibles pour les modules plus légers que celui-ci.

Netuxo Ltd
la source
1
Des différences pour Drupal 7?
DrCord
3

Honnêtement, je ne pense pas qu'il y ait de réponse générale à cela. Ce qui se passe lorsque vous ajustez le poids du module dépend fortement des modules impliqués, et si vous modifiez le poids d'un trop grand nombre de modules, j'imagine que vous pourriez vous retrouver avec des résultats imprévisibles.

Cela étant dit, si vous voulez minimiser vos risques, considérez précisément ce que fait votre module. Quelles données modifiez-vous? Apportez-vous des changements majeurs aux structures de données, ou êtes-vous des changements plus cosmétiques? Le plus grand risque, je pense, serait de modifier les données existantes de manière inattendue. Si vous faites attention et que vous ajustez les poids des modules avec parcimonie, vous ne devriez pas avoir trop de problèmes.

Lendrick
la source