fengjunoo 发表于 2013-2-7 22:59:11

drupal核心函数

1,drupal_static
 
这个函数在includes/bootstrap.inc中被定义,用于持久化和缓存数据。
它使用的方法是,在函数内部申明两个静态变量,$data用于存储当前数据,$default用于存储上次数据。
static $data = array(), $default = array(); 如果使用了参数$reset=true,它将用上次数据重置当前数据。
    if ($reset) {      $data[$name] = $default[$name];    } 
这个函数的用法,如includes/common.inc:
function drupal_add_library($module, $name, $every_page = NULL) {$added = &drupal_static(__FUNCTION__, array());//如果没有被静态缓存  if (!isset($added[$module][$name])) {    if ($library = drupal_get_library($module, $name)) {      $elements['#attached'] = array(      'library' => $library['dependencies'],      'js' => $library['js'],      'css' => $library['css'],      );//将正确值加入静态缓存 $added[$module][$name] = drupal_process_attached($elements, JS_LIBRARY, TRUE, $every_page);    }    else {//将错误值加入静态缓存       $added[$module][$name] = FALSE;    }}//如果已经被缓存,就直接返 return $added[$module][$name];}
页: [1]
查看完整版本: drupal核心函数