function _xautoload_register_drupal in X Autoload 7.4
Same name and namespace in other branches
- 7.5 xautoload.module \_xautoload_register_drupal()
- 7.3 xautoload.module \_xautoload_register_drupal()
Register Drupal-related namespaces and prefixes in the xautoload loader.
1 call to _xautoload_register_drupal()
File
- ./
xautoload.module, line 143
Code
function _xautoload_register_drupal() {
// Check that this runs only once.
static $_first_run = TRUE;
if (!$_first_run) {
return;
}
$_first_run = FALSE;
// Register the class loader itself.
require_once dirname(__FILE__) . '/xautoload.early.lib.inc';
_xautoload_register();
$services = xautoload()
->getServiceContainer();
$lazy = variable_get('xautoload_cache_lazy', FALSE);
$cache_types = variable_get('xautoload_cache_types', array());
$decorated = $lazy ? $services->proxyFinder : $services->proxyFinder
->getFinder();
if (!empty($cache_types['apc']) && extension_loaded('apc') && function_exists('apc_store')) {
$cached_loader = ApcClassLoader::create($decorated, $services->cacheManager);
}
elseif (!empty($cache_types['wincache']) && extension_loaded('wincache') && function_exists('wincache_ucache_get')) {
$cached_loader = WinCacheClassLoader::create($decorated, $services->cacheManager);
}
elseif (!empty($cache_types['xcache']) && extension_loaded('Xcache') && function_exists('xcache_get')) {
$cached_loader = XCacheClassLoader::create($decorated, $services->cacheManager);
}
if (isset($cached_loader)) {
if ($lazy) {
$decorated
->onFinderInit(new LoaderSetFinderOperation($cached_loader));
}
$cached_loader
->register();
$services->finder
->unregister();
}
else {
// No cache is active.
// Initialize the finder, to fire scheduled operations.
$services->proxyFinder
->getFinder();
}
// Register prefixes and namespaces for enabled extensions.
$operation = new RegisterActiveExtensionsOperation();
xautoload()->proxyFinder
->onFinderInit($operation);
}