✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Usando el patrón de registro en WordPress

6

He tenido algunas conversaciones con varios amigos y otras personas en Twitter sobre la noción de variables globales en lenguajes de programación. Para aquellos que son nuevos en la programación o que no están seguros de por qué son malos:

El uso de variables globales hace que el software sea más difícil de leer y comprender. Dado que cualquier código en cualquier parte del programa puede cambiar el valor de la variable en cualquier momento, comprender el uso de la variable puede implicar comprender una gran parte del programa.

Esto no quiere decir que no tengan su uso, pero si está interesado en la programación orientada a objetos (especialmente en una configuración de WordPress donde usará PHP), entonces es importante comprender algunas alternativas mejores. que las variables globales.

Es decir, hay formas de trabajar pasando datos por la aplicación sin necesidad de variables globales. Y una de esas formas es el patrón de registro.

El patrón de registro en WordPress

Primero, tenga en cuenta que los patrones de diseño trascienden cualquier patrón en particular. Siempre que un lenguaje ofrezca los conceptos de objetos (o incluso abstracciones), entonces es posible implementar el patrón.

Pero, ¿por qué molestarse en usar esto?

Usando el patrón de registro en WordPress

Foto de Samuel Zeller en Unsplash

En resumen, proporciona una forma orientada a objetos de pasar información alrededor de su aplicación sin necesidad de variables globales. Cosas como los contenedores de inyección de dependencia también son buenos para esto, pero están más allá del alcance de esta publicación. También diría que hay momentos en los que pueden ser excesivos en el contexto de pequeños complementos.

Implementando el Patrón

Dicho esto, ¿cómo podemos implementar el patrón de registro en WordPress y luego aprovecharlo a lo largo de nuestro trabajo? Echemos un vistazo a la estructura básica del patrón, primero:

Observe que su implementación es bastante simple:

  1. La clase contiene una única matriz como propiedad privada.
  2. Los datos se agregan a la matriz con una identificación específica.
  3. Los datos se pueden recuperar del patrón con el ID.

Incluso podría llevar este patrón en particular al siguiente nivel si acepta solo una clase de cierto tipo (como un AbstractEvent, por ejemplo) y luego invoca automáticamente una función en la clase cada vez que se pasa (o se recupera) del registro.

Pero eso es entrar en una implementación más compleja que me gustaría para esta publicación.

Configuración del Registro

Debido a la naturaleza del sistema de enlace de WordPress, hay una forma particular en la que el Registro debe configurarse y luego registrarse con WordPress.

Digamos que estás trabajando con un complemento. Dentro del archivo de arranque del complemento, haga algo como esto:

Esto crea el registro y luego crea un filtro correspondiente que podemos usar más adelante en el complemento para recuperar el registro y, por lo tanto, otros objetos que mantiene.

Uso del Registro

Para agregar un objeto al registro, llame a la función de agregar y pase una identificación única y una instancia del objeto. Tenga en cuenta que nuestra implementación actual eliminará cualquier instancia anterior de un objeto que tenga la misma clave y la reemplazará con lo que le pasemos.

Desde allí, puede recuperar los objetos que almacenó en el registro:

Y puedes usarlos como lo haría oyu de cualquier otra manera. Pero esto evita la necesidad de usar singletons, variables globales u otras cosas peligrosas.

Una palabra sobre la capacidad de prueba

Otra ventaja que encuentro con la implementación de este patrón es que no solo te permite escribir más fácilmente pruebas unitarias contra él, sino que también te da la capacidad de escribir pruebas contra los objetos que puede contener.

Con eso quiero decir que puede escribir sus clases de manera más independiente de WordPress, separando así la lógica del dominio de la aplicación central y haciéndolas más representativas de los datos que se supone que deben mantener.

Fuente de grabación: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More