diff --git a/LICENSE.md b/LICENSE.md index c216a55..b8af0d2 100755 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,4 @@ -Copyright (c) 2016, Russell Michell - theruss.com +Copyright (c) 2016-2019, Russell Michell - theruss.com All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/README.md b/README.md index 7f0ba16..a7ccf6b 100755 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This module binds Sentry.io and locally-hosted Sentry installations, to the erro ### SilverStripe 4 - * PHP5.6+, <7.2 - * SilverStripe v4.0.0+ + * PHP >7.0 + * SilverStripe ^4.0 ### SilverStripe 3 @@ -35,6 +35,11 @@ Add the Composer package as a dependency to your project: composer require phptek/sentry: 2.x + composer require phptek/sentry: 3.x + +Note that 2.x and 3.x should work with the same setups, the latter simply uses a +newer version of the Sentry PHP SDK, and has a leaner codebase. + Configure your application or site with the Sentry DSN into your project's YML config: ### SilverStripe 4 diff --git a/composer.json b/composer.json index 90b44e8..797b2e1 100755 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ "silverstripe/sentry": "*" }, "require": { - "php": ">=5.6|<=7.2", + "php": ">=7.0", "sentry/sdk": "^2.0", "monolog/monolog": "^1.24.0", "silverstripe/framework": "^4" diff --git a/src/Handler/SentryHandler.php b/src/Handler/SentryHandler.php index 0899dc7..f917879 100755 --- a/src/Handler/SentryHandler.php +++ b/src/Handler/SentryHandler.php @@ -12,6 +12,7 @@ use Monolog\Handler\AbstractProcessingHandler; use Monolog\Logger; use Sentry\Severity; +use SilverStripe\Core\Injector\Injectable; use PhpTek\Sentry\Log\SentryLogger; /** @@ -23,6 +24,8 @@ */ class SentryHandler extends AbstractProcessingHandler { + use Injectable; + /** * A mapping of log-level values between Zend_Log => Raven_Client * @@ -85,4 +88,12 @@ protected function write(array $record) : void $this->client->getSDK()->captureMessage($record['formatted'], new Severity(strtolower($record['level_name']))); } } + + /** + * @return + */ + public function getClient() + { + return $this->client; + } } diff --git a/tests/RavenClientTest.php b/tests/SentryHandlerTest.php similarity index 85% rename from tests/RavenClientTest.php rename to tests/SentryHandlerTest.php index a111375..93ed106 100755 --- a/tests/RavenClientTest.php +++ b/tests/SentryHandlerTest.php @@ -7,17 +7,15 @@ * @package phptek/sentry */ -use PhpTek\Sentry\Handler\SentryMonologHandler, - SilverStripe\Dev\SapphireTest, - SilverStripe\Core\Config\Config, - Monolog\Logger; +use SilverStripe\Dev\SapphireTest; +use Monolog\Logger; +use PhpTek\Sentry\Handler\SentryHandler; /** - * Exercises RavenClient. + * Exercises {@link SentryHandler}. */ -class RavenClientTest extends SapphireTest +class SentryHandlerTest extends SapphireTest { - /** * In the absence of fixture files, this is needed to force SaphhireTest into * creating us a test DB. @@ -34,7 +32,7 @@ class RavenClientTest extends SapphireTest public function testDefaultTagsAvailable() { $logger = new Logger('error-log'); - $logger->pushHandler(new SentryMonologHandler()); + $logger->pushHandler(SentryHandler::create()); $handler = $logger->getHandlers()[0]; $tagsThatWereSet = $handler->getClient()->getData()['tags']; @@ -54,7 +52,7 @@ public function testDefaultTagsAvailable() public function testdefaultUserDataAvailable() { $logger = new Logger('error-log'); - $logger->pushHandler(new SentryMonologHandler()); + $logger->pushHandler(SentryHandler::create()); $handler = $logger->getHandlers()[0]; // Setup the "fixture data" for this test @@ -83,7 +81,7 @@ public function testExtrasAvailable() 'env' => 'live' ]; $logger = new Logger('error-log'); - $logger->pushHandler(new SentryMonologHandler(100, true, $fixture)); + $logger->pushHandler(SentryHandler::create(100, true, $fixture)); $handler = $logger->getHandlers()[0]; $envThatWasSet = $handler->getClient()->getData()['env']; $xtraThatWasSet = $handler->getClient()->getData()['extra'];