diff options
Diffstat (limited to 'libs/Zend/Validate.php')
-rw-r--r-- | libs/Zend/Validate.php | 90 |
1 files changed, 67 insertions, 23 deletions
diff --git a/libs/Zend/Validate.php b/libs/Zend/Validate.php index cb87ba5120..f14eb671e7 100644 --- a/libs/Zend/Validate.php +++ b/libs/Zend/Validate.php @@ -14,20 +14,20 @@ * * @category Zend * @package Zend_Validate - * @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: Validate.php 16286 2009-06-25 15:11:37Z thomas $ + * @version $Id: Validate.php 21340 2010-03-05 15:33:49Z thomas $ */ /** * @see Zend_Validate_Interface */ -require_once 'Zend/Validate/Interface.php'; +// require_once 'Zend/Validate/Interface.php'; /** * @category Zend * @package Zend_Validate - * @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 */ class Zend_Validate implements Zend_Validate_Interface @@ -195,30 +195,52 @@ class Zend_Validate implements Zend_Validate_Interface public static function is($value, $classBaseName, array $args = array(), $namespaces = array()) { $namespaces = array_merge((array) $namespaces, self::$_defaultNamespaces, array('Zend_Validate')); - foreach ($namespaces as $namespace) { - $className = $namespace . '_' . ucfirst($classBaseName); - try { - if (!class_exists($className)) { - require_once 'Zend/Loader.php'; - Zend_Loader::loadClass($className); + $className = ucfirst($classBaseName); + try { + if (!class_exists($className, false)) { + // require_once 'Zend/Loader.php'; + foreach($namespaces as $namespace) { + $class = $namespace . '_' . $className; + $file = str_replace('_', DIRECTORY_SEPARATOR, $class) . '.php'; + if (Zend_Loader::isReadable($file)) { + Zend_Loader::loadClass($class); + $className = $class; + break; + } } - $class = new ReflectionClass($className); - if ($class->implementsInterface('Zend_Validate_Interface')) { - if ($class->hasMethod('__construct')) { + } + + $class = new ReflectionClass($className); + if ($class->implementsInterface('Zend_Validate_Interface')) { + if ($class->hasMethod('__construct')) { + $keys = array_keys($args); + $numeric = false; + foreach($keys as $key) { + if (is_numeric($key)) { + $numeric = true; + break; + } + } + + if ($numeric) { $object = $class->newInstanceArgs($args); } else { - $object = $class->newInstance(); + $object = $class->newInstance($args); } - return $object->isValid($value); + } else { + $object = $class->newInstance(); } - } catch (Zend_Validate_Exception $ze) { - // if there is an exception while validating throw it - throw $ze; - } catch (Zend_Exception $ze) { - // fallthrough and continue for missing validation classes + + return $object->isValid($value); } + } catch (Zend_Validate_Exception $ze) { + // if there is an exception while validating throw it + throw $ze; + } catch (Exception $e) { + // fallthrough and continue for missing validation classes } - require_once 'Zend/Validate/Exception.php'; + + // require_once 'Zend/Validate/Exception.php'; throw new Zend_Validate_Exception("Validate class not found from basename '$classBaseName'"); } @@ -229,7 +251,7 @@ class Zend_Validate implements Zend_Validate_Interface */ public static function getMessageLength() { - require_once 'Zend/Validate/Abstract.php'; + // require_once 'Zend/Validate/Abstract.php'; return Zend_Validate_Abstract::getMessageLength(); } @@ -240,7 +262,29 @@ class Zend_Validate implements Zend_Validate_Interface */ public static function setMessageLength($length = -1) { - require_once 'Zend/Validate/Abstract.php'; + // require_once 'Zend/Validate/Abstract.php'; Zend_Validate_Abstract::setMessageLength($length); } + + /** + * Returns the default translation object + * + * @return Zend_Translate_Adapter|null + */ + public static function getDefaultTranslator($translator = null) + { + // require_once 'Zend/Validate/Abstract.php'; + return Zend_Validate_Abstract::getDefaultTranslator(); + } + + /** + * Sets a default translation object for all validation objects + * + * @param Zend_Translate|Zend_Translate_Adapter|null $translator + */ + public static function setDefaultTranslator($translator = null) + { + // require_once 'Zend/Validate/Abstract.php'; + Zend_Validate_Abstract::setDefaultTranslator($translator); + } } |