1

我正在使用 Drupal 6.26。例如,当我将页面参数从 150 更新到 50 时,我刷新页面并看不到任何变化。当我从性能页面清除缓存时,我只会看到变化。当我在 Windows 上本地测试 Drupal 时,缓存的设置全部关闭。现在我知道在 Drupal 5 上你有一个布尔标志 $may_cache 但查看 API 这个选项对于 Drupal 6 不存在。

有没有办法不每次都清除缓存以查看更改?

function usman_menu(){

$items['usman/hello'] = array(
        'page callback' => 'usman_example',
        'access callback' =>'user_access',
        'access arguments' =>array('access content')
);

$items['usman'] = array(
        'page callback' => 'usman_begin',
        'page arguments' => array('150'), 
        'access callback' =>'user_access',
        'access arguments' =>array('access content')
);
return $items;
}

function usman_begin($id = 20, $message = "YES", $optional = "NO"){

print "Loaded " . __FUNCTION__;
print "<br/>";
print "ID is $id, Message is $message, Option is $optional";
}

好的,我现在已经了解了有关菜单挂钩的一些知识。我只是在玩代码,看看路径如何与参数和占位符一起工作。它刷新得足够快,我可以测试并且不得不求助于清除缓存。我觉得这很奇怪,考虑到没有选项可以通过性能页面暂时禁用此类缓存,仅供开发人员使用。

谢谢。

4

2 回答 2

1

在不更改核心文件的情况下,我不知道有任何方法可以做到这一点(显然这不是一个好主意)。

菜单项被缓存并且在被调用之前不会被刷新menu_rebuild(),直到您刷新缓存(或调用其他一些管理任务之一)才会发生。

无论您采用哪种方式,您都必须至少清除cache_menu表格,否则hook_menu()根本不会被调用。

于 2012-08-29T14:55:10.820 回答
1

如果我正确理解你的问题,我的答案是否定的。

我假设您正在更改“页面参数”=> 数组(“150”)中的参数值。由于整个定义都会被缓存,并且下次访问相同的路径时,会使用缓存的数据并且不会调用 hook_menu。

我能提供的唯一建议是:

  • 对于快速而肮脏的测试,请覆盖函数(回调)本身中的变量值。
  • 使用模块/脚本在每次重置时清除缓存表。例如drush cc all,或使用开发。
于 2012-08-29T14:56:15.293 回答