WordPress Advanced OOP Part 9: extensible plugins Using WordPress API plug – in
Dans mon dernier billet, j’ai expliqué comment filterwpquery obtient getter et Setter pour cet objet.
Getposts () manque actuellement une méthode pour exécuter la méthode Setter avant d’utiliser content getter. C’est à ça que servent les actions. Donc, ma première étape est d’activer une action avant de récupérer le Programme d’acquisition de contenu afin que nous puissions appeler le Setter de l’événement: maintenant nous diffusons l’événement. Nous avons besoin d’un système qui utilise l’implémentation par défaut pour se connecter et répondre, mais qui peut être modifié par un plug – in. Nous avons commencé par lui demander de faire la même chose afin que nous puissions prouver qu’elle fonctionnait encore dans nos tests. Ensuite, nous ajouterons un filtre pour le rendre extensible.
Ma prochaine étape consiste à introduire une classe pour contrôler les modèles de recherche. J’appelle ça \
Dans le deuxième test, j’ai créé une requête fictive WP _ rest en utilisant mockry. Ceci est nécessaire car les tests unitaires de ce plugin ne chargeront pas WordPress. J’ai appris à le faire avec l’article de Tonya sur la moquerie. C’est un de mes outils et je vais en utiliser plus. Il n’y a pas de moyen facile de simuler, c’est pourquoi j’utilise souvent uniquement la suite de Test wordpress, en utilisant l’environnement WordPress au lieu de t
Test toutes les minutes. Il est bon de les séparer comme ce plug – in d’exemple, mais il n’est pas extensible de créer une simulation pour chaque classe WordPress. Ajouter un filtre maintenant que nous avons cette classe, rendons – la extensible. C’est notre but. Vérifions ça.
Dans ma prochaine soumission, j’ai ajouté un filtre qui, s’il est nul, utilise ce routeur interne. S’il s’agit d’une entrée valide, elle est retournée. Je l’ai prouvé par des tests d’intégration. WordPress Core utilise ce modèle de filtre de retour précoce. Ce modèle utilise des filtres pour bloquer sélectivement le comportement par défaut. Si rien ne change les résultats valides retournés par le module filtre vide, le comportement de base par défaut est exécuté, et si sa sortie valide est ignorée. Dans le premier article de cette série, j’ai écrit comment posts _ pre Query agit comme un filtre de retour précoce pour les requêtes réelles de la base de données WP query. Nous utilisons ce filtre pour fournir les résultats des requêtes wp \ U.
Voici une classe de schéma reconstruite avec un nouveau filtre: Notez que le nom du filtre est défini par une constante de classe. Cela facilite la synchronisation des noms de filtres à plusieurs endroits. J’aime le faire, mais si la classe interagit avec plusieurs crochets, elle ne Redimensionne pas et j’essaie d’éviter de le faire, mais je ne peux pas toujours le faire. Un des endroits où j’utilise cette constante est dans les tests pour prouver que le filtre est correctement court – circuité à la logique par défaut. J’ai utilisé des tests d’intégration plutôt que des tests unitaires pour le prouver. J’ai choisi cette stratégie au lieu d’utiliser la simulation pour tester, parce qu’elle montre comment les éléments de base de la mise en oeuvre des add – ons fonctionnent. Bien que les tests ne remplacent pas la documentation, ils peuvent souvent servir d’exemple de la façon dont le code devrait être utilisé.
Ce type de test integraz