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

Airbrake Bundle Laravel Package

eo/airbrake-bundle

EoAirbrakeBundle integrates Airbrake.io and Errbit error tracking into Symfony2 apps, forwarding exceptions with configurable async delivery, optional API key toggling, and a built-in simulate route for testing.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — the premise needs correcting before anything else. The brief classifies this as a Laravel/PHP package; it is not. EoAirbrakeBundle is a Symfony2 bundle: it registers Eo\AirbrakeBundle\EoAirbrakeBundle in AppKernel, ships a DependencyInjection extension, and configures through a config.yml tree under the eo_airbrake key. Laravel has no bundle registry, no kernel class of that vintage, and no compatible config loader. A TPM's first act is to reclassify the artifact — this is a reference implementation for Symfony 2.1–2.8, not a candidate dependency for the Laravel estate. The genuinely portable asset is the thin glue: an exception hook plus an Airbrake v2 notice payload, realistically a few hundred lines.

Integration feasibility — low against the modern stack, with a hard blocker. Composer may resolve, but the bundle's assumptions about HttpKernel, DependencyInjection, and Config components were rewritten several times between Symfony 2 and Symfony 6/7 (which Laravel 9–11 runs on). PHP 8 is unverified and unlikely: 2016-era code predates the removal of each()/create_function() and the scalar/return-type hardening that followed. Expect fatal errors at boot, before the notifier is ever exercised. The README's install instruction — "eo/airbrake-bundle": "dev-master" — is itself disqualifying for production: an unpinned branch is not a supply-chain posture we can defend.

Technical risk — high, and concentrated entirely in abandonment. Last release 2016-11-16, roughly nine years stale. 5 stars and 0 dependents means no downstream pressure, no issue triage, no patch cadence, and no CVE response path. The target API is Airbrake v2 (/notifier_api/v2/notices); hosted Airbrake.io has moved on from that surface, while self-hosted Errbit remains v2-compatible by design and is therefore the only credible runtime target. The composite 2.5/5 matches the evidence. The opportunity: 0.92 figure is a sparsity artifact of a five-star, zero-dependent sample — it signals unmet demand for Airbrake/Errbit glue in general, not value in this package. Do not admit it into a prioritization model unqualified.

Key questions a TPM must force answers to before spending an hour of engineering:

  1. Are the target applications Laravel or Symfony, and which exact versions? This bifurcates the entire plan.
  2. Is the destination hosted Airbrake.io or self-hosted Errbit? The v2 payload contract only reliably survives in the latter.
  3. Is error telemetry permitted to leave our network? Payloads carry request parameters and can carry PII — that is a review gate, not a config detail.
  4. Do we already own Sentry / Bugsnag / Rollbar / Flare? If so this is a duplication decision, not an integration decision.
  5. Who owns the fork when it breaks, and is that person already allocated to it? An unowned vendored dependency is a latent incident.

Integration Approach

Stack fit — reject as a dependency, retain as a spec. For Laravel, use Airbrake's official PHP notifier with its Laravel service provider, or evaluate a consolidated platform. Bridging a Symfony bundle into Laravel is pure maintenance tax. If a legacy Symfony 2.x application genuinely exists in the portfolio, that is the single context where this fits with zero adaptation: pin a tagged release (never dev-master), vendor the source, and confine it to that app. It must not become a shared internal service.

Migration path — migrate the capability, not the package. Sequence it as four gated phases, each with a decision the TPM owns:

  • Phase 0 — Inventory. Enumerate applications by framework and PHP/Laravel version; identify which have no error reporting today. This is where the real value is, and it is typically the largest finding: the gap is coverage, not tooling sophistication.
  • Phase 1 — Pick the destination. Errbit if infosec or data residency blocks off-network stack traces; Airbrake SaaS if time-to-value wins. Because Errbit is a drop-in for the same API, the destination decision can be deferred without blocking instrumentation — that optionality is the most useful property this package demonstrates.
  • Phase 2 — Instrument with a supported SDK on any framework still under active development. Wire it as a registered service with production-only reporting, an ignored-exception list, and a release marker. One PR, no long-lived dependency.
  • Phase 3 — Encapsulate. Wrap the notifier behind our own small interface so the vendor is swappable at the next platform review rather than piecemeal later.

Compatibility. Treat PHP 8 and Symfony/Laravel ≥3.4 as out of scope for the bundle itself. Verify Composer resolution first on anything legacy; a resolution failure is a same-day stop, not a spike.

Sequencing principle. Decide the destination and ship instrumentation on modern stacks before touching the legacy Symfony case. The legacy work is a bounded, single-app exception — fund it only if that app is revenue-bearing or compliance-relevant, and only with an assigned owner.

Operational Impact

Maintenance. Effectively zero upstream. Every PHP minor upgrade, Guzzle bump, or Airbrake API change becomes our patch. Budget it as owned source: a vendored fork with a named maintainer and a documented patch log, or don't take it at all. The honest finding is that the glue is roughly a day of engineering — which argues for buy the vendor, build the glue.

Support. No vendor SLA, no security advisory channel, no community triage. Incident response for the notifier itself rests entirely on internal capacity. For a component whose job is to report incidents, being unable to distinguish "no errors" from "notifier silently broken" is the worst possible failure.

Scaling. Fine on request volume — async socket delivery by default and optional synchronous cURL keep request latency unaffected. The scaling ceiling is not throughput, it is noise: without a disciplined ignored_exceptions list (defaults exclude HttpException, including 404s and access denials) and production-only reporting, alert fatigue erodes on-call trust faster than any volume limit. Alerting policy is a product decision encoded in config, and it belongs in the review, not in a defaults file.

Failure modes to design for.

  • Silent notifier death — async socket mode never waits for a response, so a broken key or unreachable host produces no errors and no alerts. Mitigate with a synthetic check against the simulate route or a scheduled canary exception.
  • Dependency rot — a routine PHP upgrade fatals at boot and, by definition, takes the error reporter down with the app.
  • Data leakage — request params in payloads reaching a third party without DPA or redaction.
  • Version-blindness — no release marker means we cannot answer "did this ship with Tuesday's deploy?", turning a ten-minute revert into an hour of log spelunking.

Ramp-up. Low for anyone who has configured an error tracker; the config surface is six keys. The real ramp-up is organizational — establishing who triages, what pages, and what the release-tagging convention is. That work is identical regardless of vendor, which is precisely why the vendor choice should not be allowed to gate it.

Ask. Reclassify the package as a Symfony-era reference implementation; decide SaaS vs. self-hosted Errbit this sprint; ship a supported notifier on modern stacks with production-only reporting, an ignored-exception policy, and a release marker; defer vendor consolidation (Sentry-class tooling) to the next platform review rather than accreting point tools.

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