Codegenie utilise des cookies nécessaires pour les sessions, la sécurité des formulaires et la mémorisation de votre choix de confidentialité. Les analyses facultatives ne sont activées qu’après consentement.
Utilisez ce package pendant le développement, en CI ou lors d'un scan explicite de déploiement ou de maintenance pour détecter les effets de bord risqués dans DB::transaction(...) et les transactions manuelles avant qu'un rollback puisse annuler les modifications en base alors que des actions externes ont déjà été exécutées.
Les limites de transaction non sûres deviennent visibles par analyse statique, les modèles after-commit courants sont reconnus et les projets existants peuvent renforcer progressivement leurs contrôles grâce à une baseline.
À qui s’adresse cet outil ? Équipes Laravel qui utilisent des transactions de base de données et veulent synchroniser en toute sécurité les jobs, événements, e-mails, notifications, appels HTTP et autres effets externes avec les commits, tout en les validant dans leur chaîne de livraison.
Quickstart
Installation locale
Utilisez le dépôt comme point de départ. Vérifiez toujours les exigences et lockfiles de votre projet avant la production.
Choisissez un mode d’installation. Ces commandes sont des alternatives, pas des étapes consécutives.
01Analyse DB::transaction(...) ainsi que les flux manuels beginTransaction(), commit() et rollBack()
02Détecte notamment les jobs, événements, e-mails, notifications, broadcasts, appels HTTP mutatifs et effets de bord liés au filesystem, au cache, à Redis, aux processus ou aux écritures de base de données sur une autre connexion
03Reconnaît les modèles after-commit sûrs courants, notamment afterCommit(), ShouldQueueAfterCommit, ShouldDispatchAfterCommit et les callbacks DB::afterCommit(...)
04Prend en charge les formats GitHub, JSON et SARIF avec un seuil fail-on configurable pour la CI et d'autres automatisations
05Prend en charge les baselines et les suppressions locales ciblées pour une adoption contrôlée dans les projets existants
06Peut être exécuté explicitement en lecture seule dans les environnements local, testing, staging, production, CI et Laravel personnalisés, sans variable .env propre au package
07Effectue uniquement une analyse statique et ne modifie ni les transactions ni le comportement HTTP normal via des hooks runtime ou du monkey-patching
Un rollback n’annule pas les actions externes
Scénario synthétique : une transaction modifie une commande et effectue un appel HTTP, puis échoue. La base peut revenir en arrière, mais l’appel externe n’est pas annulé. Transaction Guard analyse statiquement ces modèles ; il ne modifie pas les transactions pendant une requête HTTP.
bash
php artisan transaction:guard --format=json
Résoudre un constat
Choisissez la dépendance de développement ou une installation qui reste disponible après --no-dev. N’exécutez pas les deux alternatives successivement.
Organisez les actions externes après le commit concerné. Elles peuvent encore échouer ; la reprise, les statuts et l’idempotence restent des tâches de conception distinctes.
Un modèle after-commit ne garantit pas un traitement externe exactement unique. Testez les doublons et les nouvelles tentatives après échec.
Le scanner documenté n’ouvre pas de connexion de base de données et n’exécute pas le code analysé. L’application Laravel hôte doit néanmoins pouvoir démarrer.
L’analyse statique peut manquer de contexte. Préférez une exception ciblée et justifiée à la suppression de tous les avertissements.
Package Composer open source pour Laravel 12/13 et Livewire 3.6+/4 : formulaire configurable avec validation, récapitulatif et hook de traitement contrôlé.
Équipes Laravel qui intègrent des formulaires multi-étapes sans confier la persistance de leur application au package.