117 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			117 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
|  | <?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; | ||
|  | 
 | ||
|  | use Monolog\ResettableInterface; | ||
|  | use Monolog\Formatter\FormatterInterface; | ||
|  | 
 | ||
|  | /** | ||
|  |  * This simple wrapper class can be used to extend handlers functionality. | ||
|  |  * | ||
|  |  * Example: A custom filtering that can be applied to any handler. | ||
|  |  * | ||
|  |  * Inherit from this class and override handle() like this: | ||
|  |  * | ||
|  |  *   public function handle(array $record) | ||
|  |  *   { | ||
|  |  *        if ($record meets certain conditions) { | ||
|  |  *            return false; | ||
|  |  *        } | ||
|  |  *        return $this->handler->handle($record); | ||
|  |  *   } | ||
|  |  * | ||
|  |  * @author Alexey Karapetov <alexey@karapetov.com> | ||
|  |  */ | ||
|  | class HandlerWrapper implements HandlerInterface, ResettableInterface | ||
|  | { | ||
|  |     /** | ||
|  |      * @var HandlerInterface | ||
|  |      */ | ||
|  |     protected $handler; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * HandlerWrapper constructor. | ||
|  |      * @param HandlerInterface $handler | ||
|  |      */ | ||
|  |     public function __construct(HandlerInterface $handler) | ||
|  |     { | ||
|  |         $this->handler = $handler; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * {@inheritdoc} | ||
|  |      */ | ||
|  |     public function isHandling(array $record) | ||
|  |     { | ||
|  |         return $this->handler->isHandling($record); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * {@inheritdoc} | ||
|  |      */ | ||
|  |     public function handle(array $record) | ||
|  |     { | ||
|  |         return $this->handler->handle($record); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * {@inheritdoc} | ||
|  |      */ | ||
|  |     public function handleBatch(array $records) | ||
|  |     { | ||
|  |         return $this->handler->handleBatch($records); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * {@inheritdoc} | ||
|  |      */ | ||
|  |     public function pushProcessor($callback) | ||
|  |     { | ||
|  |         $this->handler->pushProcessor($callback); | ||
|  | 
 | ||
|  |         return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * {@inheritdoc} | ||
|  |      */ | ||
|  |     public function popProcessor() | ||
|  |     { | ||
|  |         return $this->handler->popProcessor(); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * {@inheritdoc} | ||
|  |      */ | ||
|  |     public function setFormatter(FormatterInterface $formatter) | ||
|  |     { | ||
|  |         $this->handler->setFormatter($formatter); | ||
|  | 
 | ||
|  |         return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * {@inheritdoc} | ||
|  |      */ | ||
|  |     public function getFormatter() | ||
|  |     { | ||
|  |         return $this->handler->getFormatter(); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function reset() | ||
|  |     { | ||
|  |         if ($this->handler instanceof ResettableInterface) { | ||
|  |             return $this->handler->reset(); | ||
|  |         } | ||
|  |     } | ||
|  | } |