Skip to content

Commit 0420877

Browse files
handle both new and old sentry DSN, fix inspections
1 parent db592e6 commit 0420877

File tree

1 file changed

+27
-20
lines changed

1 file changed

+27
-20
lines changed

Module.php

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class Module
3030
/**
3131
* Translates Zend Framework log levels to Raven log levels.
3232
*/
33-
private $logLevels = array(
33+
private $logLevels = [
3434
7 => Raven::DEBUG,
3535
6 => Raven::INFO,
3636
5 => Raven::INFO,
@@ -39,7 +39,7 @@ class Module
3939
2 => Raven::FATAL,
4040
1 => Raven::FATAL,
4141
0 => Raven::FATAL,
42-
);
42+
];
4343

4444
/**
4545
* @var Raven $ravenClient
@@ -76,13 +76,14 @@ public function onBootstrap(MvcEvent $event)
7676
if (isset($this->config['zend-sentry']['raven-config']) && is_array($this->config['zend-sentry']['raven-config'])) {
7777
$ravenConfig = $this->config['zend-sentry']['raven-config'];
7878
} else {
79-
$ravenConfig = array();
79+
$ravenConfig = [];
8080
}
8181

8282
$sentryApiKey = $this->config['zend-sentry']['sentry-api-key'];
8383
$ravenClient = new Raven($sentryApiKey, $ravenConfig);
8484

8585
// Register the RavenClient as a application wide service
86+
/** @noinspection PhpUndefinedMethodInspection */
8687
$event->getApplication()->getServiceManager()->setService('raven', $ravenClient);
8788
$this->ravenClient = $ravenClient;
8889
$this->zendSentry = new ZendSentry($ravenClient);
@@ -122,9 +123,13 @@ public function onBootstrap(MvcEvent $event)
122123
*/
123124
public function getAutoloaderConfig()
124125
{
125-
return array('Zend\Loader\StandardAutoloader' => array('namespaces' => array(
126-
__NAMESPACE__ => __DIR__.'/src/'.__NAMESPACE__,
127-
)));
126+
return [
127+
'Zend\Loader\StandardAutoloader' => [
128+
'namespaces' => [
129+
__NAMESPACE__ => __DIR__.'/src/'.__NAMESPACE__,
130+
]
131+
]
132+
];
128133
}
129134

130135
/**
@@ -159,9 +164,9 @@ protected function setupBasicLogging(MvcEvent $event)
159164
$message = $event->getParam('message', 'No message provided');
160165
$priority = (int) $event->getParam('priority', Logger::INFO);
161166
$message = sprintf('%s: %s', $target, $message);
162-
$tags = $event->getParam('tags', array());
163-
$extra = $event->getParam('extra', array());
164-
$eventID = $raven->captureMessage($message, array(), array('tags' => $tags, 'level' => $logLevels[$priority], 'extra' => $extra)
167+
$tags = $event->getParam('tags', []);
168+
$extra = $event->getParam('extra', []);
169+
$eventID = $raven->captureMessage($message, [], ['tags' => $tags, 'level' => $logLevels[$priority], 'extra' => $extra]
165170
);
166171
return $eventID;
167172
}, 2);
@@ -199,9 +204,8 @@ protected function setupExceptionLogging(MvcEvent $event)
199204
$this->eventManager->getSharedManager()->attach('*', 'logException', function($event) use ($ravenClient) {
200205
/** @var $event MvcEvent */
201206
$exception = $event->getParam('exception');
202-
$tags = $event->getParam('tags', array());
203-
$eventID = $ravenClient->captureException($exception, array('tags' => $tags));
204-
return $eventID;
207+
$tags = $event->getParam('tags', []);
208+
return $ravenClient->captureException($exception, ['tags' => $tags]);
205209
});
206210
}
207211

@@ -213,14 +217,14 @@ protected function setupExceptionLogging(MvcEvent $event)
213217
protected function setupJavascriptLogging(MvcEvent $event)
214218
{
215219
$viewHelper = $event->getApplication()->getServiceManager()->get('ViewHelperManager')->get('headscript');
216-
/** @noinspection PhpUndefinedMethodInspection */
217220
$useRavenjsCDN = $this->config['zend-sentry']['use-ravenjs-cdn'];
218221
if (!isset($useRavenjsCDN) || $useRavenjsCDN) {
219-
$viewHelper->offsetSetFile(0, '//cdn.ravenjs.com/3.17.0/raven.min.js');
222+
/** @noinspection PhpUndefinedMethodInspection */
223+
$viewHelper->offsetSetFile(0, '//cdn.ravenjs.com/3.26.2/raven.min.js');
220224
}
221225
$publicApiKey = $this->convertKeyToPublic($this->config['zend-sentry']['sentry-api-key']);
222-
/** @noinspection PhpUndefinedMethodInspection */
223226
$ravenjsConfig = json_encode($this->config['zend-sentry']['ravenjs-config']);
227+
/** @noinspection PhpUndefinedMethodInspection */
224228
$viewHelper->offsetSetScript(1, sprintf("if (typeof Raven !== 'undefined') Raven.config('%s', %s).install()", $publicApiKey, $ravenjsConfig));
225229
}
226230

@@ -230,14 +234,17 @@ protected function setupJavascriptLogging(MvcEvent $event)
230234
*/
231235
private function convertKeyToPublic($key)
232236
{
233-
// Find private part
237+
// If new DSN is configured, no converting is needed
238+
if (substr_count($key, ':') == 1) {
239+
return $key;
240+
}
241+
// If legacy DSN with private part is configured...
242+
// ...find private part
234243
$start = strpos($key, ':', 6);
235244
$end = strpos($key, '@');
236245
$privatePart = substr($key, $start, $end - $start);
237246

238-
// Replace it with an empty string
239-
$publicKey = str_replace($privatePart, '', $key);
240-
241-
return $publicKey;
247+
// ... replace it with an empty string
248+
return str_replace($privatePart, '', $key);
242249
}
243250
}

0 commit comments

Comments
 (0)