Skip to content

Commit 6bcb670

Browse files
authored
Merge pull request #4 from KaririCode-Framework/develop
Develop
2 parents 0dc52a0 + b550edf commit 6bcb670

15 files changed

+348
-628
lines changed

composer.lock

Lines changed: 22 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Contract/ValidationResult.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@
66

77
interface ValidationResult
88
{
9-
public function addError(string $property, string $errorKey, string $message): void;
10-
11-
public function setValidatedData(string $property, mixed $value): void;
12-
13-
public function hasErrors(): bool;
9+
public function isValid(): bool;
1410

1511
public function getErrors(): array;
1612

src/Contract/ValidationResultFactory.php

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/Contract/ValidationResultProcessor.php

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/Processor/DefaultValidationResultProcessor.php

Lines changed: 0 additions & 39 deletions
This file was deleted.

src/Result/ValidationResult.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace KaririCode\Validator\Result;
6+
7+
use KaririCode\ProcessorPipeline\Result\ProcessingResultCollection;
8+
use KaririCode\Validator\Contract\ValidationResult as ValidationResultContract;
9+
10+
final class ValidationResult implements ValidationResultContract
11+
{
12+
public function __construct(
13+
private readonly ProcessingResultCollection $results
14+
) {
15+
}
16+
17+
public function isValid(): bool
18+
{
19+
return !$this->results->hasErrors();
20+
}
21+
22+
public function getErrors(): array
23+
{
24+
return $this->results->getErrors();
25+
}
26+
27+
public function getValidatedData(): array
28+
{
29+
return $this->results->getProcessedData();
30+
}
31+
32+
public function toArray(): array
33+
{
34+
return $this->results->toArray();
35+
}
36+
}

src/ValidationResult.php

Lines changed: 0 additions & 81 deletions
This file was deleted.

src/Validator.php

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,41 @@
66

77
use KaririCode\Contract\Processor\ProcessorRegistry;
88
use KaririCode\Contract\Validator\Validator as ValidatorContract;
9+
use KaririCode\ProcessorPipeline\Handler\ProcessorAttributeHandler;
910
use KaririCode\ProcessorPipeline\ProcessorBuilder;
1011
use KaririCode\PropertyInspector\AttributeAnalyzer;
11-
use KaririCode\PropertyInspector\AttributeHandler;
1212
use KaririCode\PropertyInspector\Utility\PropertyInspector;
1313
use KaririCode\Validator\Attribute\Validate;
14-
use KaririCode\Validator\Processor\DefaultValidationResultProcessor;
14+
use KaririCode\Validator\Result\ValidationResult;
1515

16-
class Validator implements ValidatorContract
16+
final class Validator implements ValidatorContract
1717
{
1818
private const IDENTIFIER = 'validator';
1919

20-
private ProcessorBuilder $builder;
20+
private readonly ProcessorBuilder $builder;
2121

2222
public function __construct(
23-
private readonly ProcessorRegistry $registry,
23+
private readonly ProcessorRegistry $registry
2424
) {
2525
$this->builder = new ProcessorBuilder($this->registry);
2626
}
2727

2828
public function validate(mixed $object): ValidationResult
2929
{
30+
$handler = new ProcessorAttributeHandler(
31+
self::IDENTIFIER,
32+
$this->builder
33+
);
34+
3035
$propertyInspector = new PropertyInspector(
3136
new AttributeAnalyzer(Validate::class)
3237
);
33-
$attributeHandler = new AttributeHandler(self::IDENTIFIER, $this->builder);
34-
$resultProcessor = new DefaultValidationResultProcessor();
35-
$handler = $propertyInspector->inspect($object, $attributeHandler);
3638

37-
return $resultProcessor->process($handler);
39+
/** @var PropertyAttributeHandler */
40+
$handler = $propertyInspector->inspect($object, $handler);
41+
42+
return new ValidationResult(
43+
$handler->getProcessingResults()
44+
);
3845
}
3946
}

0 commit comments

Comments
 (0)