PHPackages                             ethelserth/biblionet-laravel - 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. ethelserth/biblionet-laravel

ActiveLibrary[API Development](/categories/api)

ethelserth/biblionet-laravel
============================

Laravel integration for the Biblionet Greek books API client

v1.0.0(3mo ago)01↓92.3%MITPHPPHP ^8.1

Since Apr 3Pushed 3mo agoCompare

[ Source](https://github.com/ethelserth/biblionet-laravel)[ Packagist](https://packagist.org/packages/ethelserth/biblionet-laravel)[ RSS](/packages/ethelserth-biblionet-laravel/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (7)Versions (2)Used By (0)

ethelserth/biblionet-laravel
============================

[](#ethelserthbiblionet-laravel)

Laravel integration for [ethelserth/biblionet-php](https://github.com/ethelserth/biblionet-php), the PHP client for the [Biblionet](https://biblionet.gr) Greek books API.

This package provides a service provider, config publishing, and a facade so the Biblionet client works as a native Laravel citizen.

---

Requirements
------------

[](#requirements)

- PHP 8.1 or higher
- Laravel 10, 11, 12, or 13
- Biblionet API credentials (request access at [biblionet.gr](https://biblionet.gr))

---

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

[](#installation)

```
composer require ethelserth/biblionet-laravel
```

Laravel's package auto-discovery will register the service provider and facade automatically.

Publish the config file:

```
php artisan vendor:publish --tag=biblionet-config
```

Add your credentials to `.env`:

```
BIBLIONET_USERNAME=your-username
BIBLIONET_PASSWORD=your-password
```

---

Usage
-----

[](#usage)

### Via dependency injection (recommended)

[](#via-dependency-injection-recommended)

```
use Ethelserth\Biblionet\BiblionetClient;

class BookController extends Controller
{
    public function __construct(
        private readonly BiblionetClient $biblionet,
    ) {}

    public function show(int $id): JsonResponse
    {
        $title = $this->biblionet->getTitle($id);

        return response()->json($title);
    }
}
```

### Via facade

[](#via-facade)

```
use Ethelserth\BiblionetLaravel\Facades\Biblionet;

$title       = Biblionet::getTitle(72584);
$summaries   = Biblionet::getMonthTitles(2024, 1);
$contributors = Biblionet::getContributors(72584);
```

### Via the container

[](#via-the-container)

```
$client = app(BiblionetClient::class);
$title  = $client->getTitle(72584);
```

---

Configuration
-------------

[](#configuration)

After publishing, `config/biblionet.php` exposes:

KeyEnv variableDefaultDescription`username``BIBLIONET_USERNAME``''`Your Biblionet username`password``BIBLIONET_PASSWORD``''`Your Biblionet password`timeout``BIBLIONET_TIMEOUT``30`HTTP timeout in secondsCredentials are validated lazily — the application boots normally even if they are not set. The exception fires only when something first tries to resolve the client from the container.

---

Swapping the HTTP client
------------------------

[](#swapping-the-http-client)

By default the package uses Guzzle as its PSR-18 HTTP client. If you have already bound `Psr\Http\Client\ClientInterface` in your application's service container, the package will use that instead:

```
// In your own AppServiceProvider
$this->app->bind(ClientInterface::class, fn() => new YourPreferredClient());
$this->app->bind(RequestFactoryInterface::class, fn() => new YourFactory());
$this->app->bind(StreamFactoryInterface::class, fn() => new YourFactory());
```

---

Testing
-------

[](#testing)

When testing code that uses the Biblionet client, mock `BiblionetClient` directly rather than faking HTTP:

```
use Ethelserth\Biblionet\BiblionetClient;
use Ethelserth\Biblionet\DTOs\Title;

$this->mock(BiblionetClient::class)
    ->shouldReceive('getTitle')
    ->with(72584)
    ->andReturn(new Title(...));
```

---

License
-------

[](#license)

MIT. See [LICENSE](LICENSE).

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance82

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

92d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8569d5c01a6c620bb2d521b2dadcd72bccc4e101bfb7851e574d644348731bfd?d=identicon)[ethelserth](/maintainers/ethelserth)

---

Top Contributors

[![ethelserth](https://avatars.githubusercontent.com/u/16955982?v=4)](https://github.com/ethelserth "ethelserth (2 commits)")

---

Tags

apiclientlaravelgreekbooksbiblionet

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ethelserth-biblionet-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/ethelserth-biblionet-laravel/health.svg)](https://phpackages.com/packages/ethelserth-biblionet-laravel)
```

###  Alternatives

[aws/aws-sdk-php

AWS SDK for PHP - Use Amazon Web Services in your PHP project

6.3k543.5M2.6k](/packages/aws-aws-sdk-php)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5022.0k](/packages/simplestats-io-laravel-client)[smodav/mpesa

M-Pesa API implementation

16467.9k1](/packages/smodav-mpesa)[bushlanov-dev/max-bot-api-client-php

Max Bot API Client library

486.3k](/packages/bushlanov-dev-max-bot-api-client-php)

PHPackages © 2026

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