1<?php 2/** 3 * Zend Framework (http://framework.zend.com/) 4 * 5 * @link http://github.com/zendframework/zf2 for the canonical source repository 6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) 7 * @license http://framework.zend.com/license/new-bsd New BSD License 8 */ 9 10namespace Zend\Validator; 11 12class StaticValidator 13{ 14 /** 15 * @var ValidatorPluginManager 16 */ 17 protected static $plugins; 18 19 /** 20 * Set plugin manager to use for locating validators 21 * 22 * @param ValidatorPluginManager|null $plugins 23 * @return void 24 */ 25 public static function setPluginManager(ValidatorPluginManager $plugins = null) 26 { 27 // Don't share by default to allow different arguments on subsequent calls 28 if ($plugins instanceof ValidatorPluginManager) { 29 $plugins->setShareByDefault(false); 30 } 31 static::$plugins = $plugins; 32 } 33 34 /** 35 * Get plugin manager for locating validators 36 * 37 * @return ValidatorPluginManager 38 */ 39 public static function getPluginManager() 40 { 41 if (null === static::$plugins) { 42 static::setPluginManager(new ValidatorPluginManager()); 43 } 44 return static::$plugins; 45 } 46 47 /** 48 * @param mixed $value 49 * @param string $classBaseName 50 * @param array $args OPTIONAL 51 * @return bool 52 */ 53 public static function execute($value, $classBaseName, array $args = array()) 54 { 55 $plugins = static::getPluginManager(); 56 57 $validator = $plugins->get($classBaseName, $args); 58 return $validator->isValid($value); 59 } 60} 61