Datos estáticos Cache de Drupal

Datos estáticos Cache de Drupal

Las variables de almacenamiento de información de request permiten centralizar información por medio de una variable y la función: "drupal_static" de información que no necesita ser cambiada durante el tiempo que dure la solicitud al servidor. Para esto se hace uso en drupal 7 la función  drupal_static para encapsular información y poder ser recuperada en cualquier parte de código mientras dure la petición hecha al servidor por lo que es similar la forma en como se implement el patron de diseño Singleton.

PHP permite guardar la información de variables que deben persistir en la ejecución  del código, permitiendo ahorrar repetitivos cálculos o inicializaciones de información utilizando datos estáticos.

Drupal 7 permite utilizar la función drupal_static para el almacenamiento y manejo de estos datos:

&dupal_static

La función drupal_static recibe como parámetros el nombre o llave de los datos, el valor por defecto que debe tener y si deben limpiarse los datos almacenados.

Ejemplo:

 

La función drupal_set_title permite establecer el titulo de la pagina actual a mostrarse durante el request actual. Dentro de ella se puede ver como se hace uso de la función drupal_static para el almacenamiento y manejo del titulo en el cual. Para lo cual si la función es llamada por primera con el parámetro titulo, esta establece ese valor en la variable estática $store_title, luego para la recuperación del valor basta con hacer un llamado a la misma función pero sin ningún titulo como parámetro y devolverá el titulo hasta el momento almacenado en la variable $store_title, esto se puede ver dentro de la función drupal_get_title la cual hace un llamado a la función drupal_set_title sin ningún parámetro para recuperar el valor hasta el momento almacenado:

La primera regla de optimización y almacenamiento en caché es para los sitios construidos en Drupal es no hacer algo sobre los datos que sea costoso o demande mucho tiempo dos veces en tu código, si se puede almacenar para volver volver a utilizarlos en cualquier parte de tu código. Por eso es altamente recomendable identificar en tu código la información que debe persistir el tiempo que dure la solicitud al servidor y para ello Drupal en su API da soporte a esto por medio de variables estáticas a través de la función drupal_static

Un ejemplo común de este patrón de almacenamiento de cache en variables estáticas durante el request es la función: node_load, cuando se llama a la función node_load para un particular ID de un nodo esta recupera la información de ese nodo de la base de datos la primera vez, pero la información es guardada en una variable estática para que pueda ser reutilizada durante el tiempo de duración del request, de esa manera si en diferentes lugares del código se requiere la información de ese nodo en particular no requiere ir mas de una vez a la base de datos a recuperar su información.

Esta es una de las formas de almacenamiento de información en cache de Drupal a nivel de Request, en siguientes post estaremos hablando de como se maneja la cache para el almacenamiento de variables a nivel de Sesión, Aplicación y Servidor.