scriptotek / oai-pmh-client
v0.7.1
2016-11-27 21:18 UTC
Requires
- php: >=5.5
- danmichaelo/quitesimplexmlelement: ~0.4
- evenement/evenement: ~2.0
- guzzlehttp/guzzle: ~6.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.8|~5.5
- sami/sami: ~3.3
README
注意:此软件包已被放弃。我建议使用 caseyamcl/phpoaipmh 软件包。它具有几乎相同的接口、优秀的代码质量和更多的贡献者,因此我认为没有理由继续维护此软件包。
php-oai-pmh-client
一个简单的 PHP 客户端软件包,用于从 OAI-PMH 服务器获取数据,使用 Guzzle HTTP 客户端。返回的数据由 QuiteSimpleXMLElement 解析。
在网络问题的情况下,客户端将重试一个可配置的次数,每次发出一个 request.error
事件,最后抛出一个 ConnectionError
。
使用 Composer 安装
composer require scriptotek/oai-pmh-client
示例
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, ));
获取单个记录
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";
遍历记录集
foreach ($client->records('') as $record) { echo $record->identifier . "\n"; echo $record->datestamp . "\n"; }
事件
$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 文档
API 文档可以使用例如 Sami 生成,该工具包含在 composer.json
的开发需求中。
php vendor/bin/sami.php update sami.config.php -v
您可以在 scriptotek.github.io/php-oai-pmh-client 上查看它。