Ceci est une ancienne révision du document !
Implémentation de l'API en PHP
L'implémentation de l'API se présente sous la forme d'un fichier unique qui comprend les différentes classes de l'API ainsi que des classes utilitaires. La dernière version stable de ce fichier est disponible à cette adresse : http://dataexport.scrutari.net/impl/php/scrutaridataexport.txt (remplacez .txt per .php pour l'exécution)
Toutes les classes et constantes de ce fichier commence par le suffixe SDE_ afin de minimiser le risque de conflits de noms avec d'autres classes PHP. Cette implémentation fonctionne avec PHP 5. Elle est sous licence MIT.
Le dépôt subversion permet d'obtenir la dernière version du fichier ainsi que des exemples d'utilisation
svn co http://depot.exemole.fr/svn/web/apps/scrutari.net/php
Exemple du site www.comedie.org
L'exemple suivant est celui du site www.comedie.org. Celui-ci est en Wordpress. La structure des données de Wordpress étant assez simple, il a été choisi d'écrire un script interrogeant directement les données de la base MySQl plutôt que de passer par une procédure plus lourde d'extension Wordpress.
Outre le fichier scrutaridataexport.php, cette extraction est basé sur deux fichiers : comedie.scrutari-data.php qui comprend la configuration de l'accès (voir http://dataexport.scrutari.net/impl/php/comedie.scrutari-data.txt et ci-dessous) et comedie.php qui comprend l'extraction proprement dite (voir http://dataexport.scrutari.net/impl/php/comedie.txt).
Fichier comedie.scrutari-data.php
Ce fichier contient les informations de la configuration (accès à la base de données).
<?php //Indication que les données transmises sont du XML header("content-type: text/xml;charset=UTF-8"); // Nom de la base de données de WordPress. define('DB_NAME', '*'); // Utilisateur de la base de données MySQL. define('DB_USER', '*'); // Mot de passe de la base de données MySQL. define('DB_PASSWORD', '*'); // Adresse de l'hébergement MySQL. define('DB_HOST', 'localhost'); // Jeu de caractères à utiliser par la base de données define('DB_CHARSET', 'utf8'); // Chaine vide pour SCRUTARIDATA_PATH, les données XML sont affichées directement en sortie define('SCRUTARIDATA_PATH', ''); // Appel de comedie.php require("comedie.php");
Si on avait voulu que l'extraction soit enregistrée dans un fichier, on aurait cette définition pour SCRUTARIDATA_PATH :
define('SCRUTARIDATA_PATH', '/path/to/directory/comedie.scrutari-data.xml');