PHPackages                             memora/statut - 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. [Logging &amp; Monitoring](/categories/logging)
4. /
5. memora/statut

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

memora/statut
=============

Page de statut publique multilingue pour applications Laravel, multi-provider (Robotalp et plus).

v0.1.4(3w ago)013MITPHPPHP &gt;=8.2CI failing

Since May 18Pushed 3w agoCompare

[ Source](https://github.com/memorasolutions/statut)[ Packagist](https://packagist.org/packages/memora/statut)[ Docs](https://memora.solutions)[ RSS](/packages/memora-statut/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (5)Dependencies (4)Versions (6)Used By (0)

Statut — page de statut Laravel multilingue
===========================================

[](#statut--page-de-statut-laravel-multilingue)

[![Latest Version on Packagist](https://camo.githubusercontent.com/d246257a32450b64c6c7cc987ddbfd4db38c63dece808ba7365cdb80f6058cf0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d656d6f72612f7374617475742e737667)](https://packagist.org/packages/memora/statut)[![Total Downloads](https://camo.githubusercontent.com/9f9b429d5915432290cbc7baaab656d1e228eadcab61e2f103c6719ef75197b0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d656d6f72612f7374617475742e737667)](https://packagist.org/packages/memora/statut)[![Tests](https://github.com/memorasolutions/statut/actions/workflows/tests.yml/badge.svg)](https://github.com/memorasolutions/statut/actions/workflows/tests.yml)[![PHP Version](https://camo.githubusercontent.com/07eb9ff589eb30aada83af3d0200b3aa09ddc1381550f9dddf26c078e4221f41/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6d656d6f72612f7374617475742e737667)](https://packagist.org/packages/memora/statut)[![License: MIT](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)

Une page de statut publique pour vos applications Laravel, prête à brancher sur une plateforme de monitoring tierce (Robotalp aujourd'hui, d'autres demain), entièrement traduite (FR par défaut, EN inclus), accessible (WCAG 2.2 AA), responsive, avec mode sombre automatique et zéro dépendance frontale.

Pourquoi
--------

[](#pourquoi)

Les pages de statut hébergées des plateformes de monitoring sont rarement traduites, jamais à la marque de votre site, et difficiles à intégrer dans le design existant. Ce paquet vous donne une page `/statut` 100 % sous votre contrôle, qui consomme l'API de votre fournisseur de surveillance et affiche les données dans un layout intégré au reste de votre site.

Fonctionnalités
---------------

[](#fonctionnalités)

- Page publique `/statut` (route configurable) qui s'intègre dans le layout Blade de votre site hôte
- Multi-fournisseur via un contrat `MonitoringProvider` — implémentation Robotalp incluse, ajout d'autres plateformes sans toucher au reste du paquet
- Indicateur global d'état (tous opérationnels, incident en cours, maintenance) avec compteurs détaillés
- Cartes de moniteurs avec statut, dernier check, temps de réponse, et barre de disponibilité par fenêtre temporelle (24 h, 7 j, 30 j, 90 j)
- Liste des incidents en cours
- Internationalisation : français (par défaut) et anglais inclus, ajout d'autres langues trivial
- Mode sombre automatique via `prefers-color-scheme`
- Accessibilité WCAG 2.2 AA (contrastes, focus visibles, rôles ARIA, aria-live, cibles tactiles minimum 44×44 px)
- Mise en cache configurable (60 s par défaut) pour limiter la charge sur l'API distante
- Aucune dépendance JavaScript ni Tailwind requise côté hôte — un seul bloc CSS scopé sous `.statut-*` pour éviter tout conflit avec votre design
- Vues et traductions entièrement publiables et personnalisables

Pré-requis
----------

[](#pré-requis)

- PHP 8.2 ou plus récent
- Laravel 10, 11 ou 12
- Un compte sur une plateforme de monitoring supportée (actuellement : Robotalp)

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

[](#installation)

```
composer require memora/statut
```

Le service provider est auto-découvert. Publiez ensuite la configuration :

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

(Optionnel) publiez les vues et les traductions si vous voulez les personnaliser :

```
php artisan vendor:publish --tag=statut-views
php artisan vendor:publish --tag=statut-lang
```

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

[](#configuration)

Ajoutez les variables d'environnement nécessaires dans votre `.env` :

```
STATUT_ENABLED=true
STATUT_PROVIDER=robotalp
STATUT_ROUTE_PATH=/statut
STATUT_LAYOUT=layouts.app
STATUT_SECTION=content
STATUT_CACHE_TTL=60

STATUT_BRAND_NAME="Votre marque"
STATUT_BRAND_URL=https://votre-site.example
STATUT_BRAND_LOGO=https://votre-site.example/logo.svg

# Robotalp
STATUT_ROBOTALP_BASE_URL=https://api.robotalp.com
STATUT_ROBOTALP_API_KEY=votre_clef_api
STATUT_ROBOTALP_WORKSPACE_ID=123456

# Optionnel : moniteurs à masquer (CSV d'identifiants)
STATUT_HIDDEN_MONITORS=99999,88888
```

### Layout du site hôte

[](#layout-du-site-hôte)

La page de statut étend le layout défini par `STATUT_LAYOUT` (`layouts.app` par défaut) et injecte son contenu dans la section `STATUT_SECTION` (`content` par défaut). Assurez-vous que votre layout Blade contient bien `@yield('content')` (ou ajustez `STATUT_SECTION` au nom utilisé chez vous).

> **Accessibilité** — la page hérite de l'attribut `` du layout hôte. Pour une lecture correcte par les lecteurs d'écran, votre layout doit déclarer `` (ou la langue appropriée). Le paquet ne peut pas définir cet attribut lui-même puisqu'il s'insère à l'intérieur du layout existant.

### Personnaliser les vues

[](#personnaliser-les-vues)

Si vous avez publié les vues (`statut-views`), modifiez-les dans `resources/views/vendor/statut`. Le CSS est scopé sous `.statut-page` ; vous pouvez le surcharger sans risque de conflit.

### Ajouter ou modifier une langue

[](#ajouter-ou-modifier-une-langue)

Si vous avez publié les traductions (`statut-lang`), elles vivent dans `lang/vendor/statut/{fr,en}/messages.php` et `status.php`. Pour ajouter une nouvelle langue, copiez l'un des dossiers existants et traduisez les chaînes.

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

[](#utilisation)

Une fois installé et configuré, ouvrez `/statut` (ou la route que vous avez choisie). La page affichera l'état global, la liste des moniteurs et les incidents actifs, le tout rafraîchi automatiquement toutes les 60 secondes.

Vous pouvez aussi accéder programmatiquement au fournisseur de surveillance via la façade :

```
use Memora\Statut\Facades\Statut;

$overview = Statut::getOverview();
$monitors = Statut::listMonitors();
$incidents = Statut::getActiveIncidents();
```

Étendre avec un nouveau fournisseur
-----------------------------------

[](#étendre-avec-un-nouveau-fournisseur)

Tous les fournisseurs implémentent l'interface `Memora\Statut\Contracts\MonitoringProvider`. Pour brancher une plateforme autre que Robotalp :

1. Créez une classe `MonNouveauProvider implements MonitoringProvider` dans votre application.
2. Liez-la dans un service provider de votre application :

```
$this->app->singleton(\Memora\Statut\Contracts\MonitoringProvider::class, fn () => new MonNouveauProvider($config));
```

3. Définissez `STATUT_PROVIDER=mon_nouveau_provider` (la valeur informative — c'est la liaison du conteneur qui détermine la classe utilisée).

Tests
-----

[](#tests)

```
composer install
composer test
```

Les tests utilisent Pest et Orchestra Testbench. Toutes les requêtes HTTP sont simulées via `Http::fake()`.

Sécurité
--------

[](#sécurité)

Si vous découvrez une vulnérabilité, écrivez à **** plutôt que d'ouvrir une issue publique. Nous accusons réception sous 72 heures.

Contribution
------------

[](#contribution)

Les contributions sont bienvenues. Ouvrez une issue avant toute PR significative pour qu'on en discute. Respectez PSR-12 et ajoutez des tests Pest pour toute fonctionnalité.

Licence
-------

[](#licence)

Distribué sous licence MIT — voir [LICENSE](LICENSE).

Auteur
------

[](#auteur)

**[MEMORA solutions](https://memora.solutions)** —

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance95

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

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 ~0 days

Total

5

Last Release

21d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/fdde13cd64e792ec40f2bf95cef821da7511c5fa266d1f95875189c0a35588d7?d=identicon)[memorasolutions](/maintainers/memorasolutions)

---

Tags

bladefrenchlaravelmonitoringphprobotalpstatus-pagestatutuptimewcaglaravelmonitoringstatus pageuptimerobotalpstatut

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/memora-statut/health.svg)

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

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)

PHPackages © 2026

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