jonpurvis/faker-stripe
A Faker extension for generating realistic fake Stripe data—customer, payment intent, subscription, and other object IDs—so you can seed test databases and write fixtures without calling the Stripe API.
Architecture fit: Unchanged. This remains a test-data utility scoped to the Laravel testing layer—model factories, database seeders, Pest/PHPUnit fixtures—not a production runtime component. v5.5.0 does not alter that positioning; it is an additive provider surface change in a dev-only dependency.
Integration feasibility: High, and slightly improved. The release adds a tdsa_ (Standalone 3D Secure Authentication) identifier generator, which means fewer teams need local shims for that resource type. Integration is still a Composer dev dependency plus Faker provider registration—no migrations, no runtime service, no external API dependency. Existing adopters get the new type for free after a version bump; no registration change is implied by the notes.
Technical risk: Low, and marginally lower than the prior assessment. v5.5.0 is a minor, additive release with no breaking changes or deprecations called out. Two signals matter: (1) it confirms active maintenance with a steady PR cadence (PRs #36–#40), partially answering the prior abandonment concern; (2) the tdsa_ addition shows the provider is tracking Stripe's expanding ID namespace rather than freezing at a 2023-era resource set. The residual risks remain: format-only fidelity creates false confidence, and generated IDs will still be rejected if they reach a real Stripe API call. The "skeleton updates" PR is packaging/boilerplate housekeeping—low risk at a minor version, but worth a glance at composer.json for constraint drift.
Key questions:
tdsa_ exposed through the same provider method convention as existing types, and is it documented?Stack fit: Strong and unchanged. Complements—does not replace—Stripe test-mode API calls, HTTP mocking, or contract tests. Position it as a fixture-quality tool, not a Stripe emulator.
Migration path: Existing adopters should bump the pinned dev dependency and re-run CI; no code changes are required to keep current behavior. Teams that previously hand-rolled tdsa_ values or skipped 3DS fixture coverage can now replace those shims with the provider. Do not use generated IDs where the Stripe SDK will validate or transmit them.
Compatibility: Pin in require-dev, re-verify PHP/Faker/Laravel constraints against the project matrix after the skeleton updates, and run the CI version matrix. A minor bump plus a short compatibility spike remains sufficient; no migration workstream is warranted.
Sequencing:
composer.json and any skeleton/CI changes.tdsa_ coverage to 3DS-related factories and fixtures where relevant.tdsa_ shims.Maintenance: Low burden, with a modestly better outlook. MIT license, pure PHP, no services or infrastructure. The v5.5.0 release is evidence of continued upkeep, but adoption signals remain weak, so keep treating it as a tactical dependency with release monitoring rather than a strategic platform component. Skeleton changes are the one area to watch, since boilerplate refreshes can silently move minimum versions.
Support: Unchanged. Internal ownership with QA or platform engineering; no vendor SLA. The internal README should be updated to list tdsa_ among supported resource types alongside the existing registration and "never use in production" guidance.
Scaling: Negligible runtime cost; scales with test suite size like any Faker provider. Use deterministic seeds where reproducibility matters.
Failure modes: Provider not registered; Faker/PHP version mismatch surfaced by the skeleton updates; generated IDs rejected by Stripe if used in live API calls; fake IDs leaking into staging or demo environments; Stripe ID format drift for resource types not yet covered; package abandonment. Most are preventable through dev-only dependency scoping, a lockfile pin, and explicit test documentation.
Ramp-up: Very low—under a day for a Laravel engineer familiar with factories and Faker. The tdsa_ addition requires no new concepts. The key training point is unchanged: these IDs are structurally plausible test fixtures, not valid Stripe objects.
How can I help you explore Laravel packages today?