Traduction du billet
Services_Ebay 0.8.0 released de php-tools:
Stéphane a publié une nouvelle version de sa librairie
Services_Ebay dans
PEAR, avec un changement en alpha comme l'interface commence à être plus stable. Cette version inclut quelques fonctionalités intéressantes: Services_Ebay offre maintenant une sorte d'introspection en permettant d'accéder a une liste de toutes les fonctions de l'interface en utilisant
Services_Ebay::getAvailableCalls(). De plus, il est maintenant possible de changer 'identiofiant de site (siteId), ce qui veut dire que la librairie n'est plus limitée à ebay.com. Pour aider dans le débogage d'une application utilisant Services_Ebay, et aider Stéphane à analyser les bogues, il est aussi possible de capturer les donées XML brutes envoyées et reçues par le WebService d'Ebay.
Mais la fonctionalité la plus intéressante, c'est surtout les modèles sur mesure, une idée partie du
Power Workshop de Toby et Lukas. Ils utilisaient Services_Ebay en conjonction avec d'autres librairies de PEAR, mais voulaient enregistrer des données supplémentaires pour les articles dans une base de données. Pour y arriver, ils ont crée un object qui contenait une référence à un objet du type Services_Ebay_Model_Item, ainsi que les données additionnelles à enregistrer. Ca marchait, mais ça n'était pas très joli et peut vite devenir bordellique.
Pour arriver au même résultat, il est maintenant possible de créer des modèles sur mesure pour remplacer ceux offerts par Services_Ebay - donc, de créer des classes pour les utilisateurs, articles, contacts, etc. Les données requises seront automatiquement enregistrées par Services_Ebay. Voilà un petit exemple comment on peut y arriver:
<?php;
require_once 'Services/Ebay.php';
// classe sur mesure très simple
class myItem extends Services_Ebay_Model_Item
{
// méthode exemple - tout est possible ici...
public function StoreItem()
{
echo "Vous pourriez par ex. enregistrer les données dans une base de données ici...";
}
}
Services_Ebay::useModelClass('Item', 'myItem');
$session = Services_Ebay::getSession($devId, $appId, $certId);
$session->setToken($token);
$ebay = new Services_Ebay($session);
$item = $ebay->GetItem('4501296414');
$item->StoreItem();
?>
C'est super simple et permet d'ajouter toutes les fonctionnalités dont vous pouvez avoir besoin sans encapsuler des méthodes ou de dupliquer du code.