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.
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:
Key questions for the requester.
set_exception_handler, framework-level logging — and where would the notifier sit?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":
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.sentry/sentry-symfony, bugsnag/bugsnag-symfony, or Honeybadger's PHP client — all of which support current Symfony and PHP versions.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).
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.
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:
Failure modes to instrument for.
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.
How can I help you explore Laravel packages today?