diff options
Diffstat (limited to 'libs/Zend/Log/Filter/Priority.php')
-rw-r--r-- | libs/Zend/Log/Filter/Priority.php | 47 |
1 files changed, 36 insertions, 11 deletions
diff --git a/libs/Zend/Log/Filter/Priority.php b/libs/Zend/Log/Filter/Priority.php index d19c3f9ec6..45ba7c953b 100644 --- a/libs/Zend/Log/Filter/Priority.php +++ b/libs/Zend/Log/Filter/Priority.php @@ -15,23 +15,23 @@ * @category Zend * @package Zend_Log * @subpackage Filter - * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Priority.php 16219 2009-06-21 19:45:39Z thomas $ + * @version $Id: Priority.php 20260 2010-01-13 18:29:22Z ralph $ */ -/** Zend_Log_Filter_Interface */ -require_once 'Zend/Log/Filter/Interface.php'; +/** Zend_Log_Filter_Abstract */ +// require_once 'Zend/Log/Filter/Abstract.php'; /** * @category Zend * @package Zend_Log * @subpackage Filter - * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Priority.php 16219 2009-06-21 19:45:39Z thomas $ + * @version $Id: Priority.php 20260 2010-01-13 18:29:22Z ralph $ */ -class Zend_Log_Filter_Priority implements Zend_Log_Filter_Interface +class Zend_Log_Filter_Priority extends Zend_Log_Filter_Abstract { /** * @var integer @@ -51,15 +51,41 @@ class Zend_Log_Filter_Priority implements Zend_Log_Filter_Interface * @param string $operator Comparison operator * @throws Zend_Log_Exception */ - public function __construct($priority, $operator = '<=') + public function __construct($priority, $operator = NULL) { if (! is_integer($priority)) { - require_once 'Zend/Log/Exception.php'; + // require_once 'Zend/Log/Exception.php'; throw new Zend_Log_Exception('Priority must be an integer'); } $this->_priority = $priority; - $this->_operator = $operator; + $this->_operator = is_null($operator) ? '<=' : $operator; + } + + /** + * Create a new instance of Zend_Log_Filter_Priority + * + * @param array|Zend_Config $config + * @return Zend_Log_Filter_Priority + * @throws Zend_Log_Exception + */ + static public function factory($config) + { + $config = self::_parseConfig($config); + $config = array_merge(array( + 'priority' => null, + 'operator' => null, + ), $config); + + // Add support for constants + if (!is_numeric($config['priority']) && isset($config['priority']) && defined($config['priority'])) { + $config['priority'] = constant($config['priority']); + } + + return new self( + (int) $config['priority'], + $config['operator'] + ); } /** @@ -72,5 +98,4 @@ class Zend_Log_Filter_Priority implements Zend_Log_Filter_Interface { return version_compare($event['priority'], $this->_priority, $this->_operator); } - } |