Validator.php
1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
namespace Cardinity\Method;
use Cardinity\Exception;
use Symfony\Component\Validator\Validator\ValidatorInterface as BaseValidator;
class Validator implements ValidatorInterface
{
/** @type BaseValidator */
private $validator;
/**
* @param BaseValidator $validator
*/
public function __construct(BaseValidator $validator)
{
$this->validator = $validator;
}
/**
* Validates given method values against its constraints
*
* @param MethodInterface $method
* @throws Exception\InvalidAttributeValue
*/
public function validate(MethodInterface $method)
{
$constraints = $method->getValidationConstraints();
if (empty($constraints)) {
return;
}
$violations = $this->validator->validate(
$method->getAttributes(),
$constraints
);
$countable = is_array($violations) || $violations instanceof \Countable;
if ($countable && count($violations) !== 0) {
throw new Exception\InvalidAttributeValue(
'Your method contains invalid attribute value',
$violations
);
}
}
}