jenssegers/rollbar
A Laravel wrapper for the Rollbar PHP notifier that sends exceptions and logs to Rollbar, registers a service provider and facade, and provides publishable configuration for quick error-monitoring setup.
Architecture fit. This is an adapter, not a platform — a thin wrapper that wires rollbar-php into Laravel's exception handler and Monolog stack. It belongs nowhere on an architecture diagram. The correct framing for a TPM is: this package is only relevant after Rollbar is already the vendor of record. It must never be an input to the vendor decision itself. Where it fits is narrow and real — inherited Laravel 5.x / PHP 7.x monoliths that are already paying for Rollbar, and multi-language orgs consolidating on one monitoring vendor where uniformity beats Laravel ergonomics.
Integration feasibility. Genuinely cheap where compatible: a competent Laravel developer can wire it in half a day — composer require jenssegers/rollbar:1.5.1 (pinned, not ^1.5), provider registration (auto-discovered on 5.5+, manual on 5.4), vendor:publish, two env vars, one smoke-test route. The work is not the install; the work is the guardrails around it.
Technical risk. Ranked by what would actually cost a sprint or an incident:
illuminate/support and the transitive rollbar-php version can shift payload semantics with no code change.scrub_fields must be verified to actually reach the SDK; a missing field is a compliance incident.App\Exceptions\Handler means duplicate quota burn and incoherent triage. Telescope in particular makes reporting look like it works when only Telescope is seeing it.Key questions a TPM should put to the team before approving:
App\Exceptions\Handler today, and are we prepared to name exactly one reporting owner?rollbar/rollbar-laravel?Stack fit. Hard ceiling of roughly Laravel 5.x / PHP 7.x. The version check is the first gate and the answer is binary: inside the ceiling, half-day wire-up; outside it, stop and use rollbar/rollbar-laravel, because the illuminate/support constraints will not resolve anyway. Do not let "it's already integrated somewhere" anchor the fleet to an unsupported framework version.
Migration path. The one architectural move that makes abandonment survivable is wrapping the facade behind an ErrorReporter interface on day one. Product code should never see \Rollbar:: or the Rollbar alias — both the alias collision risk and the eventual swap disappear if the facade stays out of business logic. When the migration comes, it is one new class and one binding change. Keep config/rollbar.php keys (access_token, environment, level, scrub_fields, person_fn, max_items, batch_size) aligned with the official SDK's names so the swap is a config diff, not a redesign — and so the scrubbing review doesn't reopen.
Compatibility. Commit composer.lock. Resolve composer conflicts before committing a sprint, not mid-sprint. Treat any composer update that drags in a newer rollbar-php as a payload-affecting change requiring review.
Sequencing (the order matters):
1.5.1; resolve composer constraints.src/Facades/)..env — never hardcode, never share a token across environments.ErrorReporter interface and binding; strip scattered facade calls.Reporting patterns worth standardizing, because they determine whether triage is usable: let the global handler do the work and resist sprinkling reportException through controllers; report at boundaries where errors would otherwise vanish (queued jobs that swallow after retries, webhook handlers that must return 200, cron console commands); use structured context arrays so fields survive into Rollbar; attach person identity via person_fn in config rather than middleware; and tag deploys with the release SHA so an error spike is correlatable to a deploy.
Maintenance. Effectively zero upstream maintenance — single maintainer, archived, zero dependents, zero ecosystem gravity. The realistic posture is that the org owns this code. That is fine for a bounded legacy bridge and unacceptable as a long-lived default.
Support. Community only, no vendor escalation path. Assign an internal owner at approval time; "no named owner" is how silent-failure drift goes undetected for a quarter.
Scaling and cost control. The config surface is small (person_fn, the config array, the registered Monolog handler) and that is the point — but it also means anything sophisticated (multi-tenant token routing, custom payload shaping, advanced sampling) means fighting the wrapper toward rollbar-php. Set level at error or warning; dropping to debug on a chatty app exhausts quota and destroys the triage queue. Keep timeout short (2s), cap max_items, and hedge with sample_rate — verifying which key the pinned rollbar-php actually honors.
Failure modes to plan for:
rollbar-php upgrade with no code change.Ramp-up. Half a day for a Laravel developer to install and prove the pipe. Budget two to three days of engineering plus a security/compliance review for the parts that actually matter: interface wrapper, scrub verification, burst test, handler ownership documentation. The install is cheap; the operational guardrails are the real cost, and skipping them is how a half-day integration becomes an incident review.
Portfolio signal. Zero stars, zero dependents, archived upstream, single maintainer, score 0.3 — this is commodity glue. Fund it as a deliberate, time-boxed legacy bridge with a migration ticket attached, or skip it entirely for Laravel 8+/PHP 8 targets. Never let it become the thing that decides which framework version the fleet is allowed to run.
How can I help you explore Laravel packages today?