@@ -70,18 +70,18 @@ discard block |
||
70 | 70 | protected function buildMap(ReflectionEntity $filter): array |
71 | 71 | { |
72 | 72 | $schema = $filter->getProperty('schema', true); |
73 | - if (empty($schema)) { |
|
73 | + if (empty($schema)){ |
|
74 | 74 | throw new SchemaException("Filter `{$filter->getName()}` does not define any schema"); |
75 | 75 | } |
76 | 76 | |
77 | 77 | $result = []; |
78 | - foreach ($schema as $field => $definition) { |
|
78 | + foreach ($schema as $field => $definition){ |
|
79 | 79 | $optional = false; |
80 | 80 | |
81 | 81 | // short definition |
82 | - if (is_string($definition)) { |
|
82 | + if (is_string($definition)){ |
|
83 | 83 | // simple scalar field definition |
84 | - if (!class_exists($definition)) { |
|
84 | + if (!class_exists($definition)){ |
|
85 | 85 | [$source, $origin] = $this->parseDefinition($field, $definition); |
86 | 86 | $result[$field] = [ |
87 | 87 | FilterProvider::SOURCE => $source, |
@@ -102,25 +102,25 @@ discard block |
||
102 | 102 | continue; |
103 | 103 | } |
104 | 104 | |
105 | - if (!is_array($definition) || count($definition) === 0) { |
|
105 | + if (!is_array($definition) || count($definition) === 0){ |
|
106 | 106 | throw new SchemaException( |
107 | 107 | "Invalid schema definition at `{$filter->getName()}`->`{$field}`" |
108 | 108 | ); |
109 | 109 | } |
110 | 110 | |
111 | 111 | // complex definition |
112 | - if (!empty($definition[self::ORIGIN])) { |
|
112 | + if (!empty($definition[self::ORIGIN])){ |
|
113 | 113 | $origin = $definition[self::ORIGIN]; |
114 | 114 | |
115 | 115 | // [class, 'data:something.*'] vs [class, 'data:something'] |
116 | 116 | $iterate = strpos($origin, '.*') !== false || !empty($definition[self::ITERATE]); |
117 | 117 | $origin = rtrim($origin, '.*'); |
118 | - } else { |
|
118 | + }else{ |
|
119 | 119 | $origin = $field; |
120 | 120 | $iterate = true; |
121 | 121 | } |
122 | 122 | |
123 | - if (!empty($definition[self::OPTIONAL]) && $definition[self::OPTIONAL]) { |
|
123 | + if (!empty($definition[self::OPTIONAL]) && $definition[self::OPTIONAL]){ |
|
124 | 124 | $optional = true; |
125 | 125 | } |
126 | 126 | |
@@ -133,7 +133,7 @@ discard block |
||
133 | 133 | FilterProvider::OPTIONAL => $optional, |
134 | 134 | ]; |
135 | 135 | |
136 | - if ($iterate) { |
|
136 | + if ($iterate){ |
|
137 | 137 | [$source, $origin] = $this->parseDefinition($field, $definition[self::ITERATE] ?? $origin); |
138 | 138 | |
139 | 139 | $map[FilterProvider::ITERATE_SOURCE] = $source; |
@@ -159,7 +159,7 @@ discard block |
||
159 | 159 | */ |
160 | 160 | private function parseDefinition(string $field, string $definition): array |
161 | 161 | { |
162 | - if (strpos($definition, ':') === false) { |
|
162 | + if (strpos($definition, ':') === false){ |
|
163 | 163 | return ['data', $definition ?? $field]; |
164 | 164 | } |
165 | 165 |
@@ -70,18 +70,22 @@ discard block |
||
70 | 70 | protected function buildMap(ReflectionEntity $filter): array |
71 | 71 | { |
72 | 72 | $schema = $filter->getProperty('schema', true); |
73 | - if (empty($schema)) { |
|
73 | + if (empty($schema)) |
|
74 | + { |
|
74 | 75 | throw new SchemaException("Filter `{$filter->getName()}` does not define any schema"); |
75 | 76 | } |
76 | 77 | |
77 | 78 | $result = []; |
78 | - foreach ($schema as $field => $definition) { |
|
79 | + foreach ($schema as $field => $definition) |
|
80 | + { |
|
79 | 81 | $optional = false; |
80 | 82 | |
81 | 83 | // short definition |
82 | - if (is_string($definition)) { |
|
84 | + if (is_string($definition)) |
|
85 | + { |
|
83 | 86 | // simple scalar field definition |
84 | - if (!class_exists($definition)) { |
|
87 | + if (!class_exists($definition)) |
|
88 | + { |
|
85 | 89 | [$source, $origin] = $this->parseDefinition($field, $definition); |
86 | 90 | $result[$field] = [ |
87 | 91 | FilterProvider::SOURCE => $source, |
@@ -102,25 +106,30 @@ discard block |
||
102 | 106 | continue; |
103 | 107 | } |
104 | 108 | |
105 | - if (!is_array($definition) || count($definition) === 0) { |
|
109 | + if (!is_array($definition) || count($definition) === 0) |
|
110 | + { |
|
106 | 111 | throw new SchemaException( |
107 | 112 | "Invalid schema definition at `{$filter->getName()}`->`{$field}`" |
108 | 113 | ); |
109 | 114 | } |
110 | 115 | |
111 | 116 | // complex definition |
112 | - if (!empty($definition[self::ORIGIN])) { |
|
117 | + if (!empty($definition[self::ORIGIN])) |
|
118 | + { |
|
113 | 119 | $origin = $definition[self::ORIGIN]; |
114 | 120 | |
115 | 121 | // [class, 'data:something.*'] vs [class, 'data:something'] |
116 | 122 | $iterate = strpos($origin, '.*') !== false || !empty($definition[self::ITERATE]); |
117 | 123 | $origin = rtrim($origin, '.*'); |
118 | - } else { |
|
124 | + } |
|
125 | + else |
|
126 | + { |
|
119 | 127 | $origin = $field; |
120 | 128 | $iterate = true; |
121 | 129 | } |
122 | 130 | |
123 | - if (!empty($definition[self::OPTIONAL]) && $definition[self::OPTIONAL]) { |
|
131 | + if (!empty($definition[self::OPTIONAL]) && $definition[self::OPTIONAL]) |
|
132 | + { |
|
124 | 133 | $optional = true; |
125 | 134 | } |
126 | 135 | |
@@ -133,7 +142,8 @@ discard block |
||
133 | 142 | FilterProvider::OPTIONAL => $optional, |
134 | 143 | ]; |
135 | 144 | |
136 | - if ($iterate) { |
|
145 | + if ($iterate) |
|
146 | + { |
|
137 | 147 | [$source, $origin] = $this->parseDefinition($field, $definition[self::ITERATE] ?? $origin); |
138 | 148 | |
139 | 149 | $map[FilterProvider::ITERATE_SOURCE] = $source; |
@@ -159,7 +169,8 @@ discard block |
||
159 | 169 | */ |
160 | 170 | private function parseDefinition(string $field, string $definition): array |
161 | 171 | { |
162 | - if (strpos($definition, ':') === false) { |
|
172 | + if (strpos($definition, ':') === false) |
|
173 | + { |
|
163 | 174 | return ['data', $definition ?? $field]; |
164 | 175 | } |
165 | 176 |
@@ -95,7 +95,7 @@ discard block |
||
95 | 95 | FilterProvider::SOURCE => null, |
96 | 96 | FilterProvider::ORIGIN => $field, |
97 | 97 | FilterProvider::FILTER => $definition, |
98 | - FilterProvider::ARRAY => false, |
|
98 | + FilterProvider::array => false, |
|
99 | 99 | FilterProvider::OPTIONAL => $optional, |
100 | 100 | ]; |
101 | 101 | |
@@ -129,7 +129,7 @@ discard block |
||
129 | 129 | FilterProvider::FILTER => $definition[self::NESTED], |
130 | 130 | FilterProvider::SOURCE => null, |
131 | 131 | FilterProvider::ORIGIN => $origin, |
132 | - FilterProvider::ARRAY => $iterate, |
|
132 | + FilterProvider::array => $iterate, |
|
133 | 133 | FilterProvider::OPTIONAL => $optional, |
134 | 134 | ]; |
135 | 135 |
@@ -33,7 +33,7 @@ discard block |
||
33 | 33 | public const SOURCE = 'source'; |
34 | 34 | public const ORIGIN = 'origin'; |
35 | 35 | public const FILTER = 'filter'; |
36 | - public const ARRAY = 'array'; |
|
36 | + public const array = 'array'; |
|
37 | 37 | public const OPTIONAL = 'optional'; |
38 | 38 | public const ITERATE_SOURCE = 'iterate_source'; |
39 | 39 | public const ITERATE_ORIGIN = 'iterate_origin'; |
@@ -103,7 +103,7 @@ discard block |
||
103 | 103 | } |
104 | 104 | |
105 | 105 | $nested = $map[self::FILTER]; |
106 | - if (empty($map[self::ARRAY])) { |
|
106 | + if (empty($map[self::array])) { |
|
107 | 107 | // slicing down |
108 | 108 | $result[$field] = $this->createFilter($nested, $input->withPrefix($map[self::ORIGIN])); |
109 | 109 | continue; |
@@ -90,7 +90,7 @@ discard block |
||
90 | 90 | array $schema, |
91 | 91 | ValidatorInterface $validator, |
92 | 92 | ErrorMapper $errorMapper |
93 | - ) { |
|
93 | + ){ |
|
94 | 94 | parent::__construct($data, $schema); |
95 | 95 | |
96 | 96 | $this->mappings = $schema[FilterProvider::MAPPING] ?? []; |
@@ -151,10 +151,10 @@ discard block |
||
151 | 151 | */ |
152 | 152 | public function getErrors(): array |
153 | 153 | { |
154 | - if ($this->errors === null) { |
|
154 | + if ($this->errors === null){ |
|
155 | 155 | $this->errors = []; |
156 | - foreach ($this->validator->withData($this)->getErrors() as $field => $error) { |
|
157 | - if (is_string($error) && Translator::isMessage($error)) { |
|
156 | + foreach ($this->validator->withData($this)->getErrors() as $field => $error){ |
|
157 | + if (is_string($error) && Translator::isMessage($error)){ |
|
158 | 158 | // translate error message |
159 | 159 | $error = $this->say($error); |
160 | 160 | } |
@@ -178,32 +178,32 @@ discard block |
||
178 | 178 | */ |
179 | 179 | protected function validateNested(array $errors): array |
180 | 180 | { |
181 | - foreach ($this->getFields(false) as $index => $value) { |
|
182 | - if (isset($errors[$index])) { |
|
181 | + foreach ($this->getFields(false) as $index => $value){ |
|
182 | + if (isset($errors[$index])){ |
|
183 | 183 | //Invalid on parent level |
184 | 184 | continue; |
185 | 185 | } |
186 | 186 | |
187 | - if ($value instanceof FilterInterface) { |
|
188 | - if ($this->isOptional($index) && ! $this->hasBeenPassed($index)) { |
|
187 | + if ($value instanceof FilterInterface){ |
|
188 | + if ($this->isOptional($index) && !$this->hasBeenPassed($index)){ |
|
189 | 189 | continue; |
190 | 190 | } |
191 | 191 | |
192 | - if (! $value->isValid()) { |
|
192 | + if (!$value->isValid()){ |
|
193 | 193 | $errors[$index] = $value->getErrors(); |
194 | 194 | continue; |
195 | 195 | } |
196 | 196 | } |
197 | 197 | |
198 | 198 | //Array of nested entities for validation |
199 | - if (is_iterable($value)) { |
|
200 | - foreach ($value as $nIndex => $nValue) { |
|
201 | - if ($nValue instanceof FilterInterface) { |
|
202 | - if ($this->isOptional($nIndex) && ! $this->hasBeenPassed($nIndex)) { |
|
199 | + if (is_iterable($value)){ |
|
200 | + foreach ($value as $nIndex => $nValue){ |
|
201 | + if ($nValue instanceof FilterInterface){ |
|
202 | + if ($this->isOptional($nIndex) && !$this->hasBeenPassed($nIndex)){ |
|
203 | 203 | continue; |
204 | 204 | } |
205 | 205 | |
206 | - if (! $nValue->isValid()) { |
|
206 | + if (!$nValue->isValid()){ |
|
207 | 207 | $errors[$index][$nIndex] = $nValue->getErrors(); |
208 | 208 | } |
209 | 209 | } |
@@ -237,11 +237,11 @@ discard block |
||
237 | 237 | { |
238 | 238 | $value = $this->getField($field); |
239 | 239 | |
240 | - if ($value === null) { |
|
240 | + if ($value === null){ |
|
241 | 241 | return false; |
242 | 242 | } |
243 | 243 | |
244 | - if ($value instanceof FilterInterface) { |
|
244 | + if ($value instanceof FilterInterface){ |
|
245 | 245 | return $value->getValue() !== []; |
246 | 246 | } |
247 | 247 |
@@ -151,10 +151,13 @@ discard block |
||
151 | 151 | */ |
152 | 152 | public function getErrors(): array |
153 | 153 | { |
154 | - if ($this->errors === null) { |
|
154 | + if ($this->errors === null) |
|
155 | + { |
|
155 | 156 | $this->errors = []; |
156 | - foreach ($this->validator->withData($this)->getErrors() as $field => $error) { |
|
157 | - if (is_string($error) && Translator::isMessage($error)) { |
|
157 | + foreach ($this->validator->withData($this)->getErrors() as $field => $error) |
|
158 | + { |
|
159 | + if (is_string($error) && Translator::isMessage($error)) |
|
160 | + { |
|
158 | 161 | // translate error message |
159 | 162 | $error = $this->say($error); |
160 | 163 | } |
@@ -178,32 +181,42 @@ discard block |
||
178 | 181 | */ |
179 | 182 | protected function validateNested(array $errors): array |
180 | 183 | { |
181 | - foreach ($this->getFields(false) as $index => $value) { |
|
182 | - if (isset($errors[$index])) { |
|
184 | + foreach ($this->getFields(false) as $index => $value) |
|
185 | + { |
|
186 | + if (isset($errors[$index])) |
|
187 | + { |
|
183 | 188 | //Invalid on parent level |
184 | 189 | continue; |
185 | 190 | } |
186 | 191 | |
187 | - if ($value instanceof FilterInterface) { |
|
188 | - if ($this->isOptional($index) && ! $this->hasBeenPassed($index)) { |
|
192 | + if ($value instanceof FilterInterface) |
|
193 | + { |
|
194 | + if ($this->isOptional($index) && ! $this->hasBeenPassed($index)) |
|
195 | + { |
|
189 | 196 | continue; |
190 | 197 | } |
191 | 198 | |
192 | - if (! $value->isValid()) { |
|
199 | + if (! $value->isValid()) |
|
200 | + { |
|
193 | 201 | $errors[$index] = $value->getErrors(); |
194 | 202 | continue; |
195 | 203 | } |
196 | 204 | } |
197 | 205 | |
198 | 206 | //Array of nested entities for validation |
199 | - if (is_iterable($value)) { |
|
200 | - foreach ($value as $nIndex => $nValue) { |
|
201 | - if ($nValue instanceof FilterInterface) { |
|
202 | - if ($this->isOptional($nIndex) && ! $this->hasBeenPassed($nIndex)) { |
|
207 | + if (is_iterable($value)) |
|
208 | + { |
|
209 | + foreach ($value as $nIndex => $nValue) |
|
210 | + { |
|
211 | + if ($nValue instanceof FilterInterface) |
|
212 | + { |
|
213 | + if ($this->isOptional($nIndex) && ! $this->hasBeenPassed($nIndex)) |
|
214 | + { |
|
203 | 215 | continue; |
204 | 216 | } |
205 | 217 | |
206 | - if (! $nValue->isValid()) { |
|
218 | + if (! $nValue->isValid()) |
|
219 | + { |
|
207 | 220 | $errors[$index][$nIndex] = $nValue->getErrors(); |
208 | 221 | } |
209 | 222 | } |
@@ -237,11 +250,13 @@ discard block |
||
237 | 250 | { |
238 | 251 | $value = $this->getField($field); |
239 | 252 | |
240 | - if ($value === null) { |
|
253 | + if ($value === null) |
|
254 | + { |
|
241 | 255 | return false; |
242 | 256 | } |
243 | 257 | |
244 | - if ($value instanceof FilterInterface) { |
|
258 | + if ($value instanceof FilterInterface) |
|
259 | + { |
|
245 | 260 | return $value->getValue() !== []; |
246 | 261 | } |
247 | 262 |