Ce tutoriel développe un épisode précédent, en se concentrant sur la construction d'une bibliothèque client API Diffbot robuste et bien testée à l'aide de Phpunit et TDD (développement axé sur le test). Les parties précédentes couvraient les fonctionnalités de base et les tests de classe abstraits. Cette partie se plonge dans la moquerie des données, les modèles d'usine et la gestion des entités pour une efficacité et une maintenabilité améliorées.
Améliorations de clés:
Diffbot
agit comme une usine, centralisant la création de sous-classes API. Cette approche évite la surexploitation tout en fournissant un moyen propre de gérer le client HTTP et le jeton API. Entity
et EntityFactory
Les classes sont introduites pour gérer les réponses de l'API. Cela permet un traitement flexible et interchangeable de différents types de données, améliorant l'adaptabilité de la bibliothèque. curl
. Détails de l'implémentation:
La classe Api
Résumé est mise à jour pour inclure une méthode registerDiffbot
, permettant aux sous-classes d'API d'accéder à l'instance Parent Diffbot
pour le client de jeton et HTTP. La classe Diffbot
est améliorée avec des méthodes pour définir et récupérer le client HTTP (GuzzleHttpClient
), et pour créer des instances de sous-classes API spécifiques (produit, article, image, analyse).
Un ajout crucial est l'introduction de la classe Entity
abstraite et de l'interface EntityFactory
. Le EntityFactory
(implémenté par la classe Entity
) crée des objets d'entité appropriés (par exemple, Product
, Article
, Image
) basés sur la réponse de l'API. Cela permet une gestion personnalisée de différents types de données. Une entité d'exemple Product
est montrée, démontrant comment accéder aux données analysées de la réponse.
La méthode buildUrl
est introduite dans la classe abstraite Api
pour construire des URL API, y compris les champs personnalisés. Des tests unitaires sont fournis pour vérifier ses fonctionnalités. La méthode call
dans la classe Api
Résumé utilise l'usine et l'usine d'entité HTTP de l'instance Diffbot
pour passer des appels API et renvoyer l'objet d'entité approprié.
Test:
Le tutoriel fournit un exemple de démontrant comment utiliser des réponses moquées avec Guzzle et Phpunit pour tester la méthode ProductApiTest
. Les instructions sont données sur la création de fichiers de réponse simulés à l'aide de call
. curl
Étapes suivantes:
Le tutoriel conclut en encourageant les lecteurs à mettre en œuvre les entités et les tests restants, en mettant l'accent sur les avantages à long terme des tests approfondis. La dernière partie couvrira l'emballage et le déploiement sur packagist.org.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!