PHPackages                             koba/informat-php-client - 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. koba/informat-php-client

ActiveLibrary[API Development](/categories/api)

koba/informat-php-client
========================

A PHP wrapper for the informat API

1.3.5(3mo ago)41.3k↓50%MITPHPPHP ^8.1.0CI passing

Since Dec 18Pushed 3mo ago3 watchersCompare

[ Source](https://github.com/kobavzw/informat-php-client)[ Packagist](https://packagist.org/packages/koba/informat-php-client)[ RSS](/packages/koba-informat-php-client/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (9)Versions (31)Used By (0)

Informat API Wrapper
====================

[](#informat-api-wrapper)

PHP client library for the Informat school software API. This client allows you to

- Fetch students
- Fetch registrations
- Create new preregistrations

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

[](#installation)

You can simply install the library through composer:

```
composer require koba/informat-php-client

```

The library also requires a PSR-17 and PSR-18 implementation. If these are not yet included in your project, you can install Guzzle 7 to meet this requirement (although any other implementation will work fine):

```
composer require guzzlehttp/guzzle

```

Usage
-----

[](#usage)

The library is built on 3 main 'layers':

- The `Informat` class, which is instantiated with your client ID and secret.
- Directories, which are logical groups of api calls. These can be obtained by using the provided methods on the `Informat` class.
- API calls, these can be instantiated by using the provided methods on the directories.

The code below is a quick example of how you can fetch students

```
use Koba\Informat\Informat;
use Koba\Informat\Scopes\AllScopesStrategy;

$informat = new Informat(
    'your-client-id',
    'your-client-secret',
    new AllScopesStrategy('000001', '000002', '000003'),
);

 $informat
    ->students()
    ->getStudents('000001')
    ->send();
```

This will return an array of `Student` objects, which has typed (and documented) properties.

### Scopes

[](#scopes)

Creating the `Informat` object can be done fairly easily as demonstrated above. The scopes parameter might need some extra explanation.

In the example above you see we pass an `AllScopesStrategy` object to the constructor. This is a way to let the API client know which scopes we want to request, which directly impacts which API calls you will be authorized to execute. The library supplies the `AllScopesStrategy`, which will request all possible scopes and the `SpecificScopesStrategy`, which allows you to specify the scopes that will be requested. Both require you to pass the institute numbers for all schools you wnat to access as parameters. The latter might be desirable if your client isn't authorized for all scopes or you want to limit the functionality for security reasons.

You can also create your own scope strategy by implementing the `ScopeStrategyInterface`.

### Calls

[](#calls)

There are a couple of 'rules' that should be followed when managing calls

- When creating a call using a method on a directory, all required parameters for the API call need to be passed to the function. The institute number will always be the first parameter as it is required for all API calls.
- All optional paremeters can be set using setters on the API call.
- Setters on the API calls returns the call itself, which means you can easily chain them together.
- An API call will always be executed with the `send` method.

An example to illustrate these points:

```
$informat
    ->students()
    ->getStudent(
        '000001', // institute number
        'bd26bb65-f54a-488d-866b-e1f9927d6be5' // student id
    )
    ->setReferenceDate(new DateTime())
    ->send();
```

### Advanced

[](#advanced)

The `Informat` object has some advanced setup options. You can pass an `AccessTokenManagerInterface` object, which allows you to implement your own access token caching solution. The rest of the constructor can be used to pass a [psr-18](https://www.php-fig.org/psr/psr-18/) client interface and [psr-17](https://www.php-fig.org/psr/psr-17/) HTTP response factories. If these options are omitted, the library will autodiscover any suitable implementations.

###  Health Score

47

—

FairBetter than 94% of packages

Maintenance80

Actively maintained with recent releases

Popularity22

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 98.2% 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 ~27 days

Recently: every ~66 days

Total

29

Last Release

103d ago

Major Versions

0.1.10-alpha → 1.0.02024-09-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/2ccee99f452b602f5b6639aa2d5c94a97de4cb49f0c9656c2f2c8f3dc6418638?d=identicon)[toolbox-kobavzw](/maintainers/toolbox-kobavzw)

---

Top Contributors

[![vixducis](https://avatars.githubusercontent.com/u/378998?v=4)](https://github.com/vixducis "vixducis (54 commits)")[![fredmatrack](https://avatars.githubusercontent.com/u/8707160?v=4)](https://github.com/fredmatrack "fredmatrack (1 commits)")

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/koba-informat-php-client/health.svg)

```
[![Health](https://phpackages.com/badges/koba-informat-php-client/health.svg)](https://phpackages.com/packages/koba-informat-php-client)
```

###  Alternatives

[openai-php/client

OpenAI PHP is a supercharged PHP API client that allows you to interact with the Open AI API

5.8k22.6M232](/packages/openai-php-client)[sylius/sylius

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

8.4k5.6M651](/packages/sylius-sylius)[deeplcom/deepl-php

Official DeepL API Client Library

2616.2M66](/packages/deeplcom-deepl-php)[getbrevo/brevo-php

Official Brevo provided RESTFul API V3 php library

963.1M35](/packages/getbrevo-brevo-php)[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)[partitech/php-mistral

Connect to Mistral | Anthropic | Xai | Hugging Face | LamaC++ | Vllm | Ollama

2624.1k1](/packages/partitech-php-mistral)

PHPackages © 2026

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