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

nodrew/php-airbrake-bundle

Symfony bundle for integrating Airbrake error tracking into PHP applications. It captures exceptions and errors, sends them to Airbrake for monitoring and alerting, and supports straightforward configuration for environment-specific reporting so teams can spot and fix production issues faster.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package is a Symfony2 bundle, not a PHP library with framework-agnostic bindings. A bundle is a specific Symfony construct: it ships a DependencyInjection\Extension to parse YAML configuration, a bundle class for registration in AppKernel, and typically an event listener wired to kernel.exception. None of that machinery exists in Laravel. Laravel's equivalent extension points are service providers, the App\Exceptions\Handler (report() / render()), and middleware — so there is no natural seam where this package slots in. Its only reusable asset is the thin glue between config and the underlying php-airbrake client, which is on the order of a few hundred lines and trivially reproducible.

Integration feasibility. Low. Composer resolution is the first hard blocker: a Symfony2 bundle pins Symfony components (framework-bundle, http-kernel, dependency-injection, config, yaml) at 2.x, while Laravel 10/11 depend on Symfony 6/7 components. Those constraints collide, and Composer will either refuse to install or attempt to downgrade the application's shared Symfony packages — unacceptable collateral damage for an error-reporting integration. Even with a --ignore-platform-reqs workaround, class references to removed APIs (e.g., GetResponseForExceptionEvent, renamed in Symfony 4.4) will fatal at boot. Realistically this is a fork-and-rewrite exercise, not an install.

Technical risk. Very high. Signals are unambiguous: 14 stars, zero dependents, score 0.43. There is no community vetting, no evidence of recent maintenance, and a single-author bus factor. The bundle transitively drags in the legacy php-airbrake client, which targets Airbrake's older notifier protocol — a protocol Airbrake has been steering customers away from in favor of its current endpoint. Adopting this means inheriting two layers of abandonment (bundle and client) and being exposed to a vendor-side deprecation you do not control.

Key questions.

  • Is Airbrake the incumbent vendor by contract, or is this exploratory? The answer changes the recommendation entirely.
  • What Laravel and PHP versions are in scope, and is there a Symfony2 application anywhere in the estate that this is actually for?
  • Does the organization's Airbrake plan still accept the legacy notifier protocol, and is there a stated sunset date?
  • Are we willing to own a fork indefinitely, or does "maintained dependency" remain a hard requirement?
  • What is the license and supply-chain posture (no security policy, no signed releases, no CVE history to review)?

Integration Approach

Stack fit. Poor. A Laravel target should use an official or actively maintained Airbrake notifier (airbrake/phpbrake is the vendor-maintained PHP client) wired through Laravel's native error pipeline. This bundle offers no Laravel service provider, no package discovery, and no configuration schema Laravel can read — everything would be hand-ported.

Migration path. Skip the bundle. If Airbrake is mandated: add the maintained PHP notifier, bind it as a singleton in a service provider, and dispatch notices from App\Exceptions\Handler::report(). Extend coverage to Queue::failing(), the Artisan command error path, and Log::listen for critical-level entries so you match the breadth a bundle hooking kernel.exception would have given you. If a legacy Symfony2 app genuinely needs this bundle for parity, run both stacks in parallel behind a per-service configuration flag rather than trying to unify the wiring.

Compatibility. Assume incompatibility until proven otherwise by a throwaway spike branch. Expect to touch namespaces, event class names, and the notifier client's constructor signature. Treat the package as reference source, not as a dependency.

Sequencing.

  1. Settle the vendor question (Airbrake vs. Sentry vs. Bugsnag) — this is a procurement decision, not an engineering one, and it gates everything downstream.
  2. If Airbrake: spike airbrake/phpbrake against a scratch project on the target Laravel/PHP versions; verify payload rendering and rate-limit behaviour.
  3. Wire the exception handler, queue failure hook, and console handler; keep the notifier behind an interface so the vendor is swappable.
  4. Shadow-ingest to a non-production Airbrake project and diff against production error logs for a release cycle.
  5. Record the decision in an ADR and explicitly note this bundle as evaluated-and-rejected, so it does not resurface.

Operational Impact

Maintenance. Zero expected upstream activity. Adoption is a permanent fork commitment; budget for it as internal code, not as a dependency. The surface area is small enough that a fork is technically viable, but you would be forking the client too.

Support. No vendor support, no maintainer SLA, no responsive issue tracker. Incidents will be debugged by whoever wrote the integration, from source, under pressure. Document the notification path accordingly.

Scaling. The package is not the bottleneck — Airbrake's ingest is — but the legacy client is typically synchronous on the request path with no batching or async flush. Under error storms (a broken deploy, a poisoned queue) you get one blocking HTTP call per exception, which compounds latency precisely when the system is already degraded. Add timeouts, sampling, and a circuit breaker regardless of vendor.

Failure modes. Silent drops if the client swallows transport errors and you have no meta-monitoring; request-path timeouts when Airbrake is slow; ingestion quietly breaking when the legacy protocol is retired, with no client-side alarm; Composer resolution failures blocking every deploy if this ever lands in composer.json; boot-time fatals from removed Symfony classes; and credentials (project ID, API key) sitting in committed YAML, which is a secrets-hygiene finding independent of everything else. Each of these argues for a thin, observable, vendor-swappable abstraction rather than a bundle.

Ramp-up. Learning the package itself is an afternoon. Learning why it exists, what it was meant to replace, and whether the Airbrake contract is still live is the real cost — and that investigation is worth doing before, not after, someone adds a line to composer.json.

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.
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator