It expects an object implementing a findFile method to find the file. This
allows using it as a wrapper around the other loaders of the component (the
ClassLoader and the UniversalClassLoader for instance) but also around any
other autoloader following this convention (the Composer one for instance)
$loader = new ClassLoader();
register classes with namespaces
$loader->add('Symfony\Component', __DIR__.'/component');
$loader->add('Symfony', __DIR__.'/framework');
$cachedLoader = new XcacheClassLoader('my_prefix', $loader);
activate the cached autoloader
$cachedLoader->register();
eventually deactivate the non-cached loader if it was registered previously
to be sure to use the cached one.
$loader->unregister();
<?php use Symfony\Component\HttpFoundation\Request; use Symfony\Component\ClassLoader\ApcClassLoader; use Symfony\Component\ClassLoader\XcacheClassLoader; $loader = (require_once __DIR__ . '/../app/bootstrap.php.cache'); require_once __DIR__ . '/../app/AppKernel.php'; require_once __DIR__ . '/../app/AppCache.php'; if (extension_loaded('apc') && ini_get('apc.enabled')) { $loader = new ApcClassLoader('superdesk_webpublisher', $loader); $loader->register(true); } if (extension_loaded('xcache') && ini_get('xcache.enabled')) { $loader = new XcacheClassLoader('superdesk_webpublisher', $loader); $loader->register(true); } $kernel = new AppKernel('prod', false); $kernel->loadClassCache(); $kernel = new AppCache($kernel); Request::enableHttpMethodParameterOverride(); $request = Request::createFromGlobals(); $response = $kernel->handle($request); $response->send(); $kernel->terminate($request, $response);
* Date: 17.09.15 * Time: 9:27 */ namespace { require_once __DIR__ . '/vendor/autoload.php'; use Dima\Legacy\TestClass as TestLoadedByMap; use Dima\Test as TestPsr0; use Symfony\Component\ClassLoader\ClassLoader; use Symfony\Component\ClassLoader\ClassMapGenerator; use Symfony\Component\ClassLoader\MapClassLoader; use Symfony\Component\ClassLoader\Psr4ClassLoader; use Symfony\Component\ClassLoader\XcacheClassLoader; use DG\SymfonyCert\Controller\HomeController; $psr0Loader = new ClassLoader(); $psr0Loader->addPrefix('Dima', __DIR__ . '/srcPsr0'); $cachedLoader = new XcacheClassLoader(sha1(__FILE__), $psr0Loader); $cachedLoader->register(); $psr0Loader->unregister(); $psr4Loader = new Psr4ClassLoader(); $psr4Loader->addPrefix('DG\\SymfonyCert\\', __DIR__ . '/src'); $psr4Loader->register(); $mapLoader = new MapClassLoader(['Dima\\Legacy\\TestClass' => __DIR__ . '/srcPsr0/TestClass.php']); $mapLoader->register(); ClassMapGenerator::dump(__DIR__ . '/srcThirdParty', __DIR__ . '/class_map.php'); $classMap = (include __DIR__ . '/class_map.php'); $mapLoader2 = new MapClassLoader($classMap); $mapLoader2->register(); //Psr0 loader + XCache TestPsr0::output("Hello from Psr0 loaded class!"); //Map loader TestLoadedByMap::test();