Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Configurar el Almacenamiento en Caché en PHP con el Componente de Caché de Symfony

by
Difficulty:IntermediateLength:ShortLanguages:

Spanish (Español) translation by Rene Soto (you can also view the original English article)

Hoy, te mostraré el componente Symfony Cache, una forma fácil de agregar almacenamiento en caché a tus aplicaciones PHP. Esto ayuda a mejorar el rendimiento general de su aplicación al reducir el tiempo de carga de la página.

El Componente de Caché de Symfony

El componente cache de Symfony te permite configurar el almacenamiento en caché en tus aplicaciones PHP. El componente en sí es muy fácil de instalar y configurar y le permite comenzar rápidamente. Además, proporciona una variedad de adaptadores para elegir, como se muestra en la siguiente lista:

  • adaptador de base de datos
  • adaptador de sistema de archivos
  •  adaptador memcached
  • adaptador Redis
  • adapatador APCu 
  • y mas

Cuando se trata de almacenar en caché utilizando el componente Caché de Symfony, hay algunos términos con los que deberías familiarizarte.

Para empezar, el elemento de caché se refiere al contenido que se almacena. Cada elemento se almacena como un par clave-valor. Los elementos de la memoria caché son gestionados por la agrupación de memoria caché, que los agrupa de forma lógica.  De hecho, debes utilizar el grupo de caché para manipular los valores de caché. Finalmente, es el adaptador de caché que hace todo el trabajo pesado para almacenar elementos en el back-end de caché.

En este artículo, exploraremos cómo puedes liberar el poder del componente de caché de Symfony. Como de costumbre, comenzaremos con la instalación y configuración, y luego continuaremos con la exploración de algunos ejemplos prácticos en la última parte del artículo.

Instalación y Configuración

En esta sección, vamos a instalar el componente Cache. Supongo que ya has instalado Composer en tu sistema; lo necesitarás para instalar el componente Cache disponible en Packagist

Una vez que hayas instalado Composer, sigue adelante e instala el componente Cache usando el siguiente comando.

Eso debería haber creado un archivo composer.json que debería tener este aspecto: 

Eso es todo para la instalación, pero ¿cómo se supone que lo agregues a tu aplicación? Es solo una cuestión de incluir el archivo autoload.php creado por Composer en su aplicación, como se muestra en el siguiente fragmento de código.

Un Ejemplo Práctico

En esta sección, veremos un ejemplo que demuestra cómo puedes usar el componente Caché en tus aplicaciones para almacenar el contenido.

Para empezar, avancemos y creamos el archivo index.php con el siguiente contenido.

Revisemos las partes principales del archivo index.php para comprender su propósito. 

Crear el Conjunto de Caché

Como hemos comentado anteriormente, los elementos almacenados en caché se almacenan en un grupo de caché. Además, cada grupo de caché está respaldado por un back-end y adaptador de caché específicos.  Si deseas almacenar elementos en el caché del sistema de archivos, por ejemplo, necesita inicializar el grupo de caché del adaptador del sistema de archivos.

Puede proporcionar tres argumentos opcionales al objeto FilesystemAdapter:

  • el espacio de nombres en el que deseas crear entradas de caché
  • vida en segundos para los elementos de caché
  • el directorio en el que se almacenará el caché.

Cómo Almacenar Valores de Cadena

Como ya hemos creado el grupo de caché, podemos usarlo para almacenar elementos de caché.

En primer lugar, usamos el método getItem para obtener el elemento de caché con la clave demo_string. A continuación, usamos el método isHit para verificar si el valor que buscamos ya está presente en el elemento de caché $demoString

Dado que esta es la primera vez que obtenemos el elemento de caché demo_string, el método isHit debería devolver false.  A continuación, usamos el método set del objeto $demoString para establecer el valor del caché. Finalmente, guardamos el elemento de caché $demoString en el grupo de caché $cachePool usando el método save.

Ahora que hemos almacenado el elemento en el caché, veamos cómo recuperarlo del caché.

Aquí, usamos el método hasItem para verificar la existencia del elemento de caché en el grupo de caché antes de recuperarlo.

A continuación, veamos cómo eliminar todos los elementos de caché de la agrupación de caché:

Cómo Almacenar Valores de Arreglo

En la sección anterior, analizamos cómo almacenar valores básicos en el grupo de caché. El almacenamiento de valores de arreglo es muy similar, como puede ver en el siguiente ejemplo.

Como puedes ver, simplemente podemos establecer el elemento de caché con un valor de arreglo, igual que hicimos para una cadena.

A continuación, veamos cómo eliminar el elemento de caché específico de la agrupación de caché.

Aquí, usamos el método deleteItem para eliminar el elemento demo_array del grupo de caché.

Cómo Establecer una Fecha de Caducidad para los Elementos en Caché

Hasta ahora, hemos almacenado en caché los elementos en el grupo sin fecha de caducidad. Sin embargo, normalmente no deseas almacenar elementos en el caché de forma permanente. Por ejemplo, es posible que desees actualizar los elementos de la memoria caché periódicamente, por lo que necesita un mecanismo que elimine los elementos de la memoria caché caducados.

En esta sección, analizaremos cómo almacenar elementos en el caché junto con una fecha de caducidad.

Como puede ver en el fragmento anterior, puedes usar el método expiresAfter para establecer una fecha de caducidad para el elemento almacenado en caché. Puedes pasar la cantidad de segundos que le gustaría almacenar en caché un elemento en el primer argumento del método expiresAfter

En nuestro ejemplo, usamos el método sleep para probar si el elemento almacenado en caché todavía está disponible en el grupo de caché.

¡Anímate y pruébalo para ver cómo funciona!

Conclusión

Hoy, echamos un breve vistazo al componente Cache de Symfony , que te permite configurar el almacenamiento en caché en tus aplicaciones PHP. También es compatible con una variedad de adaptadores de almacenamiento en caché que, en conjunto, le brindan la flexibilidad de elegir el tipo de back-end que desea usar.

Siéntate libre de expresar tus pensamientos y consultas utilizando la caja de comentarios de abajo.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.