私は既存のフックを実装する方法を探しているのではなく、新しいタイプのフックを作成することを考えています。フックが存在するとしましょうhook_node_load()
。hook_node_preload()
ノードがロードされる前に発火するようなものを作成したいと思います。
検索しましたが、Drupal コードのどこでフックが起動されているのかわかりません。私はそれが何かのようなmodule_invoke_all()
ものだと思いますか?しかし、それがどこで呼ばれているかはわかりません。
私は既存のフックを実装する方法を探しているのではなく、新しいタイプのフックを作成することを考えています。フックが存在するとしましょうhook_node_load()
。hook_node_preload()
ノードがロードされる前に発火するようなものを作成したいと思います。
検索しましたが、Drupal コードのどこでフックが起動されているのかわかりません。私はそれが何かのようなmodule_invoke_all()
ものだと思いますか?しかし、それがどこで呼ばれているかはわかりません。
Drupal フックは、Drupal プロセス全体を通じて、あらゆる場所で起動されます。すべてのフックを呼び出す 1 つの場所はありません。
以下は、フックを作成する Drupal コアの関数の一部のリストです。
http://api.drupal.org/api/drupal/includes%21module.inc/function/calls/module_invoke_all/7
の場合、includes/entity.inchook_node_load()
にある entity.inc ファイルの334 行目で呼び出されます。
foreach (module_implements($this->entityInfo['load hook']) as $module) {
call_user_func_array($module . '_' . $this->entityInfo['load hook'], $args);
}