Просмотр исходного кода

Exception will be thrown if ZendMonitorHandler is instantiated without having Zend Server installed.

ChristianB 13 лет назад
Родитель
Сommit
f0ba64ad4b

+ 22 - 0
src/Monolog/Handler/MissingExtensionException.php

@@ -0,0 +1,22 @@
+<?php
+
+/*
+ * This file is part of the Monolog package.
+ *
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Monolog\Handler;
+
+/**
+ * Exception can be thrown if an extension for an handler is missing
+ *
+ * @author  Christian Bergau <cbergau86@gmail.com>
+ */
+class MissingExtensionException extends \Exception
+{
+
+}

+ 9 - 25
src/Monolog/Handler/ZendMonitorHandler.php

@@ -36,22 +36,18 @@ class ZendMonitorHandler extends AbstractProcessingHandler
         Logger::EMERGENCY => 0,
     );
 
-    /**
-     * Is application running on a zend server?
-     *
-     * @var bool
-     */
-    protected $isZendServer = false;
-
     /**
      * Construct
      *
      * @param   int     $level
      * @param   bool    $bubble
+     * @throws  MissingExtensionException
      */
     public function __construct($level = Logger::DEBUG, $bubble = true)
     {
-        $this->isZendServer = function_exists('zend_monitor_custom_event');
+        if (!function_exists('zend_monitor_custom_event')) {
+            throw new MissingExtensionException('You must have Zend Server installed in order to use this handler');
+        }
         parent::__construct($level, $bubble);
     }
 
@@ -60,13 +56,11 @@ class ZendMonitorHandler extends AbstractProcessingHandler
      */
     protected function write(array $record)
     {
-        if ($this->isZendServer()) {
-            $this->writeZendMonitorCustomEvent(
-                $this->levelMap[$record['level']],
-                $record['message'],
-                $record['formatted']
-            );
-        }
+        $this->writeZendMonitorCustomEvent(
+            $this->levelMap[$record['level']],
+            $record['message'],
+            $record['formatted']
+        );
     }
 
     /**
@@ -98,14 +92,4 @@ class ZendMonitorHandler extends AbstractProcessingHandler
     {
         return $this->levelMap;
     }
-
-    /**
-     * Is Zend Server?
-     *
-     * @return bool
-     */
-    public function isZendServer()
-    {
-        return $this->isZendServer;
-    }
 }

+ 4 - 11
tests/Monolog/Handler/ZendMonitorHandlerTest.php

@@ -25,17 +25,7 @@ class ZendMonitorHandlerTest extends TestCase
     }
 
     /**
-     * @covers  \Monolog\Handler\ZendMonitor::__construct
-     * @covers  \Monolog\Handler\ZendMonitor::isZendServer
-     */
-    public function testIsZendServerReturnsTrue()
-    {
-        $zendMonitor = new ZendMonitorHandler();
-        $this->assertTrue($zendMonitor->isZendServer());
-    }
-
-    /**
-     * @covers  \Monolog\Handler\ZendMonitor::write
+     * @covers  Monolog\Handler\ZendMonitorHandler::write
      */
     public function testWrite()
     {
@@ -69,6 +59,9 @@ class ZendMonitorHandlerTest extends TestCase
         $zendMonitor->handle($record);
     }
 
+    /**
+     * @covers Monolog\Handler\ZendMonitorHandler::getDefaultFormatter
+     */
     public function testGetDefaultFormatterReturnsNormalizerFormatter()
     {
         $zendMonitor = new ZendMonitorHandler();