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

briareos/php-airbrake-bundle

A Symfony bundle that integrates the Airbrake PHP client to capture and report application exceptions and errors, with configurable Airbrake project settings and environment-aware error monitoring.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. briareos/php-airbrake-bundle is a thin Symfony2 bundle wrapper around the legacy php-airbrake notifier library. Its architecture is entirely Symfony2-idiomatic: it registers a service definition for the Airbrake client, exposes bundle configuration under the container (briareos_php_airbrake-style keys), and relies on the bundle auto-discovery and AppKernel registration model. That is a clean fit only for a Symfony 2.x application that already uses bundles as the unit of integration. It has no fit for Symfony 3.4+ Flex applications, no PSR-11/PSR-15 seams, no Symfony 4/5/6 service autowiring story, and no Laravel service provider despite the prompt's framing — this is strictly a Symfony artifact.

Integration feasibility. Low. The package is at score 0 with zero stars and zero dependents, which in practice means it is unadopted and almost certainly unmaintained. composer require against a modern PHP runtime will likely fail on platform constraints (the php-airbrake dependency targets PHP 5.x/early 7.x, and the bundle targets Symfony 2.x). Even where it installs, you inherit an error-reporting client that has not tracked Airbrake's API versions — Airbrake moved to the v3/v5 notifier API and has since de-emphasized its own PHP SDK. The practical integration is therefore limited to a legacy Symfony2 codebase under maintenance, where the goal is to retain existing error coverage rather than add new capability.

Technical risk. High across every axis:

  • Security/stability: Symfony 2.x and PHP 5.x are end-of-life; no security patches. The bundle cannot receive fixes.
  • Supply chain: zero dependents means zero downstream scrutiny; the code has never been exercised at any scale. There is no meaningful test or CI signal in the package's public footprint.
  • Vendor risk: Airbrake's PHP notifier is itself legacy. Betting observability coverage on an unmaintained client for a de-emphasized vendor SDK is a compounding risk.
  • Error-handling recursion: the notifier reports exceptions synchronously; if it throws inside the exception handler you get masked failures or fatal loops. This is a classic and hard-to-diagnose production failure mode.
  • Bus factor: single-author, no release cadence.

Key questions for the requester.

  1. What is the actual runtime — exact Symfony and PHP versions? If it is not Symfony 2.x, this package is out of scope and we should not spend evaluation time on it.
  2. Is the business goal retaining error visibility in a legacy app, or modernizing observability? These lead to opposite recommendations.
  3. Who is the Airbrake account owner, what is the contract/quota, and is there a budget line for a replacement vendor (Sentry, Bugsnag, Honeybadger, Rollbar)?
  4. What is the app's end-of-life horizon? A 6-month sunset justifies the bundle; a 3-year horizon does not.
  5. Are there compliance or data-residency constraints on sending stack traces to a third party?
  6. What is the current error-handling chain — Monolog handlers, set_exception_handler, framework-level logging — and where would the notifier sit?

Integration Approach

Stack fit. Do not adopt for any greenfield or Symfony 3.4+ application. The only defensible use is a maintenance-mode Symfony 2.x service where Airbrake is already the incumbent vendor. Even there, treat it as a stopgap, not a target state.

Migration path. The correct TPM framing is "contain and replace," not "integrate":

  1. Abstract first. Introduce a narrow application-owned interface (e.g. ErrorReporterInterface::report(Throwable $e, array $context)) and register the Airbrake bundle's client behind it. This is the single highest-leverage step — it converts a framework-coupled bundle into a swappable dependency and removes the bundle from application code.
  2. Replace the transport. Point the same interface at a maintained notifier — sentry/sentry-symfony, bugsnag/bugsnag-symfony, or Honeybadger's PHP client — all of which support current Symfony and PHP versions.
  3. Decommission. Remove the bundle from composer.json, delete the config block, and drop the Airbrake account at contract renewal.

Compatibility. Verify in a throwaway branch: composer why-not php X.Y, composer why-not symfony/symfony 2.*. Expect the install to resolve only against PHP ≤7.1 and Symfony 2.7/2.8. If the app is on Symfony 3.4, the bundle's service definitions may still load but the container configuration format will mismatch; do not patch vendor code to force it.

Sequencing (recommended).

  • Week 1: Confirm runtime versions and business driver. If not Symfony 2.x, close the ticket with a "rejected — incompatible" note.
  • Week 2: If in-scope, wrap the client behind an internal interface, add a circuit-breaker/guard so reporter failures never propagate into the request path, and add an integration test that asserts the exception handler still returns a 500 cleanly when the reporter is unavailable.
  • Weeks 3–4: Stand up the replacement vendor in parallel, dual-report, compare volume and fidelity.
  • Next maintenance window: cut over, remove the bundle.

If the decision is "do nothing," document it explicitly with the EOL dates and the risk acceptance — do not leave it as silent technical debt.

Operational Impact

Maintenance. Effectively zero upstream maintenance. All maintenance burden transfers to your team: security review of the dependency, PHP/Symfony upgrade blocking (this bundle is a blocker for any framework upgrade), and eventual emergency replacement. Budget this as a known upgrade tax on the legacy service.

Support. Community-only and largely nonexistent. No vendor to escalate to for the bundle; Airbrake support will not cover a third-party wrapper. Incident triage for the reporting path falls entirely on internal engineers, and the people who understood it will have rotated out — expect documentation discovery time on every incident.

Scaling. Runtime overhead is small (one synchronous HTTP call per reported exception), but two scaling concerns matter more than CPU:

  • Ingestion cost: Airbrake bills by error volume/event quota. An exception storm (e.g. a downstream outage causing 10k identical exceptions) can exhaust quota, at which point real errors are dropped. This requires server-side sampling/deduplication that this bundle does not provide.
  • Latency coupling: synchronous reporting inside the exception path adds tail latency to error responses and, under load, can serialize request workers. The wrapper must timebox or async this.

Failure modes to instrument for.

  • Reporter throws inside the exception handler → masked original exception, potential recursion.
  • Network timeouts / DNS failures during an outage → slow or hung error responses.
  • API version drift between the legacy client and Airbrake's current endpoints → silent 4xx drops, appearing as "no errors" (false confidence — the worst failure mode for observability).
  • Quota exhaustion → selective, unexplained data loss.
  • Configuration drift: environment-specific API keys and project IDs absent in one environment, producing a coverage gap nobody notices until an incident.
  • PHP/Symfony upgrade attempt fails at composer update, blocking unrelated security patches.

Mitigation: emit a health metric for "reporter invocation success rate" and alert when it drops to zero — absence of error reports must never be read as absence of errors.

Ramp-up. Code comprehension is easy — it is a few hundred lines of service wiring. The hard part is organizational ramp-up: there is no one to ask, docs are thin, and the bundle's behavior is only discoverable by reading vendor source. Estimate half a day for an experienced Symfony2 engineer to understand it and one to two days to build a safe abstraction layer and test harness around it. Plan for a handover note that names the replacement path, because this package should not survive the next engineer's tenure.

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.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator