Вход Регистрация
Файл: concrete5.7.5.6/concrete/vendor/zendframework/zend-validator/src/Between.php
Строк: 189
<?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 ZendValidator;

use 
Traversable;
use 
ZendStdlibArrayUtils;

class 
Between extends AbstractValidator
{
    const 
NOT_BETWEEN        'notBetween';
    const 
NOT_BETWEEN_STRICT 'notBetweenStrict';

    
/**
     * Validation failure message template definitions
     *
     * @var array
     */
    
protected $messageTemplates = array(
        
self::NOT_BETWEEN        => "The input is not between '%min%' and '%max%', inclusively",
        
self::NOT_BETWEEN_STRICT => "The input is not strictly between '%min%' and '%max%'"
    
);

    
/**
     * Additional variables available for validation failure messages
     *
     * @var array
     */
    
protected $messageVariables = array(
        
'min' => array('options' => 'min'),
        
'max' => array('options' => 'max'),
    );

    
/**
     * Options for the between validator
     *
     * @var array
     */
    
protected $options = array(
        
'inclusive' => true,  // Whether to do inclusive comparisons, allowing equivalence to min and/or max
        
'min'       => 0,
        
'max'       => PHP_INT_MAX,
    );

    
/**
     * Sets validator options
     * Accepts the following option keys:
     *   'min' => scalar, minimum border
     *   'max' => scalar, maximum border
     *   'inclusive' => boolean, inclusive border values
     *
     * @param  array|Traversable $options
     */
    
public function __construct($options null)
    {
        if (
$options instanceof Traversable) {
            
$options ArrayUtils::iteratorToArray($options);
        }
        if (!
is_array($options)) {
            
$options func_get_args();
            
$temp['min'] = array_shift($options);
            if (!empty(
$options)) {
                
$temp['max'] = array_shift($options);
            }

            if (!empty(
$options)) {
                
$temp['inclusive'] = array_shift($options);
            }

            
$options $temp;
        }

        if (!
array_key_exists('min'$options) || !array_key_exists('max'$options)) {
//            throw new ExceptionInvalidArgumentException("Missing option. 'min' and 'max' has to be given");
        
}

        
parent::__construct($options);
    }

    
/**
     * Returns the min option
     *
     * @return mixed
     */
    
public function getMin()
    {
        return 
$this->options['min'];
    }

    
/**
     * Sets the min option
     *
     * @param  mixed $min
     * @return Between Provides a fluent interface
     */
    
public function setMin($min)
    {
        
$this->options['min'] = $min;
        return 
$this;
    }

    
/**
     * Returns the max option
     *
     * @return mixed
     */
    
public function getMax()
    {
        return 
$this->options['max'];
    }

    
/**
     * Sets the max option
     *
     * @param  mixed $max
     * @return Between Provides a fluent interface
     */
    
public function setMax($max)
    {
        
$this->options['max'] = $max;
        return 
$this;
    }

    
/**
     * Returns the inclusive option
     *
     * @return bool
     */
    
public function getInclusive()
    {
        return 
$this->options['inclusive'];
    }

    
/**
     * Sets the inclusive option
     *
     * @param  bool $inclusive
     * @return Between Provides a fluent interface
     */
    
public function setInclusive($inclusive)
    {
        
$this->options['inclusive'] = $inclusive;
        return 
$this;
    }

    
/**
     * Returns true if and only if $value is between min and max options, inclusively
     * if inclusive option is true.
     *
     * @param  mixed $value
     * @return bool
     */
    
public function isValid($value)
    {
        
$this->setValue($value);

        if (
$this->getInclusive()) {
            if (
$this->getMin() > $value || $value $this->getMax()) {
                
$this->error(self::NOT_BETWEEN);
                return 
false;
            }
        } else {
            if (
$this->getMin() >= $value || $value >= $this->getMax()) {
                
$this->error(self::NOT_BETWEEN_STRICT);
                return 
false;
            }
        }

        return 
true;
    }
}
Онлайн: 0
Реклама