Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. OpenCart
Code

Entender el almacenamiento en caché en OpenCart

by
Difficulty:BeginnerLength:ShortLanguages:

Spanish (Español) translation by Elías Nicolás (you can also view the original English article)

Hoy en día, no puede permitirse desconectarse ni siquiera por un par de minutos si se trata de una audiencia global, ya que le da a su competidor la oportunidad de demostrar que están por delante de usted.

El almacenamiento en caché es un factor importante si se trata de desarrollo web. Realmente ayuda a descargar el trabajo pesado que un servidor web tiene que hacer para atender miles de solicitudes si no millones simultáneamente. Hay un montón de opciones disponibles en la actualidad que proporcionan un impulso de rendimiento a su aplicación web, pero el concepto básico de almacenamiento en caché sigue siendo el mismo.

El propósito de la caché

Atrás han quedado los días en que sólo se necesita para construir un sitio web HTML estático que contenía un par de páginas y que estaba hecho. En ese caso, no tienes que preocuparte por las solicitudes simultáneas y el tráfico pesado generado en tu sitio web, ya que es mucho más rápido enviar esas páginas HTML estáticas en comparación con las páginas web dinámicas que llevan bastante recursos de servidor para crearse a sí mismos.

Una página dinámica típica hace mucho, desde consultar una base de datos hasta obtener datos de proveedores de servicios de terceros. Requiere mucho mostrar una página que incluye mucha información en diferentes formatos. Específicamente, no puede darse el lujo de consultar la base de datos para obtener la misma información compleja para cada solicitud a medida que aumenta el tráfico. Pronto hará que sus servidores estrechos de recursos, y antes de que pueda hacer algo, ¡se han ido!

Así que necesitas algo intermedio que acelere las cosas, y ahí es donde entra en escena cache en la imagen. La idea del almacenamiento en caché es muy simple— almacena los resultados calculados/formateados en algún lugar y los recopila cuando es necesario para que no tenga que volver a hacerlo. Ese "en alguna parte" podría estar en cualquier lugar: el sistema de archivos, la memoria o la propia base de datos.

Además, hay un montón de opciones disponibles para caché-memcached, Redis, Barniz, y mucho más. Usted podría utilizar ésos según sus requisitos, ya veces la combinación de componentes múltiples también ayuda a mejorar el funcionamiento exponencial.

Como se necesitaría una serie completa para explicar los entresijos de la caché, y también es algo fuera del alcance de este artículo, volveremos al contexto de OpenCart y continuaremos con él en la siguiente sección.

Utilizaremos la versión más reciente de OpenCart, así que asegúrate de haberlo instalado para seguir el código.

Cómo funciona el caché básico en OpenCart

La biblioteca de almacenamiento en caché se proporciona en el núcleo mismo, así que vamos a explorarlo de inmediato. Sigue adelante y abre el archivo system/library/cache.php en tu editor de texto favorito.

Comenzando con el constructor, inicializa el controlador de caché pasado en el argumento constructor. Si la clase está disponible para el adaptador de caché solicitado, se inicializará en la propiedad $this->cache, de lo contrario saldrá con el mensaje de error. Veremos los diferentes adaptadores de caché en la siguiente sección.

Además, hay tres funciones de envoltura que se utilizan para realizar todas las operaciones relacionadas con el almacenamiento en caché.

El método get se utiliza para recuperar el valor de la caché.

El método set se utiliza para almacenar el valor en el caché.

El método delete se utiliza para eliminar la asignación de clave/valor de la memoria caché.

Por lo tanto, es muy sencillo usar las funciones de almacenamiento en caché en sus módulos también.

Hay muchos lugares en el front-end donde se obtienen los datos de la memoria caché. Vamos a enumerar algunos de ellos:

  • Últimos productos
  • Productos más vendidos
  • Lista de fabricantes
  • Lista de países
  • Lista de monedas
  • Lista de zonas
  • Configuración de la tienda

En el caso del almacenamiento en caché de archivos, encontrará todos los archivos de caché almacenados en el directorio system/cache. Aunque OpenCart borra el caché en eventos apropiados, también puede borrar estos archivos manualmente para obtener los datos más recientes.

Así que eso es lo que se refiere al envoltorio de caché. En la siguiente sección, veremos los diferentes adaptadores de caché disponibles en el núcleo y el trabajo duro real que hacen ellos.

Adaptadores de caché

Existen tres adaptadores de caché disponibles en el núcleo de OpenCart—file, memcache y apc. El adaptador de caché predeterminado utilizado en OpenCart es file.

Aquí está el fragmento de index.php que inicializa el objeto $cache con el adaptador de caché predeterminado.

Desafortunadamente, no hay ninguna forma configurable que le permite cambiar el adaptador de caché, ya que es escrito especificamente. Dicho esto, puede utilizar OCMOD para cambiar el adaptador de caché predeterminado sin alterar el archivo del núcleo.

Como la implementación de cada adaptador de almacenamiento en caché es casi la misma, sólo examinaremos uno de los adaptadores de almacenamiento en caché para ver qué está pasando. Tomemos memcache, por ejemplo. Adelante y abra system/library/cache/mem.php. También puede explorar los otros dos adaptadores file.php y apc.php en el mismo directorio.

Cada adaptador de caché se define bajo el namespace "Cache" para evitar conflictos.

Recuerde los métodos que discutimos en la última sección—que en realidad terminan aquí. Por lo tanto, cuando llama al método get en la clase Cache, en realidad llama al método get definido en la clase de adaptador real, en nuestro caso es la clase Mem.

La lógica real de manipular las entradas de la caché ocurre en los métodos de la clase del adaptador. Como puede ver, en el constructor de la clase Mem inicializamos el objeto Memcache y establecimos la conexión usando el método pconnect. Por último, estamos utilizando los métodos get, set y delete del objeto Memcache para manipular las entradas de la caché.

Por otro lado, si echa un vistazo a la implementación del controlador de caché de archivos, se necesita un poco de esfuerzo para almacenar y recuperar entradas de la caché utilizando las funciones del sistema de archivos. Aparte de eso, no hay ninguna diferencia en la implementación.

Así que eso es lo que se refiere a los adaptadores de almacenamiento en caché en OpenCart. Por supuesto, usted podría seguir adelante y hacer su propio controlador de almacenamiento en caché personalizado si es necesario. Sólo tiene que implementar los métodos necesarios y ya está.

Es todo por hoy. Espero que hayas disfrutado del tutorial y que lo animará a usar el almacenamiento en caché en sus módulos personalizados según sea necesario.

Conclusion

Hoy en día, hemos discutido el almacenamiento en caché en OpenCart. Empezamos con los conceptos básicos de la caché, y a medida que avanzábamos exploramos cómo se utiliza el almacenamiento en caché en el front-end. Finalmente, pasamos por los diferentes adaptadores de caché disponibles en OpenCart.

Siéntase libre de expresar sus pensamientos en forma de consultas y sugerencias usando el feed a continuación.

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.