PHPackages                             bclibraries/fulltext-finder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. bclibraries/fulltext-finder

ActiveLibrary[API Development](/categories/api)

bclibraries/fulltext-finder
===========================

Finds links to fulltexts from citations

v0.4.0(3y ago)0167[7 issues](https://github.com/BCLibraries/FulltextFinder/issues)[1 PRs](https://github.com/BCLibraries/FulltextFinder/pulls)MITPHPPHP ^8.1

Since Sep 25Pushed 3y ago4 watchersCompare

[ Source](https://github.com/BCLibraries/FulltextFinder)[ Packagist](https://packagist.org/packages/bclibraries/fulltext-finder)[ RSS](/packages/bclibraries-fulltext-finder/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (8)Versions (20)Used By (0)

FulltextFinder
==============

[](#fulltextfinder)

FulltextFinder is a PHP library for finding links to fulltext versions of articles from user input.

Installation
------------

[](#installation)

Use the package manager [composer](https://getcomposer.org/) 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
-----

[](#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
-------------

[](#configuration)

The `BCLib\FulltextFinder\Config` object carries all optional FullTextFinder configuration parameters:

ParameterDescriptionDefault`UserAgent`The `User-Agent` header sent to the Crossref API. For User-Agent requirements, see [the Crossref API docs](https://github.com/CrossRef/rest-api-doc#meta). 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.20Running tests
=============

[](#running-tests)

[PHPUnit](https://phpunit.de/) is used for testing. You may need to enable the sockets extension.

```
./vendor/bin/phpunit
```

Contributing
------------

[](#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.

License
-------

[](#license)

[MIT](https://choosealicense.com/licenses/mit/)

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 89.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~61 days

Recently: every ~219 days

Total

18

Last Release

1382d ago

PHP version history (5 changes)v0.1.0PHP 7.1.0

v0.1.2PHP 7.1.26

v0.1.4PHP &gt;=7.1.26

v0.3.0PHP &gt;=7.4

v0.4.0PHP ^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/210404?v=4)[Benjamin Florin](/maintainers/Otterfan)[@Otterfan](https://github.com/Otterfan)

---

Top Contributors

[![Otterfan](https://avatars.githubusercontent.com/u/210404?v=4)](https://github.com/Otterfan "Otterfan (26 commits)")[![LukeGaudreau](https://avatars.githubusercontent.com/u/120206?v=4)](https://github.com/LukeGaudreau "LukeGaudreau (3 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bclibraries-fulltext-finder/health.svg)

```
[![Health](https://phpackages.com/badges/bclibraries-fulltext-finder/health.svg)](https://phpackages.com/packages/bclibraries-fulltext-finder)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M650](/packages/sylius-sylius)[wordpress/php-ai-client

A provider agnostic PHP AI client SDK to communicate with any generative AI models of various capabilities using a uniform API.

26236.6k14](/packages/wordpress-php-ai-client)[openai-php/symfony

Symfony Bundle for OpenAI

215715.5k3](/packages/openai-php-symfony)[swisnl/json-api-client

A PHP package for mapping remote JSON:API resources to Eloquent like models and collections.

211473.2k12](/packages/swisnl-json-api-client)[toshy/bunnynet-php

BunnyNet API client for PHP

61172.1k6](/packages/toshy-bunnynet-php)[arbor-education/arbor-sdk-php

Arbor Education PHP SDK

116.8k](/packages/arbor-education-arbor-sdk-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
