Widgets de WordPress: Refactorización, Parte 5
En la publicación anterior, creamos un Registro que se usará para almacenar todas las diversas clases responsables de darle su funcionalidad a nuestro widget.
Para hacer esto, se presentarán una variedad de otras clases, pero antes de ir allí, debemos agregar el Registro al programa de arranque del complemento (y mucho menos crear un programa de arranque para el complemento).
Específicamente, aquí es donde lo dejamos:
Como se mencionó anteriormente en la publicación, debemos agregar esto al arranque del complemento. Sin embargo, para hacer esto, necesitamos definir nuestro propio filtro para que podamos pasar fácilmente el registro por el resto del complemento (cuando llegue el momento de hacerlo).
Entonces, en esta publicación, nos enfocaremos en hacer exactamente eso.
El modelo de widget de WordPress: refactorización, parte 5
Si ha estado siguiendo la serie hasta este punto, entonces debería estar en una buena posición específicamente para agregar el Registro para que tengamos acceso a él a través del complemento.
Sin embargo, para hacer esto, se supone que sabe cómo definir sus filtros. En WordPress, usamos acciones y filtros todo el tiempo.
Sin embargo, lo que pasa con estos ganchos es que ya están definidos. Entonces, ¿cómo definimos nuestro filtro?
Echemos un vistazo a hacer exactamente eso.
1 Definición de nuestro filtro
Primero, necesitamos entender algunos conceptos:
- que es un filtro
- como agregar un filtro,
- como introducir nuestro registro en el filtro
- cómo recuperar la clase del filtro.
Afortunadamente, todo lo anterior es fácil de explicar.
¿Qué es un filtro?
En pocas palabras, los ganchos nos permiten llamar a WordPress en momentos específicos durante la ejecución del programa. Las acciones generalmente se reservan para el comportamiento; Los filtros están reservados para los datos.
Además, los filtros nos permiten trabajar con datos específicos en la aplicación, pueden ser datos preexistentes o incluso datos nuevos. Y en nuestro caso, será la clase Registry la que contenga referencias a otros datos.
Agregar un filtro
Agregar un filtro es fácil. Tiene tres partes:
- llamando a agregar_filtro ,
- definir un identificador único para el filtro,
- pasando información al filtro que se puede devolver cada vez que se llama.
Para nosotros, identificaré nuestro registro como el filtro wpWidgetRegistry. Tenga en cuenta, sin embargo, que es importante que elija un nombre único para su implementación porque si no lo hace, podría terminar con colisiones con otros datos si otro complemento usa el mismo identificado.
De todos modos, agregar un filtro realiza una tarea simple:
Enganche una función o método a una acción de filtro específica.
Entonces esto significa que necesitamos definir un método con nuestra ID. Debido a la naturaleza de PHP, no necesitamos usar una función separada.
En su lugar, podemos usar una función anónima.
Las funciones anónimas, también conocidas como cierres, permiten la creación de funciones que no tienen un nombre específico. Son más útiles como el valor de los parámetros de devolución de llamada, pero tienen muchos otros usos.
La función anónima que vamos a definir aceptará una referencia al complemento como argumento y luego la devolverá cada vez que se llame al filtro (que se mostrará más adelante en este artículo).
Pasar información a nuestro filtro
Ahora que tenemos todo eso cubierto, podemos pasar por el proceso de crear una instancia de nuestro Registro, definir un filtro y luego agregar el registro, para que sea accesible en toda la aplicación.
Entonces, dentro del archivo del complemento principal, que es el archivo wordpress-widget-boilerplate.php, agregamos las siguientes líneas de código :
<?php
namespace WordPressWidgetBoilerplate;
use WordPressWidgetBoilerplateUtilitiesRegistry;
// More to come...
Lo anterior declara el espacio de nombres en el que reside el Registro. Luego agregamos el siguiente bloque de código debajo del cargador automático:
<?php
// Setup a filter so we can retrieve the registry throughout the plugin.
$registry = new Registry();
add_filter('wpWidgetRegistry', function() use ($registry) {
return $registry;
});
Tenga en cuenta que cuando intenta activar el complemento, no se activará y arrojará un error. Esto se debe a la falta de un cargador automático que se discutirá en la próxima publicación.
2 Recuperando Nuestro Registro
Dado que el registro se define en el arranque del complemento y se realiza mediante el uso de un filtro, podemos acceder al registro en cualquier lugar de nuestro complemento llamando a nuestro filtro personalizado.
Por ejemplo, digamos que estamos en otra clase y necesitamos obtener una referencia al registro. Para ello, podemos hacer esta llamada :
<?php
// Retrieve the registry anywhere in the plugin.
$registry = apply_filters('wpWidgetRegistry', null);
Y eso es. Fácil, ¿verdad? Siempre que todo se haya agregado correctamente al registro, que se cubrirá pronto, podremos acceder a todos ellos a través de los identificadores únicos que usamos en la publicación anterior.
El cargador automático
Ahora estamos comenzando a usar espacios de nombres y usar otras clases. Esto significa que vamos a necesitar usar cargadores automáticos.
Entonces, antes de refactorizar toda la clase tal como está ahora, vamos a desviarnos un poco hacia algunas de las características de Composer para ver cómo se usa para generar un cargador automático (además de las cosas que ya estamos usándolo para manejar la calidad de nuestro código fuente).

