43 public static $standardBackends = array(
'File',
'Sqlite',
'Memcached',
'Libmemcached',
'Apc',
'ZendPlatform',
44 'Xcache',
'TwoLevels',
'WinCache',
'ZendServer_Disk',
'ZendServer_ShMem');
67 public static $availableBackends = array(
'File',
'Sqlite',
'Memcached',
'Libmemcached',
'Apc',
'ZendPlatform',
'Xcache',
'WinCache',
'TwoLevels');
91 public static function factory($frontend, $backend, $frontendOptions = array(), $backendOptions = array(), $customFrontendNaming =
false, $customBackendNaming =
false, $autoload =
false)
93 if (is_string($backend)) {
94 $backendObject =
self::_makeBackend($backend, $backendOptions, $customBackendNaming, $autoload);
96 if ((is_object($backend)) && (in_array(
'Zend_Cache_Backend_Interface', class_implements($backend)))) {
97 $backendObject = $backend;
99 self::throwException(
'backend must be a backend name (string) or an object which implements Zend_Cache_Backend_Interface');
102 if (is_string($frontend)) {
103 $frontendObject =
self::_makeFrontend($frontend, $frontendOptions, $customFrontendNaming, $autoload);
105 if (is_object($frontend)) {
106 $frontendObject = $frontend;
111 $frontendObject->setBackend($backendObject);
112 return $frontendObject;
124 public static function _makeBackend($backend, $backendOptions, $customBackendNaming =
false, $autoload =
false)
126 if (!$customBackendNaming) {
131 $backendClass =
'Zend_Cache_Backend_' . $backend;
133 #require_once str_replace('_', DIRECTORY_SEPARATOR, $backendClass) . '.php'; 136 if (!preg_match(
'~^[\w\\\\]+$~D', $backend)) {
139 if (!$customBackendNaming) {
141 $backendClass =
'Zend_Cache_Backend_' . $backend;
143 $backendClass = $backend;
146 $file = str_replace(
'_', DIRECTORY_SEPARATOR, $backendClass) .
'.php';
147 if (!(self::_isReadable($file))) {
153 return new $backendClass($backendOptions);
165 public static function _makeFrontend($frontend, $frontendOptions = array(), $customFrontendNaming =
false, $autoload =
false)
167 if (!$customFrontendNaming) {
170 if (in_array($frontend, self::$standardFrontends)) {
173 $frontendClass =
'Zend_Cache_' . ($frontend !=
'Core' ?
'Frontend_' :
'') . $frontend;
175 #require_once str_replace('_', DIRECTORY_SEPARATOR, $frontendClass) . '.php'; 178 if (!preg_match(
'~^[\w\\\\]+$~D', $frontend)) {
181 if (!$customFrontendNaming) {
183 $frontendClass =
'Zend_Cache_Frontend_' . $frontend;
185 $frontendClass = $frontend;
188 $file = str_replace(
'_', DIRECTORY_SEPARATOR, $frontendClass) .
'.php';
189 if (!(self::_isReadable($file))) {
195 return new $frontendClass($frontendOptions);
208 #require_once 'Zend/Cache/Exception.php'; 221 $name = str_replace(array(
'-',
'_',
'.'),
' ',
$name);
224 if (stripos(
$name,
'ZendServer') === 0) {
225 $name =
'ZendServer_' . substr(
$name, strlen(
'ZendServer'));
241 private static function _isReadable($filename)
243 if (!$fh = @
fopen($filename,
'r',
true)) {
static _makeFrontend($frontend, $frontendOptions=array(), $customFrontendNaming=false, $autoload=false)
const CLEANING_MODE_NOT_MATCHING_TAG
static $standardExtendedBackends
static $standardFrontends
static $availableFrontends
static throwException($msg, Exception $e=null)
const CLEANING_MODE_MATCHING_ANY_TAG
static factory($frontend, $backend, $frontendOptions=array(), $backendOptions=array(), $customFrontendNaming=false, $customBackendNaming=false, $autoload=false)
static _normalizeName($name)
const CLEANING_MODE_MATCHING_TAG
static $availableBackends
if(!isset($_GET['name'])) $name
static _makeBackend($backend, $backendOptions, $customBackendNaming=false, $autoload=false)