在 Drupal 中,可以给模块 hook_menu() 并返回 $items ,其中 url 路径是关键。问题是 - 如果 hook_menu() 中的多个模块具有相同的 $items 键,例如 $items['user/manager'] - 所有的“页面回调”函数都可以工作吗?我最近才了解到,如果发生它们订阅的事件,所有模块都会工作。就像在 java-script 中一样,我们为某个事件订阅一个函数。
在 Drupal 中,可以给模块 hook_menu() 并返回 $items ,其中 url 路径是关键。问题是 - 如果 hook_menu() 中的多个模块具有相同的 $items 键,例如 $items['user/manager'] - 所有的“页面回调”函数都可以工作吗?我最近才了解到,如果发生它们订阅的事件,所有模块都会工作。就像在 java-script 中一样,我们为某个事件订阅一个函数。
简而言之,答案是否定的,只有一个页面回调会起作用
自己看看,我通常只是运行调试器。
包括/menu.inc
这个函数返回一个使用这个钩子的模块列表。
$callbacks
如您所见,在此变量的更远处,将有所有$items
. 由于使用了 array_merge,您可以在示例中查看它的工作原理并了解结果。结论:
如您所见,当声明两条相同的路径时,将使用第二条。