Skip to content

sebas932/php-oai-pmh-client

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Coverage Status Code Quality Latest Stable Version Total Downloads

php-oai-pmh-client

Simple PHP client package for fetching data from an OAI-PMH server, using the Guzzle HTTP client. The returned data is parsed by QuiteSimpleXMLElement.

On network problems, the client will retry a configurable number of times, emitting a request.error event each time, before finally throwing a ConnectionError.

Install using Composer

composer require scriptotek/oai-pmh-client

Example

require_once('vendor/autoload.php');
use Scriptotek\OaiPmh\Client as OaiPmhClient;

$url = 'http://oai.bibsys.no/repository';

$client = new OaiPmhClient($url, array(
    'schema' => 'marcxchange',
    'user-agent' => 'MyTool/0.1',
    'max-retries' => 10,
    'sleep-time-on-error' => 30,
));

Fetching a single record

try {
    $record = $client->record('oai:bibsys.no:biblio:113889372');
} catch (Scriptotek\OaiPmh\ConnectionError $e) {
    echo $e->getMsg();
    die;
} catch (Scriptotek\OaiPmh\BadRequestError $e) {
    echo 'Bad request: ' . $e->getMsg() . "\n";
    die;
}

echo $record->identifier . "\n";
echo $record->datestamp . "\n";
echo $record->data->asXML() . "\n";

Iterating over a record set

foreach ($client->records('') as $record) {
	echo $record->identifier . "\n";
	echo $record->datestamp . "\n";
}

Events

$client->on('request.start', function($verb) {
    print "Starting " . $verb . " request\n";
});
$client->on('request.error', function($err) {
    print "Non-fatal error: " . $err . "\n";
});
$client->on('request.complete', function($verb) {
    print "Completed " . $verb . " request\n";
});

API documentation

API documentation can be generated using e.g. Sami, which is included in the dev requirements of composer.json.

php vendor/bin/sami.php update sami.config.php -v

You can view it at scriptotek.github.io/php-oai-pmh-client

About

PHP OAI-PMH client with a clean API

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%