web-dev-qa-db-ja.com

カスタムモジュール変数名のベストプラクティスは?

私は自分のモジュールに対して非常に堅牢な構成ペインを実行する習慣になりました。変数名と管理がpainであることがわかりました。

mymodule_section_subvar_varname_type_contextのような変数があり、変数名の要素の順序が分からないだけでなく、長い変数名があると設計上の欠陥があるように感じます。

変数mymodule_section_settingsでシリアル化された配列を、その配列の保守を容易にする一連の関数と組み合わせて使用​​することを検討してきましたが、確立されているベストプラクティス(存在する場合)への入力が大好きです接頭辞および/または私たちが信頼するモジュールの例の外、およびそれらが変数の大きなセットに対して何をしているのか。

ありがとう!

8
electblake

Drupal変数を使用して配列を含めることができます。つまり、Drupalコアモジュールも同様です( book_type_is_allowed())を参照 =)。

単一のDrupal変数を使用して、モジュールで使用されるさまざまな設定を配列に含めることができます。形式は#tree属性を使用しても、追加のコードを記述せずに配列をDrupal変数に保存するために system_settings_form() を使用できます。コードのシリアル化解除は、自動的にシリアル化されますDrupal変数を処理するコア関数Drupal変数によって実行されます( variable_set() のコードを参照)。

質問は次のとおりです。単一のDrupal変数を使用して異なる設定を含める場合?関数または関数のグループで使用される設定に単一の変数を使用します。配列には(たとえば)10個の異なる関数で使用される値が含まれていますが、それらの関数はその配列から単一の値(またはいくつかの値)にアクセスするため、設定に単一の永続変数を使用しません。

7
kiamlaluno

一連の設定が関連している場合、それらを配列に配置することは理にかなっています。たとえば、several variable_getの連続。それはあなたにいくつかの柔軟性を与えるだけでなく、潜在的に少し速くなります。

ただし、これにより、他のプログラムがdrush vsetやstrongarmなどを使用して手動で設定を編集することが難しくなります。このような場合、長い変数名が実際に役立ちます。

2
Jeremy French