2017 © Pedro Peláez
 

library nette-sentry-bridge

Bridge that adds some framework-specific context to official Sentry PHP SDK client.

image

wodcz/nette-sentry-bridge

Bridge that adds some framework-specific context to official Sentry PHP SDK client.

  • Friday, October 6, 2017
  • by wodCZ
  • Repository
  • 1 Watchers
  • 0 Stars
  • 1,017 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 61 % Grown

The README.md

nette-sentry-bridge

Bridge that adds some framework-specific context to official Sentry PHP SDK client., (*1)

Installation and usage

Installation via composer:

composer require wodcz/nette-sentry-bridge

Usage

This is not usual extension that you would register in extensions: section of your config.neon. In my opinion that is too late (something bad can happen before DIC is initialized). Because of this, setup is a bit different., (*2)

app/bootstrap.php:

<?php
declare(strict_types=1);
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Configurator;
//$configurator->setDebugMode('23.75.345.200'); // enable for your remote IP
$configurator->enableTracy(__DIR__ . '/../log');
$configurator->setTimeZone('Europe/Prague');
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
    ->addDirectory(__DIR__)
    ->register();
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon');

####################################### PART 1 #######################################
# Try to load configuration from app/config/sentry.php file
if(is_array($config = (@include __DIR__ . '/config/sentry.php')) && @$config['dsn']){
    $logger = new \wodCZ\NetteSentryBridge\SentryLogger($config['dsn'], @$config['options'] ?: []);
}
####################################### PART 1 #######################################

$container = $configurator->createContainer();

####################################### PART 2 #######################################
# Add container instance to logger, so it can pull some info from there.
if (isset($logger)) {
    $logger->setContainer($container);
}
####################################### PART 2 #######################################

return $container;

Then, create app/config/sentry.php with following configuration:, (*3)

app/config/sentry.php:

<?php
return [
    'dsn' => 'http://key:secret@sentry.example.com/123',
    'options' => [
        'app_path' => __DIR__.'/../',
        'environment' => 'production',
        'exclude' => [
            'Nette\Application\BadRequestException',
            'Nette\Application\ForbiddenRequestException',
            'Nette\Application\AbortException'
        ],
        # 'revision' => '',
        # all options: https://docs.sentry.io/clients/php/config/
    ]
];

Alternative configuration if you use docker or other setup that uses environment variables. If you don't specify dsn variable, extension will silently do nothing., (*4)

app/config/sentry.php:

<?php
return [
    'dsn' => getenv('SENTRY_DSN'),
    'options' => [
        'app_path' => __DIR__.'/../',
        'environment' => getenv('DEBUG') === 'true' ? 'development' : 'production',
        'exclude' => [
            'Nette\Application\BadRequestException',
            'Nette\Application\ForbiddenRequestException',
            'Nette\Application\AbortException'
        ],
        # 'revision' => '',
        # all options: https://docs.sentry.io/clients/php/config/
    ]
];

This is just a sample, all you need to do is to create instance of \wodCZ\NetteSentryBridge\SentryLogger to start logging, and call $logger->setContainer($container) to extend logs with Nette Context and to log errors caught by Nette\Application, (*5)

Important note to prevent confusion

Extension will not log anything if you have tracy enabled., (*6)

The Versions

06/10 2017

dev-master

9999999-dev https://github.com/wodCZ/nette-sentry-bridge

Bridge that adds some framework-specific context to official Sentry PHP SDK client.

  Sources   Download

GPL-3.0 BSD-3-Clause

The Requires

 

nette raven sentry tracy debbuger

06/10 2017

0.3

0.3.0.0 https://github.com/wodCZ/nette-sentry-bridge

Bridge that adds some framework-specific context to official Sentry PHP SDK client.

  Sources   Download

GPL-3.0 BSD-3-Clause

The Requires

 

nette raven sentry tracy debbuger

05/10 2017

0.2

0.2.0.0 https://github.com/wodCZ/nette-sentry-bridge

Bridge that adds some framework-specific context to official Sentry PHP SDK client.

  Sources   Download

GPL-3.0 BSD-3-Clause

The Requires

 

nette raven sentry tracy debbuger

05/10 2017

0.1

0.1.0.0 https://github.com/wodCZ/nette-sentry-bridge

Bridge that adds some framework-specific context to official Sentry PHP SDK client.

  Sources   Download

GPL-3.0 BSD-3-Clause

The Requires

 

nette raven sentry tracy debbuger