jenssegers/raven
Sentry integration for Laravel built on the Raven PHP SDK. Automatically reports exceptions and logs to Sentry with context like user data and breadcrumbs, and offers a Monolog handler plus simple config. Handy for adding real-time error tracking to Laravel 4 and 5 apps.
Defining the "production-ready" bar for a Laravel service. Error monitoring is a launch gate, not a nice-to-have. This package is the concrete artifact behind a question every PM eventually has to answer: does our definition of done include exception capture, user and request context, release tagging, and alerting — and which client delivers it? Naming that standard turns a vague "we should have monitoring" into a checklist item someone owns.
Build vs. buy vs. integrate. The realistic option set for error tracking on a Laravel stack is: (a) a thin community wrapper like this one, (b) the vendor-maintained sentry/sentry-laravel SDK, (c) a commercial APM (Datadog, New Relic, Rollbar, Bugsnag), or (d) rolling internal aggregation on Laravel's log channel. Framing the decision this way is useful even when the answer is "none of the above" — it forces the comparison to happen on capability and lifetime cost rather than on whatever a tutorial recommended. This package sits firmly in the "integrate a legacy community wrapper" bucket: a legitimate reference point, rarely the answer.
Reliability investment and MTTR roadmap. Error monitoring is the upstream input to alerting, triage, and postmortems. Choosing an integration is a decision to reduce mean-time-to-detection and mean-time-to-resolution — a support-cost and on-call-burden lever, not a feature line item. It also sets a ceiling: error-only tooling means every future conversation about tracing, release health, profiling, or session replay starts from zero.
Legacy modernization sequencing. For a PM owning a Laravel 4.x/5.x estate, this package is a technical-debt marker, not a candidate. The decision it forces is "schedule migration to the supported SDK," which belongs on the platform roadmap alongside PHP and Laravel upgrades — and should be sized and sequenced with them, not discovered mid-incident.
Supply-chain and compliance posture. Adopting an unmaintained wrapper on the exception path is a standing exception to whatever SBOM or dependency-health policy you have. Someone has to sign it. Separately, choosing Sentry — and specifically a Raven-era client speaking an older ingestion protocol — carries data-retention, residency, and procurement implications that belong in a compliance review, not just an engineering ticket.
Prioritization signal. With zero dependents, a 0.3 score, and a ~31 opportunity score, the roadmap reading is unambiguous: do not fund new work around this package; budget a small, bounded migration instead. That's a decision a PM can make today with a one-line justification.
Cost and blast-radius modeling. The legacy client sends synchronously by default. An error storm — exactly when monitoring matters most — becomes per-request inline network calls with no first-class sampling or circuit breaking. A PM should be able to say out loud: one incident can produce both a customer-facing outage and a vendor bill spike, and the error reporter becomes a secondary failure domain.
Consider it only when all of the following hold:
Look elsewhere when:
sentry/sentry-laravel SDK. Migration is close to one-to-one: provider and facade become auto-discovered plus Sentry\Laravel\Facade, the log handler becomes the sentry Monolog channel, and exception reporting becomes a single captureException() in report(). Remove raven/raven and this package in the same PR so the old SDK cannot silently re-resolve.A useful first step either way: inventory composer.lock across repos for jenssegers/raven and raven/raven, tag each hit with its Laravel/PHP version and "active" versus "legacy-frozen." That artifact turns an opinion into a budget line and a scoped migration.
For executives: Error monitoring is table stakes for running a production service — it's how we learn something is broken before customers tell us. This package is an integration layer connecting a Laravel app to Sentry, a widely used error-tracking service. The strategic question isn't "should we adopt this package"; it's "what is our standard for production error visibility, and are we on a supported client?" Recommendation: treat error monitoring as a required capability, standardize on the vendor-maintained SDK, and fund the migration as a small, bounded reliability line item. Same product outcome, lower long-term maintenance and security risk. The one defensible exception is a genuinely end-of-life Laravel app where a stopgap is cheaper than a migration — and even then it needs a named owner and an end date.
For engineering: This is a thin bridge between Laravel's exception handling/logging and the legacy Raven PHP client — a service provider, a facade, a Monolog handler, and exception-handler wiring. It solved a real problem well for its era, but it sits on a deprecated client lineage, predates PHP 8 semantics and Octane, and sends synchronously by default, so an error storm becomes an outage and a bill spike with no sampling or circuit breaker. The v1.11.0 changelog — a single line, "Increase Laravel support" — tells you the roadmap has been version-range widening, not capability. Adoption is defensible only as a stopgap for legacy apps already running Raven, with a named owner and an exit ticket. For anything new, use sentry/sentry-laravel: maintained, current-version compatible, auto-discovered, and it brings tracing and release health we'd otherwise build or buy separately. The migration is close to one-to-one and reviewable in a single PR — run the new SDK in a non-production environment for a full release cycle, verify event parity (stack trace, request context, user context, release tag) and alert routing, then cut over active apps first.
Decision framing to bring to the room: (1) Is error monitoring in scope for this release? (2) Which client do we standardize on? (3) What's the migration cost off the legacy wrapper, and who owns it? (4) Are there data-residency or procurement constraints on the Sentry vendor choice? (5) Does our dependency policy tolerate an unmaintained transitive dependency on the critical error path — and who signs that exception? Answer those and the package selection follows — and in every modern case, it follows away from this package.
How can I help you explore Laravel packages today?