Skip to content

aminin/airbrake-bundle

Repository files navigation

AmiAirbrakeBundle

Build Status Coding Style Latest Stable Version Total Downloads Latest Unstable Version SensioLabsInsight License

Airbrake.io & Errbit integration for Symfony 3/4/5. This bundle plugs the Airbrake API client into Symfony project.

Prerequisites

This version of the bundle requires Symfony 3.4+ and php 7.2+

Installation

Step 1: Download AmiAirbrakeBundle using composer

Add AmiAirbrakeBundle in your composer.json:

$ composer require aminin/airbrake-bundle

Step 2: Enable the bundle

Enable the bundle in the kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Ami\AirbrakeBundle\AmiAirbrakeBundle(),
    );
}

Step 3: Configure the AmiAirbrakeBundle

Add the following configuration to your config.yml file

# app/config/config.yml
ami_airbrake:
    project_id:  YOUR-PROJECT-ID
    project_key: YOUR-API-KEY

Configuration reference

ami_airbrake:
    # This parameter is required
    # For Errbit the exact value of project_id doesn't matter
    project_id: YOUR-PROJECT-ID

    # Omit this key if you need to enable/disable the bundle temporarily 
    # If not given, this bundle will ignore all exceptions and won't send any data to remote.
    project_key: YOUR-API-KEY

    # By default, it is set to api.airbrake.io.
    # A host is a web address containing a scheme ("http" or "https"), a host and a port.
    # You can omit the scheme ("https" will be assumed) and the port (80 or 443 will be assumed).
    host: http://errbit.localhost:8000

    # You might want to ignore some exceptions such as http not found, access denied etc.
    # By default this bundle ignores all HttpException instances. (includes HttpNotFoundException, AccessDeniedException)
    # To log all exceptions leave this array empty.
    ignored_exceptions: ["Symfony\Component\HttpKernel\Exception\HttpException"]

parameters:
  # You may modify these parameters at your own risk
  ami_airbrake.notifier.class: 'Airbrake\Notifier'
  ami_airbrake.exception_listener.class: 'Ami\AirbrakeBundle\EventListener\ExceptionListener'
  ami_airbrake.shutdown_listener.class: 'Ami\AirbrakeBundle\EventListener\ShutdownListener'

Usage

Once configured, bundle will automatically send exceptions/errors to airbrake server.

You may access the Notifier as ami_airbrake.notifier service

    /** @var ContainerInterface $container */
    $container->get('ami_airbrake.notifier')->addFilter(function ($notice) {
        $notice['context']['environment'] = 'production';
        return $notice;
    });

License

This bundle is under the MIT license. See the complete license in the Resources/meta/LICENSE

References

Airbrake API client: https://github.com/airbrake/phpbrake

About

Airbrake API v3 integration for Symfony 2/3

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages