The Daily Commit · Édition de rubrique La une PHP AI Dev EN DE FR ES

The Php Times

Lectures — Écosystème

Laravel Truss génère des diagrammes ER interactifs en direct de votre base de données


Laravel Truss, un package d'Alberto Arena, inspecte la structure de votre base et affiche un diagramme ER navigable dans le navigateur sous /truss.

LARAVEL NEWS, 10 août 2026 sélectionné par Sönke

Il ajoute diff de schéma, contrôles de santé, support multi-connexions et exports DBML, JSON, CSV, Mermaid et Markdown — hors ligne et compatible CSP.

Laravel Truss est un package d'Alberto Arena qui dessine la structure de votre base de données sous forme de diagramme entité-relation navigable dans le navigateur. Il ne lit que la structure — tables, colonnes, clés et index — sans jamais interroger les données, ce qui évite de brancher un client GUI externe ou de régénérer un diagramme statique après chaque migration. Le rendu s'appuie sur des assets Mermaid fournis avec le package.

La route /truss ouvre un canvas de type carte que l'on peut déplacer et zoomer. Cliquer sur une table active le Focus Mode, qui met en évidence la table et ses voisines par clé étrangère tout en estompant le reste ; un contrôle Depth élargit ce cercle d'un niveau à la fois. Les tables sont filtrables par nom, les libellés de colonnes basculent entre types SQL natifs et types Laravel, et deux thèmes (clair et sombre) sont disponibles. Plusieurs connexions se configurent dans config/truss.php avec les noms de config/database.php, chacune pouvant exclure ses propres tables via excluded_tables ; un sélecteur dans la barre d'outils permet alors de changer de connexion, en re-rendant le schéma et en conservant le choix dans l'URL. Chaque connexion est introspectée sur sa propre base, sans fuite entre schémas. Polices et bibliothèques étant embarquées, le tableau de bord fonctionne hors ligne et sous Content Security Policy stricte.

Pour le suivi des migrations, Truss met en cache un instantané structurel après leur exécution et le compare à la base courante : tables ajoutées ou supprimées, types de colonnes modifiés, ajustements d'index et de clés étrangères apparaissent dans un panneau « Changes » et via php artisan truss:diff. Le Schema Doctor effectue des vérifications déterministes signalant les tables sans clé primaire, les colonnes de clé étrangère non indexées, les index en double et les types de données risqués — dans un panneau « Health » ou via php artisan truss:doctor, utilisable en CI.

Les exports couvrent le diagramme en PNG ou SVG depuis le navigateur, et la structure en DBML, JSON, CSV, Mermaid ou dictionnaire de données Markdown, depuis le tableau de bord ou avec php artisan truss:export --format=dbml --output=docs/schema.dbml. Chaque table peut être isolée, copiée ou téléchargée en JSON, CSV ou Markdown. La sortie est déterministe ; un flag --check régénère l'export et fait échouer la CI s'il diffère du fichier commité.

Truss exige PHP 8.3+ et Laravel 12+. Installation via composer require albertoarena/laravel-truss --dev en local ; la route /truss n'est active qu'en environnement local par défaut, mais peut être activée en staging ou production derrière un contrôle d'accès si le package est installé en dépendance normale. Documentation sur trussphp.com et GitHub.

Lire la source originale (en anglais) ↗

Évaluer cet article : 0

Tribune des lecteurs

Pas encore de contributions — lance le débat.

← Écosystème — Page B1

"All the Code That's Fit to Ship" · The Daily Commit · Édition écran · Mentions légales · Politique de confidentialité