Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Stripe Bundle Laravel Package

scribe/stripe-bundle

A Symfony bundle that streamlines Stripe integration with preconfigured services, dependency injection and thin wrappers around the Stripe PHP SDK, so you can add payments, customers, subscriptions and webhooks to your app with minimal boilerplate.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor, and the mismatch is the headline. scribe/stripe-bundle is a Symfony bundle, not a Laravel package. Its entire deliverable is a Symfony DI extension, service definitions, and bundle configuration that register a configured Stripe PHP SDK client in a Symfony container. Laravel's service-provider/container conventions, package discovery, and config publishing are a different mechanism; none of that wiring transfers. The only thing that transfers is the idea — "bind a configured StripeClient as a singleton" — which in Laravel is one service provider, one config array, and one env entry. As a TPM, I would frame this to stakeholders as: we are not evaluating a package, we are evaluating whether to adopt 20–40 lines of glue we can write and own in under a day.

Integration feasibility — low as-is, contrived at best. There is no service provider, no facade, no config-publish tag, no Laravel-version evidence. Two paths exist: (a) pull Symfony's DI component into a Laravel app to load the bundle — unacceptable, it introduces a second container and a confusing class of resolution bugs; or (b) fork the bundle down to its service definition and reimplement it as a Laravel provider. Path (b) is not integration, it is reimplementation with a citation. Either way, we pay translation cost rather than capability cost.

Technical risk — high on every axis that matters for a payments path.

  • License: NOASSERTION means GitHub could not identify an SPDX license. For commercial payment code, that is a legal gate, not a footnote — and it blocks even copying it as reference until clarified.
  • Maintenance signal: 0 stars, 0 dependents. No downstream production usage to surface bugs, no community pressure to track Stripe API versions, no release cadence to rely on.
  • SDK drift: Stripe's PHP SDK moves on a rolling cadence with pinned API versions and major-version breaks. A thin wrapper that constrains the SDK is a liability — it either blocks a security-relevant upgrade or breaks when we take one.
  • Era coupling: bundles of this shape typically target older Symfony conventions and stale PHP constraints relative to a modern Laravel runtime.

Key questions for the team.

  1. Does legal accept NOASSERTION, or do we need written clarification from the maintainer before any code — even reference code — is used?
  2. What does this give us beyond new \Stripe\StripeClient($secret) plus a config read? If the answer is "DI and config loading," that is a service provider, not a dependency.
  3. Did this surface from a PHP-wide search rather than a Laravel need? If Laravel, why not stripe/stripe-php directly, or laravel/cashier if the real need is billing abstractions?
  4. What is the expectation if we adopt — vendored fork we own, or reference only? That determines the entire operating model.

Integration Approach

Stack fit — poor, stated plainly. Our stack is Laravel; the package is Symfony. Functional overlap with what we already have (stripe/stripe-php as a first-class Composer dependency plus a small provider) is near 100%. Every dollar spent here buys translation, not capability.

Migration path — there is nothing to migrate from, which is the good news. This is a greenfield decision we can decline at zero cost. If a team has already prototyped against it, exit is trivial: the wrapper's surface is a configured client object, so replacing it is a one-file change at the injection point.

Compatibility — unverified and likely poor. We would need to confirm supported PHP versions against our runtime, Symfony DI constraints if we attempted to load it, and — most critically — the Stripe SDK version range it pins. A wrapper that caps the SDK below current is disqualified regardless of everything else, because SDK upgrades carry API-version and occasionally security relevance.

Recommended sequencing.

  1. Decline adoption. Record the decision as "reference only, license unclear" so it does not resurface.
  2. Add stripe/stripe-php directly and pin an explicit Stripe API version in config as a reviewed, deliberate value — not whatever the lockfile resolves.
  3. Write a ~40-line Laravel service provider binding a singleton StripeClient from config/services.php, with secrets sourced from env/secret manager. That is the full feature set the bundle offers.
  4. If subscriptions/billing abstractions are the actual requirement, evaluate laravel/cashier on its own merits — maintained, licensed, idiomatic — rather than reaching for a Symfony bundle.
  5. Revisit third-party Stripe wrappers only against a concrete gap the SDK plus our provider cannot cover, and evaluate on active-maintenance criteria, not stars.

Operational Impact

Maintenance — ownership lands entirely on us. Zero dependents means zero upstream bug reports; a 0-star repo typically means no meaningful release cadence. We would become de facto maintainers of a fork whose only distinction from native code is an unfamiliar Symfony service-definition format — strictly worse than owning a small provider we wrote and understand.

Support — no vendor, no community, no SLA. Payment code is exactly where we want unambiguous licensing, a clear upgrade path, and a dependency we can reason about during a 2am incident. The escalation path here is "read the source and hope," which is not a support model for a revenue path.

Scaling — orthogonal. The wrapper does not affect scale either way; Stripe calls are I/O-bound and the SDK is a thin HTTP client. The real scaling surface is idempotency keys, retry/backoff, webhook handling, and connection pooling — none of which this bundle addresses. No benefit, no obstacle, and therefore no reason to carry it.

Failure modes.

  • License exposure — unclear terms on a money-handling path; remediation cost if legal objects later.
  • SDK version lock — the wrapper's constraint blocks an SDK upgrade needed for an API deprecation or security patch, forcing an emergency fork under time pressure.
  • Second container — pulling in Symfony DI yields two service containers and subtle, expensive resolution bugs.
  • Silent abandonment — the repo goes quiet with no signal, because there was never any activity to lose.
  • False confidence — a name like "stripe-bundle" implies more coverage than it delivers; engineers may assume webhook verification, retries, or idempotency are handled when they are not.

Ramp-up — near-zero, and that is the indictment, not the defense. There is nothing substantive to learn. The real cost is organizational: every hour of design review, license review, or security review spent here is an hour not spent on the provider we will write anyway. Recommendation: decline, reimplement natively, and document the rationale so the decision is durable and the next engineer does not rediscover this repository and reopen the question.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
takashato/laravel-vietqr
aitor24/laralang
kraenzle-ritter/entity-relations
dindigital/din-image
pomirleanu/image-colors
sawmainek/laravel-api-generator
delatbabel/jsonresponses
mouhamedfd/permissions-generator
eduplus/qr
laravel2580/idehelpers
delatbabel/viewpages
anavel/gettext
muhamadrezaar/highcharts
delatbabel/keylists
frankkessler/salesforce-laravel-oauth2-rest
anavel/foundation
wdmtech/enviricons
eii/laravel-captcha
muka/shape-reader
tdt/json