class WinCacheClassLoader in X Autoload 7.4
Same name and namespace in other branches
- 7.5 src/ClassLoader/WinCacheClassLoader.php \Drupal\xautoload\ClassLoader\WinCacheClassLoader
Hierarchy
- class \Drupal\xautoload\ClassLoader\AbstractClassLoader implements ClassLoaderInterface
- class \Drupal\xautoload\ClassLoader\AbstractClassLoaderDecorator
- class \Drupal\xautoload\ClassLoader\AbstractCachedClassLoader implements CacheManagerObserverInterface
- class \Drupal\xautoload\ClassLoader\WinCacheClassLoader implements CacheManagerObserverInterface
- class \Drupal\xautoload\ClassLoader\AbstractCachedClassLoader implements CacheManagerObserverInterface
- class \Drupal\xautoload\ClassLoader\AbstractClassLoaderDecorator
Expanded class hierarchy of WinCacheClassLoader
1 file declares its use of WinCacheClassLoader
File
- lib/
ClassLoader/ WinCacheClassLoader.php, line 8
Namespace
Drupal\xautoload\ClassLoaderView source
class WinCacheClassLoader extends AbstractCachedClassLoader implements CacheManagerObserverInterface {
/**
* @throws \Exception
* Throws an exception, if requirements are not satisfied.
*/
protected function checkRequirements() {
return extension_loaded('wincache') && function_exists('wincache_ucache_get');
}
/**
* {@inheritdoc}
*/
function loadClass($class) {
// Look if the cache has anything for this class.
if ($file = wincache_ucache_get($this->prefix . $class)) {
if (is_file($file)) {
require $file;
return;
}
wincache_ucache_delete($this->prefix . $class);
}
// Resolve cache miss.
$api = new LoadClassGetFileInjectedApi($class);
if ($this->finder
->apiFindFile($api, $class)) {
wincache_ucache_set($this->prefix . $class, $api
->getFile());
}
}
}