diff options
Diffstat (limited to 'libs/Zend/Validate/InArray.php')
-rw-r--r-- | libs/Zend/Validate/InArray.php | 108 |
1 files changed, 21 insertions, 87 deletions
diff --git a/libs/Zend/Validate/InArray.php b/libs/Zend/Validate/InArray.php index 3b1870543c..56940eb1aa 100644 --- a/libs/Zend/Validate/InArray.php +++ b/libs/Zend/Validate/InArray.php @@ -1,4 +1,5 @@ <?php + /** * Zend Framework * @@ -14,31 +15,34 @@ * * @category Zend * @package Zend_Validate - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: InArray.php 20358 2010-01-17 19:03:49Z thomas $ + * @version $Id: InArray.php 17470 2009-08-08 22:27:09Z thomas $ */ + /** * @see Zend_Validate_Abstract */ -// require_once 'Zend/Validate/Abstract.php'; +require_once 'Zend/Validate/Abstract.php'; + /** * @category Zend * @package Zend_Validate - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ class Zend_Validate_InArray extends Zend_Validate_Abstract { + const NOT_IN_ARRAY = 'notInArray'; /** * @var array */ protected $_messageTemplates = array( - self::NOT_IN_ARRAY => "'%value%' was not found in the haystack", + self::NOT_IN_ARRAY => "'%value%' was not found in the haystack" ); /** @@ -53,54 +57,19 @@ class Zend_Validate_InArray extends Zend_Validate_Abstract * * @var boolean */ - protected $_strict = false; - - /** - * Whether a recursive search should be done - * - * @var boolean - */ - protected $_recursive = false; + protected $_strict; /** * Sets validator options * - * @param array|Zend_Config $haystack + * @param array $haystack + * @param boolean $strict * @return void */ - public function __construct($options) + public function __construct(array $haystack, $strict = false) { - if ($options instanceof Zend_Config) { - $options = $options->toArray(); - } else if (!is_array($options)) { - // require_once 'Zend/Validate/Exception.php'; - throw new Zend_Validate_Exception('Array expected as parameter'); - } else { - $count = func_num_args(); - $temp = array(); - if ($count > 1) { - $temp['haystack'] = func_get_arg(0); - $temp['strict'] = func_get_arg(1); - $options = $temp; - } else { - $temp = func_get_arg(0); - if (!array_key_exists('haystack', $options)) { - $options = array(); - $options['haystack'] = $temp; - } else { - $options = $temp; - } - } - } - - $this->setHaystack($options['haystack']); - if (array_key_exists('strict', $options)) { - $this->setStrict($options['strict']); - } - - if (array_key_exists('recursive', $options)) { - $this->setRecursive($options['recursive']); - } + $this->setHaystack($haystack) + ->setStrict($strict); } /** @@ -143,29 +112,7 @@ class Zend_Validate_InArray extends Zend_Validate_Abstract */ public function setStrict($strict) { - $this->_strict = (boolean) $strict; - return $this; - } - - /** - * Returns the recursive option - * - * @return boolean - */ - public function getRecursive() - { - return $this->_recursive; - } - - /** - * Sets the recursive option - * - * @param boolean $recursive - * @return Zend_Validate_InArray Provides a fluent interface - */ - public function setRecursive($recursive) - { - $this->_recursive = (boolean) $recursive; + $this->_strict = $strict; return $this; } @@ -181,24 +128,11 @@ class Zend_Validate_InArray extends Zend_Validate_Abstract public function isValid($value) { $this->_setValue($value); - if ($this->getRecursive()) { - $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($this->_haystack)); - foreach($iterator as $element) { - if ($this->_strict) { - if ($element === $value) { - return true; - } - } else if ($element == $value) { - return true; - } - } - } else { - if (in_array($value, $this->_haystack, $this->_strict)) { - return true; - } + if (!in_array($value, $this->_haystack, $this->_strict)) { + $this->_error(self::NOT_IN_ARRAY); + return false; } - - $this->_error(self::NOT_IN_ARRAY); - return false; + return true; } + } |