bclibraries / fulltext-finder
Finds links to fulltexts from citations
v0.4.0
2022-07-28 21:54 UTC
Requires
- php: ^8.1
- ext-json: *
- bclibraries/libkey-client: ^v0.2.0
- nyholm/psr7: ^1.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- symfony/http-client: ^5.1
Requires (Dev)
- mockery/mockery: ^1.4.2
- php-http/mock-client: ^1.4.1
- phpunit/phpunit: ^9
README
FulltextFinder is a PHP library for finding links to fulltext versions of articles from user input.
Installation
Use the package manager composer to install FulltextFinder.
composer init # Only necessary when starting a project from scratch.
composer require bclibraries/fulltext-finder:^0.1
FulltextFinder is currently a 0.* release, so things will change drastically with any minor release.
Usage
use BCLib\FulltextFinder\Config; use BCLib\FulltextFinder\FullTextFinder; require_once __DIR__ . '/vendor/autoload.php'; # LibKey API identifiers. $libkey_apikey = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; $libkey_id = 'xxx'; $config = new Config(); $config->setUserAgent('MyApp/1.1 (https://mylibrary.college.edu/search; mailto:myapp.admin@cikkege.edu)') ->setFindByCitationMinLength(50); $finder = FullTextFinder::build($libkey_id, $libkey_apikey, $config); $response = $finder->find('Ben-Harush, A., Ezra-Shiovitz, S., Doron, I., Alon, S., Leibovitz, A., et al. (2017). Ageism among physicians, nurses, and social workers: findings from a qualitative study. European Journal of Ageing, 14(1), 39-48.'); echo "{$response->getTitle()}\n"; echo "\t{$response->getFullText()}\n";
Configuration
The BCLib\FulltextFinder\Config
object carries all optional FullTextFinder configuration parameters:
Parameter | Description | Default |
---|---|---|
UserAgent |
The User-Agent header sent to the Crossref API. For User-Agent requirements, see the Crossref API docs. If the User-Agent is not set appropriately or is set to null , Crossref requests will be made in the public API pool. |
null |
FindByCitationMinLength |
The minimum length of a search string in characters before find-by-citation will be applied. Searches under this length will look for a DOI in the string but will not query Crossref if a DOI is not found. | 20 |
Running tests
PHPUnit is used for testing. You may need to enable the sockets extension.
./vendor/bin/phpunit
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.