老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
模块常常需要进行昂贵的数据查询或者调用远程web服务。对于这些耗费资源的操作,不需要每次都重复进行一次,模块可以将它们的数据缓存到Drupal中为缓存保留的数据库表中,或者模块也可以创建一个新的数据库表,并将缓存数据存储在那里。当下次用到这些数据时,通过一个简单的查询就可以快速的将其取回。你将在本章的后面看到,Drupal的缓存后端是可插拔的,所以尽管这里所指的是数据库表,实际的后端也可以采用其它的存储,比如直接使用文件或者一个基于内存的缓存。
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
Drupal将大多数的管理设置存储在variables表中,并将该表的所有数据缓存到cache表中,以加快查找配置数据的速度。这类变量的例子,包括你站点的名称、评论和用户的设置、以及files目录的位置。所有的这些变量都被缓存到cache表的一行记录当中了,这样在需要每个变量时,就可以快速的将其取回,而不是每次都进行一次数据库查询。它们被存储为一个PHP数组,所以缓存值将被序列化从而保留它的结构。如果一个变量使用variable_set()和variable_get()作为设置器(setter)和读取器(getter)函数,那么将以这种方式来存储和缓存它。
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
许多Drupal函数使用一个静态变量来缓存数据。在一个HTTP请求的生命周期内,在第2次调用它时,将会立即返回数据。下面是一个来自于节点模块的例子:
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal