sfZ3950Plugin: Une nouvelle manière de se connecter

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.

Share