Lo nuevo en Symfony 3.2: Mejoras a la Cache

Se adiciona un nuevo adaptador “Null”

El nuevo adapatador Symfony \ Component \ Cache \ Adapter \ NullAdapter es un adaptador especial que desactiva la cache (Se elimina todo lo guardado y retrona false para todas las operaciones de lectura y escritura de la cache).

Se adiciona un adaptador file system mucho más rápido

El nuevo adaptador Symfony \ Component \ Cache \ Adapter \ PhpFilesAdapter es muy similar al adaptador  FilesystemAdapter; pero su desempeño es mucho mejor cuando se habilita OPcache en el servidor.

Se adiciona un nuevo adaptador para PDO y Doctrine DBAL

El nuevo adaptador Symfony \ Component \ Cache \ Adapter \ PdoAdapter permite usar cualquier base de datos compatible con DBAL para usarla como alamcenamiento de cache. Esta implementación depende mucho de PdoSessionHandler. Un ejemplo creando una cache en SQLite, sería el siguiente:

Se adiciona un adaptador genérico llamado tag-aware

La invalidación Tag-based es un mecanismo que ofrece Symfony para invalidar caches. Es un proceso que elimina todos los elementos en la cache que hacen referencia a un cambio en especial.

En Symfony 3.2 una nueva clase Symfony \ Component \ Cache \ Adapter \ TagAwareAdapter y una nueva interfaz Symfony \ Component \ Cache \ Adapter \ TagAwareAdapterInterface que permite transformas cualquier cache adapter en un tag-aware adapter.

El constructor de la clase TagAwareAdapter aceptas dos argumentos. El primer argumento es el cache adapter usado y el segundo argumento es opcional y es usado para cachear los tags. Esto permite, por ejemplo, que se use un almacenamiento en el sistema de archivos o en una base de datos  pata almacenar la cache y usar Redis cache para almacenar los tags teniendo un sistema super rapido para chequeos de validación.

Se adiciona un comando para limpiar partes de la cache

FrameworkBundle ahora incluye el comando cache:pool:clear que toma como argumento uno o mas nombres de servicios. Estos servicios tienen partes de la cache que puede ser limpiada de manera puntual usando el siguiente comando: