XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
xcache.php
Go to the documentation of this file.
1 <?php
20 defined('XOOPS_ROOT_PATH') or die('Restricted access');
21 
55 {
64  var $settings = array();
65 
76  function init($settings)
77  {
78  parent::init($settings);
79  $defaults = array('PHP_AUTH_USER' => 'cake' , 'PHP_AUTH_PW' => 'cake');
80  $this->settings = array_merge($defaults, $this->settings);
81  return function_exists('xcache_info');
82  }
83 
93  function write($key, &$value, $duration)
94  {
95  return xcache_set($key, $value, $duration);
96  }
97 
105  function read($key)
106  {
107  if (xcache_isset($key)) {
108  return xcache_get($key);
109  }
110  return false;
111  }
112 
120  function delete($key)
121  {
122  return xcache_unset($key);
123  }
124 
131  function clear()
132  {
133  $result = true;
134  $this->__auth();
135  for ($i = 0, $max = xcache_count(XC_TYPE_VAR); $i < $max; $i++) {
136  if (!xcache_clear_cache(XC_TYPE_VAR, $i)) {
137  $result = false;
138  break;
139  }
140  }
141  $this->__auth(true);
142  return $result;
143  }
144 
155  function __auth($reverse = false)
156  {
157  static $backup = array();
158  $keys = array('PHP_AUTH_USER' , 'PHP_AUTH_PW');
159  foreach ($keys as $key) {
160  if ($reverse) {
161  if (isset($backup[$key])) {
162  $_SERVER[$key] = $backup[$key];
163  unset($backup[$key]);
164  } else {
165  unset($_SERVER[$key]);
166  }
167  } else {
168  $value = env($key);
169  if (!empty($value)) {
170  $backup[$key] = $value;
171  }
172  $varName = '__' . $key;
173  $_SERVER[$key] = $this->settings[$varName];
174  }
175  }
176  }
177 }
178 
179 ?>