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

Php Airbrake Bundle Laravel Package

ibrows/php-airbrake-bundle

A Symfony bundle that integrates the Airbrake PHP client, helping you send application exceptions and errors to Airbrake for monitoring, tracking, and reporting.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — category mismatch. Despite the "Laravel/PHP package" framing, ibrows/php-airbrake-bundle is a Symfony bundle, not a Laravel package. It ships a Bundle subclass, a DependencyInjection extension, and a kernel.exception event listener. Laravel has no bundle registrar, and while it composes Symfony components, Laravel 9–11 pins Symfony 5/6/7 while this bundle targets the Symfony 2.3–2.8 era. There is no autoloadable integration path into a modern Laravel application; the listener also relies on ExceptionEvent::getException(), removed in Symfony 4.x. A TPM should treat this as a legacy Symfony artifact and evaluate it as such — never as a candidate dependency for a Laravel service.

Integration feasibility — low. The only reusable asset is the underlying notifier (ibrows/php-airbrake), an HTTP client that POSTs to Airbrake's deprecated legacy API. Consuming it for Laravel means forking: replace the DI extension with a service provider, replace YAML config with config/airbrake.php, and replace the kernel listener with a hook into Laravel's exception handler (withExceptions(...->report(...)) on Laravel 11+, or Handler::report() on older). Realistic spike-to-usable estimate: 3–5 engineering days before any error data lands, before test hardening.

Technical risk — high.

Risk Severity Note
Abandoned upstream High 0 stars / 0 dependents / score 0 — no maintainer, no triage
Legacy Airbrake API High Old key-based endpoints deprecated; ingestion can fail silently
PHP/Symfony version floor High Likely incompatible with PHP 8.x and Symfony 5+
Security review Medium Unvetted transitive deps sitting in the request path
PII exposure Medium Legacy notifiers commonly ship params/headers unfiltered

Key questions to resolve before any build:

  1. Is Airbrake contractually mandated, or an inherited artifact? Is Sentry/Bugsnag already covering this ground?
  2. Which Airbrake account generation is in use — project key + notices v3 endpoint, or legacy API key?
  3. What Laravel/PHP versions must be supported, and who owns a permanent fork?
  4. Are there existing service-ID references requiring an adapter shim?

Integration Approach

Stack fit — recommend substitution. If Airbrake is required, the correct vehicle is airbrake/phpbrake (official, maintained, PHP 7.4/8.x) wired through a small service provider plus a Monolog handler — not this bundle. If Airbrake is not required, sentry/sentry-laravel or bugsnag/bugsnag-laravel delivers the same outcome with first-class Laravel support, Laravel-versioned releases, and an active security posture. The integration layer here is commodity; the decision worth making is which error backend the organization standardizes on.

Migration path (if Airbrake is mandated):

  1. Bind the maintained notifier as a singleton in App\Providers\AirbrakeServiceProvider.
  2. Route exceptions through Laravel's native reporting hook — not an event listener — so reporting survives custom rendering.
  3. Enrich context explicitly: user identifier, route name, request ID, release/commit SHA, environment. Do not rely on the bundle's automatic capture.
  4. Scrub Authorization, Cookie, session IDs, and query strings before transmission.
  5. Retain a Monolog handler for non-exception error-level logs so coverage isn't exception-only.
  6. If legacy service IDs are referenced elsewhere, ship a thin adapter preserving the old interface for one release cycle, then delete.

Compatibility gates: verify PHP constraint against the runtime matrix; confirm the notifier speaks the current Airbrake notices API against a staging project key; confirm no dependency on Symfony 2 event names or ContainerAware.

Sequencing: discovery and account verification (1 day) → staging spike with the maintained notifier (1–2 days) → error-volume and cost sanity check → production rollout with sampling and dedupe → delete any bundle-derived code. Keep this a small, timeboxed ticket; it should not outrank higher-leverage reliability work.

Operational Impact

Maintenance. Effectively unowned upstream: no fixes, no CVE response, no PHP 8 guarantees. A fork costs 1–2 days per quarter minimum to track Laravel/Symfony upgrades, plus unbounded incident time if ingestion breaks. The maintained notifier reduces this to dependency-bump hygiene.

Support. Zero stars and zero dependents means no corpus — no Stack Overflow answers, no issue history, no peer operators. Mean time to diagnosis is entirely internal, and Airbrake support will not troubleshoot a third-party fork. Budget tribal-knowledge capture as a deliverable, not an afterthought.

Scaling. Error reporting is bursty and correlated with incidents — precisely when the app can least absorb overhead. Legacy synchronous curl notifiers sit on the request path, adding tens to hundreds of milliseconds and cascading during an outage. Requirements: async/queued dispatch, per-window sampling, rate limiting, hard client timeout, and a guarantee the notifier never throws into application code.

Failure modes to design against:

  • Silent drop after endpoint deprecation or key rotation — add a startup self-test and a canary alerting on zero-ingest.
  • Exception loops where notifier failures are themselves reported.
  • PII leakage via unfiltered request payloads.
  • Shutdown stalls from synchronous flush in terminate.
  • Payload blowups on large request bodies or long stack traces.

Ramp-up. Conceptually trivial for any Laravel engineer — a provider plus an exception hook is half a day to read and a day to harden. The risk is context, not skill: near-zero documentation value from the package itself and no internal precedent. Given 0 stars and 0 dependents, assume you would be the only team running this code in production anywhere — staff accordingly, or spend the saved days on observability that actually pages someone.

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.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin