Traduction du billet
'Services_Ebay 0.11.0 released' de php-tools:
Stéphane a publié une nouvelle version de
Services_Ebay, avec deux nouvelles fonctionnalités et plusieurs méthodes. La première fonctionnalité est le système de cache des réponses du WebService d'eBay: intégré dans les modèles de classes de Services_Ebay, ceci permet de mettre les réponses des requêtes faites à eBay dans un cache local pour éviter les temps de transfert souvent assez longs de ces requêtes.
L'utilisation du cache est très simple:
<?php
$session = Services_Ebay::getSession($devId, $appId, $certId);
$session->setToken($token);
// choisir le cache local sous forme de fichiers
$userCache = Services_Ebay::loadCache('Filesystem', array('path' => './cache'));
// le fichier cache expirera après 15 minutes
$userCache->setExpiry('Static', 15);
// utiliser ce cache pour tous les modèles utilisateur
Services_Ebay_Model_User::setCache($userCache);
// charger un modèle d'utilisateur
$user = Services_Ebay::loadModel('User', 'superman-74', $session);
if ($user->isCached()) {
echo 'donées dans le cache';
print_r($user->toArray());
} else {
echo 'requête des donées online';
$user->Get();
print_r($user->toArray());
}
?>
Après avoir instancié un nouveau cache, on définit la durée de validité des données enregistrées. Pour l'instant, il est seulement possible de définir une durée fixe, mais comme les vérifications de durée sont des objets, il est facile d'en ajouter d'autres. Stéphane compte ajouter un objet de vérifiaction de validité qui diminuera automatiquement la durée du cache plus la fin de l'enchère approche. Il pense aussi ajouter un cache qui enregistre les données dans une base de données au lieu de fichiers, pour permettre un stockage plus flexible.
La deuxième fonctionnalité (avec un peu d'aide du fabuleux
Adam Trachtenberg) est l'implémentation de la recherche de produits. Disponible sur eBay sous forme de fomrulaires permettant de rechercher des produits par une série de critères de recherche, Services_Ebay permet maintenant d'y accéder de manière très simple. eBay offre deux manières d'y accéder:
- par GetProductFinder, qui livre du XML contentant les informations nécessaires sous forme brute (champs de formulaire et valeurs pour la catégorie de produits choisie)
- pat getProductFinderXSL qui livre la feuille de style XSL qu'eBay utilise pour le rendu du HTML à partir des données XML brutes.
Comme l'accès à ces données se fait par un modèle dans Services_Ebay, il est tres simple d'y accéder:
<?php
$session = Services_Ebay::getSession($devId, $appId, $certId);
$session->setToken($token);
$ebay = new Services_Ebay($session);
// charger la feuille de style (enregistrée localement, ce serait trop
// long de la charger a chaque fois)
$xsl = file_get_contents('product_finder.xsl');
// charger la recherche de produits et l'afficher
list($productFinder) = $ebay->GetProductFinder(1909);
echo $productFinder->render($xsl);
}
?>
Ce petit bout de code affiche un formulaire incluant un peu de javascript, permettant à l'utilisateur de choisir ses produits à partir des critères disponibles.
Cette nouvelle version est aussi la première publication incluant des parties contribuées par
Carsten Lucke. Carsten a ajouté des méthodes spécifiques pour les enchères et utilisateurs Néerlandais, ainsi que les modèles nécessaires.