alt-three/sentry
Sentry integration for Laravel applications, helping you capture and report exceptions and errors to Sentry with minimal setup. Includes Laravel-friendly configuration for monitoring production issues and improving application reliability.
Architecture fit. alt-three/sentry is a thin Laravel 5 service-provider/facade bridge over the v1.x Sentry PHP SDK. Its integration surface is narrow and idiomatic for its era: it registers a singleton client from a published config file, exposes a Sentry facade alias, and provides an exception-handler hook so uncaught exceptions in App\Exceptions\Handler are forwarded to Sentry. Architecturally that is a reasonable shape — it matches how a modern Laravel package would wire in — but it is coupled to two moving targets that have both since moved: the Laravel 5.x container/contracts and the Sentry v1 SDK wire protocol. It is not a standalone error-tracking implementation; it is glue, and the glue is what has rotted.
Integration feasibility. Effectively zero on any current stack. The realistic compatibility envelope is Laravel 5.0–5.2 on PHP 5.5/5.6, which means the only applications that can consume it are themselves past end-of-life. For a Laravel 9/10/11 application on PHP 8.x, adoption would require forking and rewriting the provider, the config schema, and the transport layer — at which point the package contributes nothing but a name. There is no partial-adoption path: the exception handler hook is all-or-nothing, and there is no compatibility shim to the official SDK.
Technical risk. High and non-mitigable.
each(), signature variance). The failure mode is not "Sentry stops reporting," it is "your application 500s in the exception path," which is the worst possible place to fail.before_send scrubbing hooks. Any GDPR/data-handling posture would have to be built from scratch around an unmaintained dependency.Key questions. (1) Is there an actual legacy Laravel 5 application in the portfolio still emitting revenue-bearing traffic, or is this an artifact of a dependency scan? (2) What is the underlying need — error visibility, or specifically this bridge? These decouple completely; the need is satisfiable, the bridge is not. (3) If a legacy app exists, what is its own sunset date? A migration to sentry/sentry-laravel is only worth funding if the app outlives the migration. (4) Who owns the decision to leave an EOL dependency in the tree, and is it documented as accepted risk?
Recommendation: do not adopt. Classify as technical debt with a removal ticket, not an integration candidate.
Stack fit. None for greenfield. The officially maintained sentry/sentry-laravel occupies this exact slot with the same architectural shape (provider, facade, config publish, exception-handler integration), first-party support, and compatibility with current Laravel and PHP. Choosing the archived package over it buys nothing and costs a fork.
Migration path. For an inherited project already depending on alt-three/sentry, the swap is mechanical but not trivial:
composer why alt-three/sentry), whether the Sentry facade alias is referenced in application code, and whether custom code calls app('sentry') or the raw SDK directly. Direct SDK calls are the expensive case; facade-only usage is a find-and-replace.sentry/sentry-laravel, publish the new config. Config keys do not map one-to-one; the DSN key, environment/release fields, and sampling settings all change shape, so treat config as a rewrite rather than a port.Handler::report()/shouldReport() rather than the old provider registration. Verify the ordering relative to existing logging so you don't double-report.Compatibility. Treat the two packages as mutually exclusive in composer.json; do not attempt to run both. If the application is genuinely pinned to Laravel 5.0–5.2, the official package's older major lines may still cover you — check the version matrix before assuming a framework upgrade is a prerequisite for the SDK upgrade. Decoupling those two migrations is usually the cheaper sequencing.
Sequencing. If a legacy app must survive: (a) pin and document the current state so the build is reproducible, (b) migrate the Sentry integration first — it is low-risk, high-visibility, and independent of framework version, (c) schedule the framework upgrade separately, (d) delete the bridge. If the app is being retired within the same horizon, skip to decommissioning and accept a temporary observability gap rather than funding a migration you'll throw away.
Maintenance. Zero upstream maintenance is the defining constraint. There will be no patch for a PHP minor-version break, no DSN rotation guidance, no response to a Sentry-side API change. Every future fix is an internal fork, and a fork of a 7-star archived package is a permanent, undocumented ownership burden with no external expertise to draw on.
Support. There is no support channel — no maintainer, no issue triage, no Stack Overflow corpus of substance for this specific bridge. On-call engineers debugging a failure at 3am will find documentation frozen at a 2016 README describing an SDK that no longer matches Sentry's own docs. That is a real MTTR tax on the one system whose job is to reduce MTTR.
Scaling. Throughput is not the concern: the bridge is a synchronous HTTP client, so it scales in the trivial sense and fails in the interesting one. Because capture is in-band, a slow or unreachable Sentry endpoint becomes application latency in the exception path unless the transport timeout is explicitly bounded — and the v1 SDK's defaults are not tuned for that. There is also no sampling control worth the name, so a retry storm or a noisy loop can burn the Sentry quota and, worse, do so while adding latency to every failing request.
Failure modes. Ranked by severity:
before_send hook; sensitive payloads reach a third party by default.Ramp-up. Learning the bridge itself is trivial — a day for a Laravel-fluent engineer. The real ramp-up cost is the absence of a correct reference: engineers will read 2016-era docs, assume they describe current Sentry behaviour, and build wrong mental models that outlast the package. Budget for a deliberate "unlearn this" step during migration.
Net: the operational profile is uniformly negative — unbounded downside, no maintenance, and no compensating benefit over a first-party alternative that costs one composer require.
How can I help you explore Laravel packages today?