调整模块重量:要注意哪些风险和注意事项?


14

今天,我更改了我的自定义模块的权重,以更改挂钩的执行方法(hook_form_alter)。我已将权重更改为比其他模块的权重大的1值。这似乎是最安全的事情,而不是给它一个100的“随机”权重。原始模块是核心模块(转换),所以我希望我没有破坏任何东西。

在调整模块的权重以更改挂钩的执行顺序时,需要注意哪些事项以及涉及哪些风险?

我能想到的是:高耦合导致的不良行为。

Answers:


10

嗯,对此没有一个通用的答案,它实际上取决于模块。我会考虑的一些事情(在Drupal 6中):

  • hook_boot在模块加载时被调用;因此,仅包含比您轻的模块。如果您依赖于另一个比您重的模块的代码,请确保手动添加它们。

  • 如果默认情况下模块的权重不是0,则表示该模块专门设置了该权重。检查该模块的.install文件,因为这很可能是在设置权重的位置-运气好的话,会有一条注释解释原因!(即使权重为零,也可能是这样)

  • 设置非常低或非常高的权重的模块通常有充分的理由(必须在其他一切之前/之后运行)。通常,开发模块可以执行此操作,尽管其他模块也可以。除非您有充分的理由,否则请保留这些模块的第一个/最后一个。

  • 查看模块的依赖关系(模块所依赖的依赖关系以及该模块所依赖的依赖关系)。理想情况下,这些模块应保持相同顺序。如果必须更改顺序,那么了解后果的唯一方法就是查看代码。

  • 使用常识。由模块添加的信息(例如,在节点负载时添加到节点的信息)将不适用于比该模块轻的模块。


1
Drupal 7有什么区别?
DrCord

3

老实说,我不认为这是一个普遍的答案。调整模块权重时会发生什么情况,很大程度上取决于所涉及的模块,并且如果更改太多模块的权重,我会以为您最终会得到一些无法预测的结果。

话虽如此,如果您想最大程度地降低风险,则只需仔细考虑模块正在做什么。您正在修改哪些数据?您是要对数据结构进行重大更改,还是要进行更多修饰?我认为,最大的风险是以意外的方式更改现有数据。如果您小心翼翼,并且很少调整模块的重量,则应该不会有太多问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.