Introduction
makfly/stripe-cashier-bundle apporte à Symfony un socle Stripe orienté billing:
- abonnements et essais
- paiements one-shot
- Stripe Checkout
- webhooks Stripe avec handlers extensibles
- archivage automatique PDF des factures payées (GeneratedInvoice)
- stockage local des factures dans
var/data/invoices - intégration Doctrine pour les clients Stripe, abonnements et factures générées
- [optionnel] intégration Symfony Messenger pour le traitement asynchrone des webhooks
Le bundle est pensé pour deux usages:
- un projet Symfony qui veut une base billing prête à l’emploi
- une application métier qui veut garder la main sur son tunnel de commande tout en déléguant Stripe, les webhooks et l’archivage des factures
Prérequis
| Dépendance | Version |
|---|---|
| PHP | ^8.2 |
| Symfony | ^7.0 ou ^8.0 |
| Doctrine ORM | ^3.0 |
| Stripe PHP SDK | ^16.0 |
| dompdf/dompdf | ^3.1 (renderer PDF par défaut) |
| symfony/messenger | Optionnel (pour webhooks async) |
ext-intl
ext-intl est recommandée, mais pas obligatoire.
Sans intl, le bundle continue à fonctionner:
- les montants tombent sur un fallback sûr
- les dates de facture tombent sur un format ISO (
YYYY-MM-DD) - les traductions de labels FR/EN restent disponibles
Avec intl installée, vous obtenez:
- un format monétaire natif par locale
- des dates localisées plus propres dans les PDF
- un rendu FR/EN plus proche d’une facture de production
Contrat du bundle
Le flux officiel d’installation est:
composer require makfly/stripe-cashier-bundle
php bin/console cashier:installLa commande d’installation prépare:
config/packages/cashier.yamlconfig/packages/cashier_doctrine.yamlconfig/routes/cashier.yaml- les variables Stripe dans
.env var/datavar/data/invoices
Surface couverte
Le bundle gère aujourd’hui:
StripeCustomerSubscriptionSubscriptionItemGeneratedInvoice- les webhooks Stripe courants de billing
- le rendu et l’archivage PDF des factures
Il laisse volontairement à l’application consommatrice:
- la logique métier de commande
- les règles d’autorisation
- les écrans front
- les workflows de réservation ou fulfillment
Last updated on