モジュールの重量の調整:リスクと注意すべきことは何ですか?


14

今日、フックの実行方法(hook_form_alter)を変更するために、私のカスタムモジュールの重みを変更しました。他のモジュールの重量より重い1つの値に重量を変更しました。これは、100の "ランダムな"重みを与える代わりに行うのが最も安全なことのように思えました。元のモジュールはコアモジュール(翻訳)なので、何も壊さないことを望みます。

フックの実行順序を変更するためにモジュールの重みを調整する場合、注意すべきことは何ですか?また、リスクは何ですか?

私が考えることができるもの:高結合の結果としての望ましくない行動。

回答:


10

これに対する一般的な答えはありませんが、実際にはモジュールに依存します。私が考慮に入れるもののいくつか(Drupal 6):

  • hook_bootは、モジュールがロードされるときに呼び出されます。含まれているモジュールよりも軽いモジュールのみが含まれています。自分より重い別のモジュールのコードに依存している場合は、それらを手動で含めるようにしてください。

  • モジュールにデフォルトで0以外の重みがある場合、このモジュールがこの重みを明確に設定することを意味します。このモジュールの.installファイルを確認してください。これは、重みが設定されている場所である可能性が最も高いためです。(これは、重みがゼロであっても当てはまる場合があります)

  • 通常、非常に低いまたは非常に高い重みを設定するモジュールには、その理由があります(他のすべての前後に実行する必要があります)。通常、開発モジュールがこれを行いますが、他のモジュールも同様です。正当な理由がない限り、これらのモジュールを最初/最後に保管してください。

  • モジュールの依存関係(モジュールが依存する依存関係と、このモジュールに依存する依存関係)を見てください。これらのモジュールを同じ順序に保つことが理想的です。順序を変更する必要がある場合、結果を理解する唯一の方法はコードを見ることです。

  • 常識を使用します。モジュールによって追加された情報(ノードロードのノードなど)は、これより軽いモジュールでは使用できません。


1
Drupal 7の違いは何ですか?
DrCord 14年

3

正直なところ、これに対する一般的な答えはないと思います。モジュールの重量を調整すると何が起こるかは、関係するモジュールに大きく依存します。あまりにも多くのモジュールの重量を変更すると、予測できない結果が生じる可能性があると思います。

そうは言っても、リスクを最小限に抑えたい場合は、モジュールが実行していることを正確に考慮してください。どのデータを変更していますか?データ構造に大きな変更を加えていますか、それとも外観を変更していますか?最大のリスクは、予想外の方法で既存のデータを変更することだと思います。注意して、モジュールの重みを控えめに調整するのであれば、あまり多くの問題はないはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.