web-dev-qa-db-ja.com

Drupalで一般的なユーティリティ関数をどこに書くか?

時には、プロジェクトのどこからでも呼び出せるように、一般的なスコープ(作業中のモジュールに限定されない)を持つ小さなユーティリティ関数を記述する必要があります。

私はそれをどこに書いても、呼び出し元からのphpファイルを含めることができることを知っていますが、Drupalで慣習に従っていますか?

例えば私は愚かなことになるxyzのことをするxyz.moduleに取り組んでいます

function startsWith($haystack, $needle) // case-insensitive startsWith
{
    return strncasecmp($haystack, $needle, strlen($needle)) === 0;
}

その関数はどこに書けばいいですか?

4
nawfal

多くのAPIモジュールと同様に、専用モジュール内にグローバルヘルパー関数を配置できます。 (次の例ではMYHELPERMODULEを使用します。)

次に、命名規則に従う必要があります。

function MYHELPERMODULE_startswith($needle, $haystack) {
  // do your magic
}

ヘルパーモジュールがアクティブである限り、他のすべてのモジュール内からこの関数を呼び出すことができます。アクティブであることを確認するには、ヘルパー関数を使用しているモジュールの.infoファイルに依存関係としてヘルパーモジュールを追加します。

dependencies[] = MYHELPERMODULE
7
Mario Steinitz