PHPackages                             ld/statisty - 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. ld/statisty

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

ld/statisty
===========

Laravel Analytics &amp; Observability Engine

00PHPCI failing

Since Jul 2Pushed todayCompare

[ Source](https://github.com/DENMOUNS/statisty)[ Packagist](https://packagist.org/packages/ld/statisty)[ RSS](/packages/ld-statisty/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

📊 Statisty for Laravel
======================

[](#-statisty-for-laravel)

 **Le tableau de bord analytique ultime, généré automatiquement pour vos modèles Eloquent.**

---

**Statisty** est un package Laravel conçu pour transformer instantanément votre base de données en un tableau de bord analytique riche, interactif et professionnel. Sans avoir à écrire une seule ligne de code frontend, Statisty inspecte vos modèles et génère des KPIs, des graphiques Highcharts et des tableaux de données interactifs.

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

[](#-fonctionnalités)

- **Zéro Configuration Requise :** Installez le package, et votre tableau de bord est prêt.
- **Workflows Dynamiques :** Une page dédiée par modèle comprenant des graphiques (Area, Spline, Pie, Bar) et des DataTables avec filtres, recherche globale et export (PDF, Excel, CSV, Print).
- **Détection Intelligence des KPIs :** Calcule automatiquement les totaux, sommes et moyennes en inspectant le typage de vos colonnes (ex: `price`, `amount`, `total`).
- **Générateur de Documentation API :** Scanne vos contrôleurs, FormRequests et annotations (`@bodyParam`, `@queryParam`) pour générer automatiquement la documentation de votre API.
- **Suivi des Slow Queries :** Détecte et enregistre les requêtes SQL lentes directement dans le tableau de bord pour optimiser les performances.
- **Diagnostic de Santé (Health) :** Vérification en temps réel de votre base de données, du cache, des logs, et du mode debug.

---

📦 Installation
--------------

[](#-installation)

1. Installez le package via Composer :

```
composer require ld/statisty
```

1. Publiez les assets (CSS, JS, Images) et le fichier de configuration :

```
php artisan vendor:publish --tag=statisty-config
php artisan vendor:publish --tag=statisty-assets
php artisan vendor:publish --tag=statisty-views
```

*(Optionnel)* Pour de meilleures performances en production, lancez la commande de découverte afin de cacher la structure de vos modèles :

```
php artisan statisty:discover
```

---

🚦 Démarrage Rapide
------------------

[](#-démarrage-rapide)

Par défaut, Statisty est directement accessible à l'URL suivante sur votre application locale :

```
http://votre-app.test/web/statisty/dashboard

```

Sur cette page, vous retrouverez :

- Une **Heatmap d'activité** de votre application.
- Les **KPIs globaux** de vos modèles.
- Un accès rapide aux **Workflows** de chaque modèle configuré.

---

⚙️ Configuration Détaillée
--------------------------

[](#️-configuration-détaillée)

Toute la configuration s'effectue dans le fichier publié `config/statisty.php`. Voici les sections clés pour personnaliser Statisty selon vos besoins.

### 1. Sécurité et Accès (Middlewares)

[](#1-sécurité-et-accès-middlewares)

Par défaut, Statisty est ouvert. **En production, il est crucial de protéger l'accès.**Ouvrez `config/statisty.php` et ajoutez vos middlewares (comme `auth` ou un middleware personnalisé) dans la clé `routes.web.middleware` :

```
'routes' => [
    'web' => [
        'enabled' => true,
        'prefix' => 'web/statisty',
        'middleware' => ['web', 'auth', 'can:view-dashboard'], // Sécurisez l'accès ici
    ],
    // Vous pouvez également désactiver l'API interne si vous n'utilisez pas les graphiques dynamiques
    'api' => [
        'enabled' => true,
        'prefix' => 'api/statisty',
        'middleware' => ['auth:sanctum'], // Protection de l'API interne
    ],
],
```

### 2. Configuration des Modèles (Workflows)

[](#2-configuration-des-modèles-workflows)

Statisty vous permet de choisir précisément quels modèles exposer, et surtout quelles colonnes ou relations afficher dans le tableau de données.

Rendez-vous dans la clé `'models'` de `config/statisty.php` :

```
'models' => [
    App\Models\Order::class => [
        'enabled' => true,
        // Les colonnes exactes à afficher dans la DataTable
        'columns' => ['id', 'user_id', 'total_amount', 'status', 'created_at'],

        // Définir les relations pour extraire des métriques croisées
        'relations' => [
            'user' => ['columns' => ['id', 'name', 'email']],
            'orderItems' => ['columns' => ['id', 'product_id', 'quantity', 'price']],
        ],
    ],

    // Vous pouvez désactiver un modèle sans le supprimer du fichier
    App\Models\Invoice::class => [
        'enabled' => false,
    ],

    //Exemple plus concert

    'models' => [
        App\Models\User::class => [
            'enabled' => true,
            'columns' => ['id', 'name', 'email', 'created_at'],
            'relations' => [
                'orders' => ['columns' => ['id', 'total_amount', 'status']],
                'posts' => ['columns' => ['id', 'title', 'status']],
                'comments' => ['columns' => ['id', 'content']],
            ],
        ],
        App\Models\Category::class => [
            'enabled' => true,
            'columns' => ['id', 'name', 'slug', 'description', 'created_at'],
            'relations' => [
                'products' => ['columns' => ['id', 'name', 'price', 'stock']],
            ],
        ],
        App\Models\Product::class => [
            'enabled' => true,
            'columns' => ['id', 'category_id', 'name', 'slug', 'description', 'price', 'stock', 'status', 'created_at'],
            'relations' => [
                'category' => ['columns' => ['id', 'name']],
                'orderItems' => ['columns' => ['id', 'order_id', 'quantity', 'price']],
            ],
        ],
        App\Models\Order::class => [
            'enabled' => true,
            'columns' => ['id', 'user_id', 'total_amount', 'status', 'created_at'],
            'relations' => [
                'user' => ['columns' => ['id', 'name', 'email']],
                'orderItems' => ['columns' => ['id', 'product_id', 'quantity', 'price']],
            ],
        ],
        App\Models\OrderItem::class => [
            'enabled' => true,
            'columns' => ['id', 'order_id', 'product_id', 'quantity', 'price', 'created_at'],
            'relations' => [
                'order' => ['columns' => ['id', 'total_amount', 'status']],
                'product' => ['columns' => ['id', 'name', 'price']],
            ],
        ],
        App\Models\Blog::class => [
            'enabled' => false,
            'columns' => ['id', 'name', 'slug', 'description', 'created_at'],
            'relations' => [
                'posts' => ['columns' => ['id', 'title', 'status']],
            ],
        ],
        App\Models\Post::class => [
            'enabled' => false,
            'columns' => ['id', 'blog_id', 'user_id', 'title', 'slug', 'content', 'status', 'created_at'],
            'relations' => [
                'blog' => ['columns' => ['id', 'name']],
                'author' => ['columns' => ['id', 'name', 'email']],
                'comments' => ['columns' => ['id', 'content']],
            ],
        ],
        App\Models\Comment::class => [
            'enabled' => false,
            'columns' => ['id', 'post_id', 'user_id', 'content', 'created_at'],
            'relations' => [
                'post' => ['columns' => ['id', 'title']],
                'user' => ['columns' => ['id', 'name', 'email']],
            ],
        ],
    ],

],
```

> **Astuce :** Si vous souhaitez que Statisty ignore certain modèles (ex: `PersonalAccessToken`), ajoutez-les dans le tableau `'disabled_models'`.

### 3. Masquage des Données Sensibles

[](#3-masquage-des-données-sensibles)

Statisty masque par défaut certaines colonnes (comme `password` ou `remember_token`). Vous pouvez étendre cette liste pour protéger vos données confidentielles :

```
'security' => [
    'hidden_columns' => [
        'password', 'remember_token', 'api_token', 'secret', 'stripe_key', 'ssn'
    ],
],
```

### 4. Suivi des Slow Queries

[](#4-suivi-des-slow-queries)

Statisty intègre un tracker de requêtes lentes. Il écoute les événements de la base de données et consigne les requêtes dépassant un certain seuil.

```
'features' => [
    'slow_queries' => [
        'enabled' => env('STATISTY_SLOW_QUERIES_ENABLED', true),
        'threshold_ms' => 100, // Enregistrer toute requête prenant plus de 100 millisecondes
    ],
],
```

Vous pouvez consulter ces requêtes directement depuis le menu **Logs** de Statisty.

---

📚 Menu de Navigation
--------------------

[](#-menu-de-navigation)

Une fois dans Statisty, utilisez la barre latérale pour naviguer :

- **Dashboard :** L'accueil, avec la heatmap globale et un résumé des workflows.
- **Workflows :** Un menu listant tous vos modèles configurés. Cliquez sur un modèle pour voir ses graphiques (Line, Bar, Pie) et exporter ses données.
- **Health :** Un diagnostic de votre environnement (connexion BDD, permissions de logs, mode debug).
- **Logs :** Visionneuse de logs Laravel intégrée (`laravel.log`) et accès aux **Slow Queries**.
- **Jobs :** Interface pour surveiller l'état de vos queues (si utilisé).
- **API Docs :** Documentation auto-générée de votre API basée sur la réflexion de vos contrôleurs et annotations `@bodyParam` / `@queryParam`.

---

🗺️ Roadmap (Fonctionnalités à venir)
------------------------------------

[](#️-roadmap-fonctionnalités-à-venir)

Statisty continue d'évoluer vers un tableau de bord Laravel toujours plus complete et intuitif. Les prochaines versions se concentreront sur :

- Une meilleure expérience de navigation dans les workflows.
- Des tables plus réactives avec filtrage avancé et export amélioré.
- Des diagnostics plus précis pour la santé applicative.
- Une documentation API encore plus riche et automatique.

---

🤝 Contribution &amp; Support
----------------------------

[](#-contribution--support)

Si vous trouvez un bug ou souhaitez proposer une nouvelle fonctionnalité, n'hésitez pas à ouvrir une *Issue* ou soumettre une *Pull Request* sur notre dépôt GitHub.

*Développé avec passion pour la communauté Laravel.*

###  Health Score

20

↑

LowBetter than 13% of packages

Maintenance65

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/9ecb34b6c7523a4ba77fbd5adf15de1336a35a17a10511b1e05174091188272b?d=identicon)[DENMOUNS](/maintainers/DENMOUNS)

---

Top Contributors

[![DENMOUNS](https://avatars.githubusercontent.com/u/52181094?v=4)](https://github.com/DENMOUNS "DENMOUNS (24 commits)")

### Embed Badge

![Health badge](/badges/ld-statisty/health.svg)

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

###  Alternatives

[psr/log

Common interface for logging libraries

10.4k1.2B11.3k](/packages/psr-log)[open-telemetry/api

API for OpenTelemetry PHP.

1941.5M273](/packages/open-telemetry-api)[open-telemetry/sdk

SDK for OpenTelemetry PHP.

2328.5M335](/packages/open-telemetry-sdk)

PHPackages © 2026

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