Je viens de terminer la première version beta d’un nouveau plugin permettant la connexion à un serveur Z39.50. Ce protocole est surtout utilisé dans le domaine des bibliothèques pour rechercher des données bibliographiques. Le language d’interrogation est assez barbare. Un exemple de requête native:
@and @attr 1=1003 totok @attr 1=4 Handbuch
En utilisant ce plugin, la construction d’une requête sera facilitée. Il suffit pour cela de définir les index du serveur que l’on veut questionner. Exemple du fichier z3950.yml stocké dans le dossier config:
prod: connection_name: indexes: ti: 1=4 au: 1=1003 aw: 1=1035
Il faut également définir la connexion dans le fichier databases.yml de la manière suivante:
all: connection_name: class: sfZ3950Database param: dsn: yaz://user:pass@url:port/dbname options: protocol: 2 group: test cookie: cookie_name proxy: proxy_name persistent: false piggyback: true charset: UTF-8 preferredMessageSize: 10240 maximumRecordSize: 10240
Les options de la connexion ci-dessus ne sont pas obligatoires. Elles permettent d’affiner les réglages.
Maintenant, il vous suffit de définir une requête. Il se présente comme une requête SQL à la différence que dans la zone ‘from’, on insère le nom de la connexion:
$this->results = sfZ3950_Query::create() ->from('connection_name') ->where('au="totok" and ti="Handbuch"') ->orderBy('au ASC') ->execute();
Pour pouvoir utiliser ce plugin, vous devez au préalable avoir installé le client YAZ et le module PHP YAZ.
Vous pouvez trouver le plugin ici.
Vos retours seront le bienvenu pour améliorer encore ce plugin.
Bonne découverte.