跳转到主要内容
Dan 提交于 13 July 2012
对于开发目的而言,我建议使用最简单的缓存实现:无。有一种缓存实现等同于黑洞:缓存写入和清除程序不做任何事情,读取则永远是失败的。Drupal在安装过程中就使用这种假缓存,因为还没有任何关于何处缓存存储的信息可用。这种假缓存在开发过程中也非常有用。需要提醒的是,多步骤(因此还有AJAX)表单,需要一个工作缓存,当所有缓存都用黑洞方式处理时,它们将无法工作。要用Drupal自身的假缓存来让缓存短路,在settings.php中加入下面三行,settings.php文件在你站点的/sites文件夹下,通常它会是(相对于你的Drupal安装根目录下的)/sites/default/settings.php <?php $conf['cache_backends'][] = 'includes/cache-install.inc'; $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; $conf['cache_default_class'] = 'DrupalFakeCache'; ?> 这么做了之后,复杂的数据机构,如主题注册表,将会在每个页面加载时重建(加入类和菜单项仍然需要到admin/config/development/performance页面执行明确缓存清空)。这让站点明显变慢,但却简化了开发者的生活,因为对于代码所做的修改会直接在Drupal的行为上反映出来。 settings.php中的$conf数组是指定Drupal配置信息的总中央。虽然有些配置选项有UI界面并把状态存储在数据库中,但有太多选项以致于不能为它们一一提供UI界面,并且大多数不便提供UI的选项,没有必要提供给一般用户。使用$conf而不使用UI界面的另一个理由是,有些选项在数据库可用之前就是必须的。缓存是两点兼而有之:它不是用户需要从UI界面设置的东西——大部分人永远没有这个必要——并且它可能在数据库加载之前就被使用。大部分人与默认的缓存实现相安无事,而缓存又可能在数据可用之前被使用。然而,因为数据库还不可用,缓存设置比平时要更复杂一些。你需要指定文件(在$conf['cache_backends']中),而不仅仅是所用的类(如$conf['cache_default_class']中)。对于其它设置,大多数时候指定类就够了,因为Drupal会从数据库中读取到包含该类的文件所在的位置。