Ver índice de contenidos del libro

17.3. Guardando en la caché el cargador automático de clases

Otra posible solución a este problema consiste en guardar en la caché la localización de cada clase después de encontrarla por primera vez. Symfony incluye una clase llamada ApcUniversalClassLoader que hace exactamente eso. Para utilizarla, modifica el código de tu controlador frontal. Si utilizas la distribución estándar de Symfony, el código necesario ya está en el controlador frontal, aunque está comentado:

// app.php
// ...
 
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
 
// Use APC for autoloading to improve performance
// Change 'sf2' by the prefix you want in order to prevent key conflict with another application
/*
$loader = new ApcClassLoader('sf2', $loader);
$loader->register(true);
*/
 
// ...

Nota Al utilizar el cargador automático con la caché de APC, si añades nuevas clases en la aplicación, se encontrarán sin problemas y todo funcionará igual que antes (es decir, no tienes que borrar la caché). Sin embargo, si cambias la ubicación de un determinado namespace o de un prefijo, tendrás que limpiar tu caché APC. De lo contrario, el cargador seguirá utilizando la ubicación anterior.