Regolazione del peso del modulo: quali sono i rischi e le cose da cercare?


14

Oggi ho cambiato il peso di un mio modulo personalizzato per cambiare il metodo di esecuzione degli hook (hook_form_alter). Ho cambiato il peso con 1 valore più pesante del peso dell'altro modulo. Questa sembrava la cosa più sicura da fare invece di dargli un peso "casuale" di 100. Il modulo originale è un modulo core (traduzione), quindi spero di non aver rotto nulla.

Quando si regola il peso di un modulo per modificare l'ordine di esecuzione dei ganci, quali sono le cose da cercare e quali sono i rischi?

Cosa posso pensare: comportamento indesiderato a causa di un elevato accoppiamento.

Risposte:


10

Beh, non c'è una risposta generale a questo, dipende davvero dai moduli. Alcune delle cose che prenderei in considerazione (in Drupal 6):

  • hook_boot viene chiamato mentre i moduli vengono caricati; quindi solo i moduli più leggeri di quelli che sono stati inclusi. Se fai affidamento sul codice di un altro modulo più pesante di te, assicurati di includerli manualmente.

  • Se per impostazione predefinita un modulo ha un peso diverso da 0, significa che questo modulo imposta specificamente questo peso. Controlla il file .install di quel modulo, poiché è molto probabile che sia impostato il peso - e con un po 'di fortuna ci sarà un commento che spiega perché! (questo può essere vero anche se il peso è zero)

  • I moduli che impostano un peso molto basso o molto alto di solito ne hanno una buona ragione ( devono funzionare prima / dopo tutto il resto). In genere i moduli di sviluppo fanno questo, sebbene anche altri potrebbero farlo. Mantieni questi moduli per primi / ultimi a meno che tu non abbia una buona ragione per farlo.

  • Guarda le dipendenze del modulo (quelle da cui dipende il modulo e quelle che dipendono da questo modulo). Idealmente mantenere questi moduli nello stesso ordine. Se devi cambiare l'ordine, l'unico modo per capire i consequnc è guardare il codice.

  • Usa il senso comune. Le informazioni aggiunte da un modulo (diciamo ad un nodo al caricamento del nodo) non saranno disponibili per moduli più leggeri di questo.


1
Qualche differenza per Drupal 7?
DrCord,

3

Onestamente non penso che ci sia una risposta generale per questo. Cosa succede quando si regola il peso del modulo dipende in gran parte dai moduli coinvolti e, se si modificano i pesi di troppi moduli, immagino che si potrebbero ottenere risultati imprevedibili.

Detto questo, se vuoi minimizzare il tuo rischio, considera esattamente cosa sta facendo il tuo modulo. Quali dati stai modificando? Stai apportando importanti modifiche alle strutture dei dati o stai apportando modifiche più cosmetiche? Il rischio maggiore, penso, sarebbe quello di modificare i dati esistenti in modo inaspettato. Se stai attento e modifichi i pesi del modulo con parsimonia, non dovresti avere troppi problemi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.