Saludos
Estoy utilizando cache de doctrine, pero tengo dudas de funcionamiento.
Me podria explicar:
$query->useQueryCache(TRUE); $query->useResultCache(TRUE);
-
El Cache la almacena junto con la aplicacion symfony.
-
Si es el caso anterior, se podria guardar aparte y si limpio la cache de symfony se borra las datos almacenados.
- Que paso cuando el dato cambia en la BD.
La bd a consultar es de solo lectura y mi duda es como puedo actualizar la consulta, por que los cambios a la bd lo realiza otra aplicación.
Mi aplicacion no tendria como saber que se ingreso, actualizo o elimino algun dato de la consulta, la unica forma es hacer la consulta obtener la repuesta.
Gracias
Respuestas
Amigo lo basico es:
$query->useQueryCache(TRUE); //guarda la consulta, !no el resultado! $query->useResultCache(TRUE); //guarda el resultado
la forma en la que guarda depende de lo que pongas es el archivo config.yml:
metadata_cache_driver: array query_cache_driver: array result_cache_driver: array
Puede ser apc, memcache, xcache. Del almacenamiento se ocupa el modulo. Apc me parece que guarda en donde guarda el modulo APC. O puede ser un tipo especial que es array que se guarda en el directorio cache de symfony:
metadata_cache_driver: array query_cache_driver: array result_cache_driver: array
Para borrar la cache en los métodos adicionar editar y borrar tienes que limpiar la cache:
$em->getConfiguration()->getResultCacheImpl()->deleteAll();
Si otra aplicación externa accede a los datos y modifica entonces no puedes cachear las consultas. Yo creo que no hay solución.
@jdvellon