Los transitorios son un tipo de memoria súper utilizado en caché WordPress que a menudo es extremadamente sub-de uso. Pero, ¿qué son exactamente? Simplemente dicho, un transitorio es un fragmento de datos que puede almacenar con una fecha de vencimiento. Puede que no parezca largo, pero los transitorios le permiten crear sistemas más eficientes en WordPress, que se limpian. Esta es la tercera publicación de nuestra serie de seis partidos que se centra en WordPress para desarrolladores avanzados. Esta serie sigue de acuerdo con nuestro popular desarrollo de WordPress para usuarios intermedios, que le han presentado algunos temas de codificación, incluido el desarrollo de temas en detalle, la preparación de temas, la creación de complementos, tipos de publicaciones personalizadas y taxonomías, consultas y bucles, campos personalizados y de metadatos. ubicación.
En la publicación de la semana pasada, exploré la escritura de complementos orientados a objetos. En esta publicación, tomaremos un descanso de esto y comenzaremos a mirar algunos fragmentos avanzados de WordPress. Usaré OOP en ejemplos de código cuando sea apropiado, por lo que si se siente perdido, es mejor echar un vistazo a las dos primeras partes de esta serie. Vamos a atascarse. Nota: Es importante tener un conocimiento práctico sobre PHP, ya que este es el lenguaje básico de WordPress para esta serie, que cubre temas avanzados para los desarrolladores. Me referiré a los fragmentos de código en esta serie.
¿Por qué usar transitorios? Supongamos que crea un módulo Pinterest para su página inicial que muestra los últimos pines. Una implementación ordinaria puede llevar sus alfileres a cada carga de página. Esto es ineficiente por muchas razones: ejerce presión innecesaria sobre su servidor
A gran escala, el problema puede aumentar sus costos de alojamiento y/o ralentizar su sitio
Determina el uso inútil del ancho de la cinta
Es posible alcanzar los límites de la velocidad: sus alfileres no se mostrarán hasta que se restablezca el límite
Puede ejercer una presión incorrecta en otros servidores si usa API
Los transitorios son una forma de resolver este problema. Son esencialmente un mecanismo de almacenamiento de caché. Por ejemplo, en lugar de traer sus alfileres de Pinterest y mostrarlos, coloque los elementos transitorios como “personas intermedias”. Los pines recuperados podrían almacenarse en un período transitorio, con una expiración de dos horas. Durante dos horas, estas agujas se cargarían localmente. Una vez que hayan pasado las dos horas, el transitorio eliminaría los pines re-previos.
Otro uso excelente para los transitorios es el almacenamiento de resultados complejos de consultas, como publicaciones relacionadas o menús de encabezado complejos. Puede tomar el resultado de los interrogatorios complejos o el HTML generado sobre la base de ellos y puede mantenerlos en los transitorios. Entonces, ¿cómo funcionan los transitorios? Para poder construir un sistema eficiente, necesitará saber algunas cosas clave sobre los transitorios: dónde se pueden encontrar y cómo funciona su vencimiento. Cuando se almacenan los transitorios transitorios, generalmente se almacenan en la base de datos de WordPress, pero no siempre. Un complemento Memcached forzaría los elementos transitorios en la memoria, lo que los hace aún más rápidos. Por lo tanto, siempre debe confiar en las características de obtener/establecer/eliminar ofrecido por WordPress. ¿Cuándo expira Transitive? Al establecer una transición, dale un tiempo de vencimiento máximo. La transición se puede eliminar antes de que expire el término, pero nunca estará disponible más adelante. El impacto de esto es que siempre debe tener una reserva para la regeneración de datos. Creación de una lista de películas con transitorios Nuestro proyecto para esta lección es crear una lista de películas que usan transitorios. Encontré una hermosa API hermosa llamada Netflix Roulette, que ofrece un camino gratuito en la API de Netflix. Con su ayuda, enumeraremos películas de un director popular: Martin Scorsese.
En primer lugar, deberá crear un enchufe rápido. El mío se llama el “director-me favorece”. En esta etapa, debería poder crear un complemento que no haga nada, pero puede activarse en WordPress. Si necesita ayuda, eche un vistazo a nuestro artículo Introducción al desarrollo de los complementos de WordPress: Guía final. Cómo funciona la API de transitorios es bastante simple. La URL devolverá una lista de películas con Martin Scorsese, http://netflixroulette.net/api/api.php?director=martin%20Scorse. Los datos devueltos son una cadena JSON en el cuerpo. Usaremos json_decode () para convertirlo en una matriz de php y pasaremos a través de ella para crear el siguiente widget: complemento para la lista de películas
Construya sin transitorios El complemento contiene dos archivos. El archivo principal-my favorito- director.php contiene la clase básica que lanza todas nuestras características:
Cargue el esencial 1A20AACDD45B7A396E389FA5458BA9F5

Agregué un gancho al método del constructor que desencadena el método que inicia el widget. Los widgets se pueden crear utilizando la función registre_widget () que toma el nombre de la clase Widget como parámetro. La clase debe estar disponible, por lo que incluimos el archivo que contiene _ my_favorite_director_widget.php – en la parte superior. El código que crea el widget es el siguiente:
Lo esencial de ACD7CF50F12EE718879C32357DBD2325 está cargado
El método del constructor se encarga de los detalles básicos, como el nombre y la descripción del widget. El método Form () elimina los elementos necesarios para guardar los detalles del widget. En nuestro caso, este es simplemente el título. El método widget () se utiliza para crear la cara al usuario del widget. Usando la API HTTP, enviamos una solicitud a la API y analizamos los datos que necesitamos. Luego pasamos por los datos, creando la lista de películas. Esto debería funcionar bien, pero nuestro código está cargado de todos los problemas descritos anteriormente. Netflix Roulette es una API pública y gratuita, por lo que debemos hacer todo lo posible para minimizar la consulta que enviamos! La adición de transitorios transitorios para agregar transitorios siempre es similar:
Tome los datos que necesitamos de un transitorio
Compruebe si está vacío
Si está vacío, obtenga los datos de la fuente habitual y actualice los transitorios con los nuevos datos

Usar valor transitorio
El primer paso es separar el código que realmente toma los datos de la API en un nuevo método en nuestra clase de widgets. Vamos a decirle Get_Movies ().
La idea se carga 66FB7AF4A50791F9AEDCFD0E8FAC4EF4
A continuación, para cambiar el comienzo del widget () para usar el nuevo método con los transitorios.
Cargue el esencial D3456CB838B589466D4C0C0E3336B74E4E
Usando la función get_transient () recuperamos el valor de una transición llamada “Director-Me favorecido”. Si el valor está vacío (porque la transición nunca ha existido o expirado), tomamos los datos que necesitamos de la API y los usamos para actualizar los transitorios utilizando la función set_transient ().
Esta función toma el nombre del transitorio como el primer parámetro, los datos se almacenarán como el segundo y el tiempo de vencimiento como el tercero. Utilicé un WordPress constante para indicar que debería expirar en una semana. Cualquier otra cosa es exactamente lo mismo. En lugar de interrogar la API en cada carga de la página, redujimos esto a la vez a la semana. Es una apuesta bastante segura, ¡los directores no hacen nuevas películas todos los días! La extensión de nuestro complemento con varios directores en este momento, el director está codificado en el complemento. ¡Cambiemos esto y comencemos a aceptar la entrada del usuario! Para comenzar, debemos agregar un campo de texto al formulario de widget en el que los usuarios pueden ingresar el nombre de un directorio. El método de código completo para el formulario es el siguiente:
Cargue la idea 9DAF08C0C87920981307F39846A1D6E9
El siguiente lugar al que debemos ir es el método get_movies (). En el método widget () lo llamaremos de la siguiente manera:
La idea C73A22E1ABC268477556F6CCBB0253 está cargada.
Entonces podemos reescribir la función para admitir un argumento. Todo lo que tenemos que hacer es codificarlo a través de la URL y adjuntarlo a la URL básica.
Cargue la idea 9FD93FDCA35E2739AB44D01366C8F2E
Si completa el formulario con “Quentin Tarantino”, notará que la información se guarda, pero aún ves películas con Martin Scorsese en la lista. Esto se debe al hecho de que usamos el valor de la transición “Mi director favorito”, que se actualizará solo en una semana. Agregue Delete_Transient (‘My-Favorite-Director’) a la parte superior del widget (o espere una semana) y recarga la página. Debería ver la nueva lista de películas que se muestran. Elimine eliminar_transient () y continúe descubriendo por qué está tan mal. Se ve bien después de un aspecto corto, pero intente agregar un segundo widget con un directorio diferente. Recibirá widgets con diferentes títulos, pero con la misma lista. Utilizamos una única transición para dos conjuntos de datos diferentes, lo que significa que ambos widgets mostrarán la misma lista. La solución es usar los nombres variables para nuestros transitorios. Cambiemos el comienzo del método widget ().
En lugar de usar el “Director-Me favorecido”, usaremos “MFD- [Director desinfectante]”. Por ejemplo, cuando tome películas del Sr. Tarantino, el nombre transitorio será “MFD-Quentin-Tarantino”. Cada director tendrá un transitorio separado. Cuando se cargue la primera página, esto dará como resultado dos llamadas de API, pero se almacenarán en caché en un período transitorio durante una semana en qué punto se realizarán otras dos llamadas API.
Listas separadas de películas
Eliminando un transitorio utilizando acciones en algunos casos, querrá agregar algo a un temporal que pueda actualizarse mediante una acción del usuario. Por ejemplo, puede almacenar todo el HTML del menú de navegación superior en un transitorio. El HTML del menú de arriba nunca cambia solo, pero los usuarios pueden agregar/eliminar elementos del menú. En estos casos, puede establecer el límite de tiempo en algo extremadamente alto y puede confiar en otros ganchos para eliminar los transitorios cuando sea necesario. Cargue la idea 0F23A9F4612D6228B87FE2D9F1DABFB1
Como puede ver, nada le impide almacenar una pieza completa de HTML en un transitorio. Siempre tenga cuidado de mapear todos los ganchos que podrían cambiar los datos que almacena, de lo contrario, puede no estar sincronizado con las intenciones del sitio web. La conclusión de la API transitoria es una característica fuerte y fácil de usar de WordPress. Aconsejaría precaución al usarlo, especialmente si usa otros mecanismos de almacenamiento de caché fuertes. En general, es una buena idea usar los transicionarios para bits y datos, especialmente los resultados de las llamadas API, pero almacenar grandes partes de su sitio. Hay, por supuesto, excepciones, pero, como regla general, usan transitorios solo cuando esté seguro de que verá una ganancia de rendimiento.
¿Y este tutorial parecía útil? ¿Por qué quieres aprender el desarrollo de WordPress? ¿De qué quieres saber más? Háganos saber en los comentarios a continuación.
Etiquetas:
desarrollo

Desarrollo del desarrollo avanzado: trabajar con transitorios
Tags Desarrollo del desarrollo avanzado: trabajar con transitorios
homefinance blog