Hola, quiero utilizar xCache para cachear las consultas a la base de datos. El problema es que hay muy poca información en la web de como configurar xCache, todo lo que veo está para APC.
¿Cómo debería ser el archivo app.php
?
Respuestas
Es cierto que no hay mucha documentación sobre el uso de xCache con Doctrine, pero sí que puedes encontrar la suficiente como para poder usarlo en tu aplicación. Lo primero que debes saber es que no hay que modificar el archivo app.php.
Lo único que debes hacer es añadir la siguiente configuración en tu archivo app/config/config.yml
:
doctrine: orm: auto_mapping: true # ... metadata_cache_driver: xcache query_cache_driver: xcache result_cache_driver: xcache
Aquí tienes algunos recursos que te pueden ser útiles:
- Capítulo sobre los "Cache Drivers" del manual de Doctrine
- Configuración de los "Cache Drivers" en la documentación de DoctrineBundle
@javiereguiluz
Aah, perfecto gracias @javiereguiluz, tu información me sirve mucho.
Ahora, lo que vi en la web, de la configuración del app.php
para xCache, ¿que función cumple?
$loader = new ClassLoader(); // register classes with namespaces $loader->add('Symfony\Component', __DIR__.'/component'); $loader->add('Symfony', __DIR__.'/framework'); $cachedLoader = new XcacheClassLoader('sexypins', $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();
@AjPZZO
El archivo app.php
puede utilizar xCache para cargar las clases PHP de la aplicación. Esto hace que aumente ligeramente el rendimiento.
Si no activas xCache o APC o similar, las clases que se necesitan para ejecutar la aplicación (que pueden llegar a ser cientos de ellas para servir una sola petición) las carga directamente Composer buscándolas entre los archivos PHP de tu aplicación.
Si activas xCache o APC o similar, cuando Composer encuentra una clase, ya no la vuelve a buscar, porque se guarda en la caché su localización. Esto hace que resolver las clases PHP sea mucho más rápido y por tanto, aumente ligeramente el rendimiento de la aplicación.
@javiereguiluz