-
-
Notifications
You must be signed in to change notification settings - Fork 101
/
ConstraintViolationInterface.php
127 lines (114 loc) · 4.29 KB
/
ConstraintViolationInterface.php
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Validator;
/**
* A violation of a constraint that happened during validation.
*
* For each constraint that fails during validation one or more violations are
* created. The violations store the violation message, the path to the failing
* element in the validation graph and the root element that was originally
* passed to the validator. For example, take the following graph:
*
* (Person)---(firstName: string)
* \
* (address: Address)---(street: string)
*
* If the <tt>Person</tt> object is validated and validation fails for the
* "firstName" property, the generated violation has the <tt>Person</tt>
* instance as root and the property path "firstName". If validation fails
* for the "street" property of the related <tt>Address</tt> instance, the root
* element is still the person, but the property path is "address.street".
*
* @author Bernhard Schussek <[email protected]>
*/
interface ConstraintViolationInterface
{
/**
* Returns the violation message.
*/
public function getMessage(): string|\Stringable;
/**
* Returns the raw violation message.
*
* The raw violation message contains placeholders for the parameters
* returned by {@link getParameters}. Typically you'll pass the
* message template and parameters to a translation engine.
*/
public function getMessageTemplate(): string;
/**
* Returns the parameters to be inserted into the raw violation message.
*
* @return array a possibly empty list of parameters indexed by the names
* that appear in the message template
*
* @see getMessageTemplate()
*/
public function getParameters(): array;
/**
* Returns a number for pluralizing the violation message.
*
* For example, the message template could have different translation based
* on a parameter "choices":
*
* <ul>
* <li>Please select exactly one entry. (choices=1)</li>
* <li>Please select two entries. (choices=2)</li>
* </ul>
*
* This method returns the value of the parameter for choosing the right
* pluralization form (in this case "choices").
*/
public function getPlural(): ?int;
/**
* Returns the root element of the validation.
*
* @return mixed The value that was passed originally to the validator when
* the validation was started. Because the validator traverses
* the object graph, the value at which the violation occurs
* is not necessarily the value that was originally validated.
*/
public function getRoot(): mixed;
/**
* Returns the property path from the root element to the violation.
*
* @return string The property path indicates how the validator reached
* the invalid value from the root element. If the root
* element is a <tt>Person</tt> instance with a property
* "address" that contains an <tt>Address</tt> instance
* with an invalid property "street", the generated property
* path is "address.street". Property access is denoted by
* dots, while array access is denoted by square brackets,
* for example "addresses[1].street".
*/
public function getPropertyPath(): string;
/**
* Returns the value that caused the violation.
*
* @return mixed the invalid value that caused the validated constraint to
* fail
*/
public function getInvalidValue(): mixed;
/**
* Returns a machine-digestible error code for the violation.
*/
public function getCode(): ?string;
/**
* Returns the constraint whose validation caused the violation.
*/
public function getConstraint(): ?Constraint;
/**
* Returns the cause of the violation.
*/
public function getCause(): mixed;
/**
* Converts the violation into a string for debugging purposes.
*/
public function __toString(): string;
}