menu_execute_active_handler大致是如何运行的?

1, 首先判断网站是正常运行还是处于维护模式

  $page_callback_result = _menu_site_is_offline() ? MENU_SITE_OFFLINE : MENU_SITE_ONLINE;

2, 获得$_GET['q']的值, 并给其他模块改变站点状态留一个接口

  $read_only_path = !empty($path) ? $path : $_GET['q'];
  drupal_alter('menu_site_status', $page_callback_result, $read_only_path);

3, 得到$router_item 就是关于这个页面hook_menu的定义, 还有其他的默认值

$router_item = menu_get_item($path)

4, 调用$router_item的page callback来调用page arguments

 $page_callback_result = call_user_func_array($router_item['page_callback'], $router_item['page_arguments']);

然后就是返回内容给整个网站系统的第三步 渲染



原文地址:https://www.cnblogs.com/qinqiu/p/4493793.html