Source of file Regex.php
Size: 1,817 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Log/Filter/Regex.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Log\Filter; use Traversable; use Zend\Log\Exception; use Zend\Stdlib\ErrorHandler; class Regex implements FilterInterface { /** * Regex to match * * @var string */ protected $regex; /** * Filter out any log messages not matching the pattern * * @param string|array|Traversable $regex Regular expression to test the log message * @return Regex * @throws Exception\InvalidArgumentException */ public function __construct($regex) { if ($regex instanceof Traversable) { $regex = iterator_to_array($regex); } if (is_array($regex)) { $regex = isset($regex['regex']) ? $regex['regex'] : null; } ErrorHandler::start(E_WARNING); $result = preg_match($regex, ''); $error = ErrorHandler::stop(); if ($result === false) { throw new Exception\InvalidArgumentException(sprintf( 'Invalid regular expression "%s"', $regex ), 0, $error); } $this->regex = $regex; } /** * Returns TRUE to accept the message, FALSE to block it. * * @param array $event event data * @return bool accepted? */ public function filter(array $event) { $message = $event['message']; if (is_array($event['message'])) { $message = var_export($message, TRUE); } return preg_match($this->regex, $message) > 0; } } |