68 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.6 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;
 | 
						|
 | 
						|
/**
 | 
						|
 * Base class for all mail handlers
 | 
						|
 *
 | 
						|
 * @author Gyula Sallai
 | 
						|
 */
 | 
						|
abstract class MailHandler extends AbstractProcessingHandler
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * {@inheritdoc}
 | 
						|
     */
 | 
						|
    public function handleBatch(array $records)
 | 
						|
    {
 | 
						|
        $messages = array();
 | 
						|
 | 
						|
        foreach ($records as $record) {
 | 
						|
            if ($record['level'] < $this->level) {
 | 
						|
                continue;
 | 
						|
            }
 | 
						|
            $messages[] = $this->processRecord($record);
 | 
						|
        }
 | 
						|
 | 
						|
        if (!empty($messages)) {
 | 
						|
            $this->send((string) $this->getFormatter()->formatBatch($messages), $messages);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Send a mail with the given content
 | 
						|
     *
 | 
						|
     * @param string $content formatted email body to be sent
 | 
						|
     * @param array  $records the array of log records that formed this content
 | 
						|
     */
 | 
						|
    abstract protected function send($content, array $records);
 | 
						|
 | 
						|
    /**
 | 
						|
     * {@inheritdoc}
 | 
						|
     */
 | 
						|
    protected function write(array $record)
 | 
						|
    {
 | 
						|
        $this->send((string) $record['formatted'], array($record));
 | 
						|
    }
 | 
						|
 | 
						|
    protected function getHighestRecord(array $records)
 | 
						|
    {
 | 
						|
        $highestRecord = null;
 | 
						|
        foreach ($records as $record) {
 | 
						|
            if ($highestRecord === null || $highestRecord['level'] < $record['level']) {
 | 
						|
                $highestRecord = $record;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        return $highestRecord;
 | 
						|
    }
 | 
						|
}
 |