PHPackages                             metarisc/metarisc-php - 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. metarisc/metarisc-php

ActiveLibrary

metarisc/metarisc-php
=====================

Metarisc PHP Library

07.2k↓33.3%3[1 PRs](https://github.com/metarisc/metarisc-php/pulls)PHP

Since Jun 11Pushed 9mo ago2 watchersCompare

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

READMEChangelogDependenciesVersions (2)Used By (0)

Metarisc PHP
============

[](#metarisc-php)

La librairie Metarisc PHP offre un accès simple et pratique à l'API Metarisc à partir d'applications écrites en langage PHP. Elle comprend un ensemble de classes et de fonctions pour l'ensemble des ressources de l'API.

Compatibilité
-------------

[](#compatibilité)

PHP 8.0 minimum.

Composer
--------

[](#composer)

Vous pouvez installer la librairie en utilisant [Composer](http://getcomposer.org/). Exécutez les commandes suivantes :

```
composer require metarisc/metarisc-php
```

Pour utiliser la librairie, utilisez l'[autoload Composer](https://getcomposer.org/doc/01-basic-usage.md#autoloading) :

```
require_once 'vendor/autoload.php';
```

Utilisation
-----------

[](#utilisation)

### Initialisation avec une authentification OAuth2

[](#initialisation-avec-une-authentification-oauth2)

#### Client credential flow :

[](#client-credential-flow-)

Pour utiliser le flow [Client credential Grant](https://datatracker.ietf.org/doc/html/rfc6749#section-4.4) :

```
$metarisc = new \Metarisc\Metarisc([
    'metarisc_url' => 'https://api.metarisc.fr', // Optionnel
    'client_id' => 'your_client_id',
    'client_secret' => 'your_client_secret', // Optionnel
]);

$metarisc->authenticate('oauth2:client_credentials', [
    'scope' => 'openid', // Optionnel
    'access_token_url' => 'https://id.metarisc.fr/auth/realms/production/protocol/openid-connect/token', // Optionnel
]);
```

#### Authorization code flow :

[](#authorization-code-flow-)

Pour utiliser le flow [Authorization Code Grant](https://datatracker.ietf.org/doc/html/rfc6749#section-4.1) vous devez récupérer un code en redirigeant l'user-agent de l'utilisateur vers le point de terminaison d'autorisation. Le client doit inclure son identifiant client, les scopes demandés, le state et un URI de redirection auquel le serveur d'autorisation renverra l'user-agent une fois l'accès accordé (ou refusé).

Pour faciliter la génération de l'URI vers le formulaire OAuth2 de Metarisc :

```
$metarisc = \Metarisc\Auth\OAuth2::authorizeUrl([
    'client_id' => 'xx',
    'redirect_uri' => 'xx', // Optionnel
    'scope' => 'xx', // Optionnel
    'state' => 'xx', // Optionnel
]);
```

Lorsque l'utilisateur a accepté la demande, le serveur d'autorisation redirige l'user-agent vers l'URI de redirection client fourni à l'aide d'une réponse de redirection HTTP avec un authorization code. Vous pouvez ensuite utiliser ce dernier pour initialiser le client :

```
$metarisc = new \Metarisc\Metarisc([
    'metarisc_url' => 'https://api.metarisc.fr', // Optionnel
    'client_id' => 'your_client_id',
    'client_secret' => 'your_client_secret', // Optionnel
]);

$metarisc->authenticate('oauth2:authorization_code', [
    'code' => 'your_authorization_code',
    'scope' => 'openid', // Optionnel
    'access_token_url' => 'https://id.metarisc.fr/auth/realms/production/protocol/openid-connect/token', // Optionnel
    'redirect_uri' => 'https://your_redirect_uri', // Optionnel
    'enable_refresh_token_grant_type' => false, // Optionnel
]);
```

### Requêtes simples

[](#requêtes-simples)

Pour effectuer une requête sur Metarisc, vous pouvez utiliser la fonction request.

Exemple :

```
$options = [];
$response = $metarisc->request('GET', '/@moi', $options);
```

La réponse obtenue est un objet [PSR7 Response](https://www.php-fig.org/psr/psr-7/#33-psrhttpmessageresponseinterface).

Note : Les options de requêtes disponibles sont celles de Guzzle (voir ).

### Pagination

[](#pagination)

Pour récupérer des résultats paginés Metarisc (voir la [documentation](http://metarisc.fr/docs/api/#/#pagination)), vous pouvez utiliser une fonction simplifiant son utilisation :

```
$paginator = $metarisc->pagination('GET', '/pei', ['query' => ['est_indisponible' => true]]);
$paginator->setMaxNbPages(75);
$paginator->setCurrentPage(3);
$nbResults = $paginator->getNbResults();
$currentPageResults = $paginator->getCurrentPageResults();
```

Le paginator obtenu est un objet [Pagerfanta](https://www.babdev.com/open-source/packages/pagerfanta/docs/4.x/usage).

Pour demander au paginator de retourner des objets métiers, vous pouvez passer l'option `model_class` afin qu'il puisse désérialiser des résultats de la page.

Note : Les options de requêtes disponibles sont celles de Guzzle (voir ).

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance41

Moderate activity, may be stable

Popularity25

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity20

Early-stage or recently created project

 Bus Factor2

2 contributors hold 50%+ of commits

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/28f3584f827147e98199dbdd7fd524a17831006792f6c0fac136b5d591d0d6bf?d=identicon)[kdubuc](/maintainers/kdubuc)

---

Top Contributors

[![kdubuc](https://avatars.githubusercontent.com/u/895661?v=4)](https://github.com/kdubuc "kdubuc (26 commits)")[![habibErfani](https://avatars.githubusercontent.com/u/94376141?v=4)](https://github.com/habibErfani "habibErfani (22 commits)")[![sdis62-metarisc-codegen-bot[bot]](https://avatars.githubusercontent.com/u/3135477?v=4)](https://github.com/sdis62-metarisc-codegen-bot[bot] "sdis62-metarisc-codegen-bot[bot] (16 commits)")[![GabGr25](https://avatars.githubusercontent.com/u/75422446?v=4)](https://github.com/GabGr25 "GabGr25 (1 commits)")[![Nassim-H](https://avatars.githubusercontent.com/u/101125927?v=4)](https://github.com/Nassim-H "Nassim-H (1 commits)")

### Embed Badge

![Health badge](/badges/metarisc-metarisc-php/health.svg)

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

PHPackages © 2026

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