2012-07-11 18:40:29 +01:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\Validator\Constraints ;
use Symfony\Component\Validator\Constraint ;
use Symfony\Component\Validator\Exception\MissingOptionsException ;
/**
* @ Annotation
2014-04-23 11:57:22 +01:00
* @ Target ({ " PROPERTY " , " METHOD " , " ANNOTATION " })
2012-07-11 18:40:29 +01:00
*
2013-04-17 17:02:12 +01:00
* @ author Bernhard Schussek < bschussek @ gmail . com >
2012-07-11 18:40:29 +01:00
*/
class Length extends Constraint
{
2014-11-03 10:15:16 +00:00
const TOO_SHORT_ERROR = '9ff3fdc4-b214-49db-8718-39c315e33d45' ;
const TOO_LONG_ERROR = 'd94b19cc-114f-4f44-9cc4-4138e80a87b9' ;
const INVALID_CHARACTERS_ERROR = '35e6a710-aa2e-4719-b58e-24b35749b767' ;
2014-09-24 11:08:18 +01:00
protected static $errorNames = array (
self :: TOO_SHORT_ERROR => 'TOO_SHORT_ERROR' ,
self :: TOO_LONG_ERROR => 'TOO_LONG_ERROR' ,
2014-11-03 10:15:16 +00:00
self :: INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR' ,
2014-09-24 11:08:18 +01:00
);
2012-12-03 15:49:07 +00:00
public $maxMessage = 'This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.' ;
public $minMessage = 'This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.' ;
public $exactMessage = 'This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.' ;
2015-01-26 20:06:31 +00:00
public $charsetMessage = 'This value does not match the expected {{ charset }} charset.' ;
2012-07-11 18:40:29 +01:00
public $max ;
public $min ;
public $charset = 'UTF-8' ;
public function __construct ( $options = null )
{
if ( null !== $options && ! is_array ( $options )) {
$options = array (
'min' => $options ,
'max' => $options ,
);
}
parent :: __construct ( $options );
if ( null === $this -> min && null === $this -> max ) {
2013-04-10 11:24:37 +01:00
throw new MissingOptionsException ( sprintf ( 'Either option "min" or "max" must be given for constraint %s' , __CLASS__ ), array ( 'min' , 'max' ));
2012-07-11 18:40:29 +01:00
}
}
}