起動したフックをデバッグしていますか?


9

私はモジュール開発にいくらか慣れていません。

特定のノードで実行されているフックを現在出力する方法はありますか?

これはxdebugで行われますか?

回答:


9

致命的なエラー(または空白の画面)が発生しない限り、特別なフックが呼び出されたときに呼び出されるモジュールのリストを取得するのは非常に簡単です。

$modules = module_implements($hook);
foreach ($modules as $key =>  $module) {
  $function = $module . '_' . $hook;
  if (!function_exists($function)) {
    unset($modules[$key]);
  }
}
// $modules is now an array containing all the modules that will be invoked by $hook.

xDebugのようなものを使用してDrupalのフローを追跡することもできますが、Drupalを初めて使用する場合は特に、これは非常に困難です。


1
デバッグを試して、設定に何時間も費やしたくない場合は、クイックスタートを試すことができます。これは仮想マシンであり、drushを使用すると、サイトのセットアップ、モジュールの挿入、Netbeansへのインポート、デバッグのヒットが非常に簡単になります。
ウイスキー

1
これは、特定のフックを実装するすべてのモジュールを表示するだけではなく、Drupalがその時点までに呼び出したすべてのフックではないのですか?後者は私が@chrisjleeのリクエストをどのように読んだかです。
mpdonadio

1
@MPDフックを実装するモジュールだけでなく、それらが呼び出される順序も表示されます。コンテキストが、モジュールのフックが呼び出される前/後に発生するものである場合は、上記で十分です。実行フローの特定の時点でフックfooが呼び出されたかどうかを確認したい場合、Drupalは非常に複雑であるため、それを理解するのは非常に困難です。特に新しい開発者にとって。これがOPに必要なものかどうかはわかりませんが、いずれにしてもxDebugの提案よりもおそらく役立つでしょう。
googletorp
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.