Skip to content

Commit 36a3ea4

Browse files
committed
Add ValidationConverterInterface
Make CakeValidationValidationConverter non static
1 parent 5f91ecc commit 36a3ea4

File tree

4 files changed

+39
-17
lines changed

4 files changed

+39
-17
lines changed

src/Converter/CakeValidationConverter.php renamed to src/Converter/CakeValidationValidationConverter.php

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@
77
/**
88
* CakePHP validation error convert.
99
*/
10-
final class CakeValidationConverter
10+
final class CakeValidationValidationConverter implements ValidationConverterInterface
1111
{
1212
/**
1313
* Create validation result from array with errors.
1414
*
15-
* @param array<mixed> $errors The validation errors
15+
* @param array $errors The validation errors
1616
*
1717
* @return ValidationResult The result
1818
*/
19-
public static function createValidationResult(array $errors): ValidationResult
19+
public function createValidationResult($errors): ValidationResult
2020
{
2121
$result = new ValidationResult();
2222

23-
static::addErrors($result, $errors);
23+
$this->addErrors($result, (array)$errors);
2424

2525
return $result;
2626
}
@@ -29,15 +29,17 @@ public static function createValidationResult(array $errors): ValidationResult
2929
* Add errors.
3030
*
3131
* @param ValidationResult $result The result
32-
* @param array<mixed> $errors The errors
32+
* @param array $errors The errors
3333
* @param string $path The path
34+
*
35+
* @return void
3436
*/
35-
private static function addErrors(ValidationResult $result, array $errors, string $path = ''): void
37+
private function addErrors(ValidationResult $result, array $errors, string $path = ''): void
3638
{
3739
foreach ($errors as $field => $error) {
3840
$oldPath = $path;
3941
$path .= ($path === '' ? '' : '.') . $field;
40-
static::addSubErrors($result, $error, $path);
42+
$this->addSubErrors($result, $error, $path);
4143
$path = $oldPath;
4244
}
4345
}
@@ -46,14 +48,16 @@ private static function addErrors(ValidationResult $result, array $errors, strin
4648
* Add sub errors.
4749
*
4850
* @param ValidationResult $result The result
49-
* @param array<mixed> $error The error
51+
* @param array $error The error
5052
* @param string $path The path
53+
*
54+
* @return void
5155
*/
52-
private static function addSubErrors(ValidationResult $result, array $error, string $path = ''): void
56+
private function addSubErrors(ValidationResult $result, array $error, string $path = ''): void
5357
{
5458
foreach ($error as $field2 => $errorMessage) {
5559
if (is_array($errorMessage)) {
56-
static::addErrors($result, [$field2 => $errorMessage], $path);
60+
$this->addErrors($result, [$field2 => $errorMessage], $path);
5761
} else {
5862
$result->addError($path, $errorMessage);
5963
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace Selective\Validation\Converter;
4+
5+
use Selective\Validation\ValidationResult;
6+
7+
/**
8+
* Converter interface.
9+
*/
10+
interface ValidationConverterInterface
11+
{
12+
/**
13+
* Create validation result from array with errors.
14+
*
15+
* @param mixed $errors The constraint violations to add to the list
16+
*
17+
* @return ValidationResult The result
18+
*/
19+
public function createValidationResult($errors): ValidationResult;
20+
}

src/Factory/CakeValidationFactory.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@
33
namespace Selective\Validation\Factory;
44

55
use Cake\Validation\Validator;
6-
use Selective\Validation\Converter\CakeValidationConverter;
6+
use Selective\Validation\Converter\CakeValidationValidationConverter;
77
use Selective\Validation\ValidationResult;
88

99
/**
1010
* Cake Validation factory.
11-
*
12-
* @deprecated
1311
*/
1412
final class CakeValidationFactory
1513
{
@@ -32,6 +30,6 @@ public function createValidator(): Validator
3230
*/
3331
public function createValidationResult(array $errors): ValidationResult
3432
{
35-
return (new CakeValidationConverter())->createValidationResult($errors);
33+
return (new CakeValidationValidationConverter())->createValidationResult($errors);
3634
}
3735
}

tests/Converter/CakeValidationFactoryTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Selective\Validation\Test\Converter;
44

55
use PHPUnit\Framework\TestCase;
6-
use Selective\Validation\Converter\CakeValidationConverter;
6+
use Selective\Validation\Converter\CakeValidationValidationConverter;
77
use Selective\Validation\Transformer\ErrorDetailsResultTransformer;
88
use Selective\Validation\ValidationResult;
99

@@ -31,7 +31,7 @@ private function getValidationResultAsArray(ValidationResult $validationResult):
3131
*/
3232
public function testCreateResultFromErrorsSimple()
3333
{
34-
$result = CakeValidationConverter::createValidationResult([
34+
$result = (new CakeValidationValidationConverter())->createValidationResult([
3535
'first_name' => [
3636
'_empty' => 'This field cannot be left empty',
3737
],
@@ -104,7 +104,7 @@ public function testCreateResultFromErrorsSimple()
104104
*/
105105
public function testCreateResultFromErrorsNestedArray()
106106
{
107-
$result = CakeValidationConverter::createValidationResult([
107+
$result = (new CakeValidationValidationConverter())->createValidationResult([
108108
'bills' => [
109109
0 => [
110110
'billing_number' => [

0 commit comments

Comments
 (0)