Skip to content

Commit

Permalink
Adapt to last changes in yiisoft/hydrator
Browse files Browse the repository at this point in the history
  • Loading branch information
vjik committed Oct 4, 2023
1 parent 15f396c commit 28f8564
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 23 deletions.
2 changes: 1 addition & 1 deletion src/Attribute/Validate.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Yiisoft\Hydrator\Validator\Attribute;

use Attribute;
use Yiisoft\Hydrator\ParameterAttributeInterface;
use Yiisoft\Hydrator\Attribute\Parameter\ParameterAttributeInterface;
use Yiisoft\Validator\RuleInterface;

/**
Expand Down
13 changes: 8 additions & 5 deletions src/Attribute/ValidateResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@

namespace Yiisoft\Hydrator\Validator\Attribute;

use Yiisoft\Hydrator\Context;
use Yiisoft\Hydrator\ParameterAttributeInterface;
use Yiisoft\Hydrator\ParameterAttributeResolverInterface;
use Yiisoft\Hydrator\Attribute\Parameter\ParameterAttributeInterface;
use Yiisoft\Hydrator\Attribute\Parameter\ParameterAttributeResolverInterface;
use Yiisoft\Hydrator\AttributeHandling\Exception\UnexpectedAttributeException;
use Yiisoft\Hydrator\AttributeHandling\ParameterAttributeResolveContext;
use Yiisoft\Hydrator\Result;
use Yiisoft\Hydrator\UnexpectedAttributeException;
use Yiisoft\Validator\Result as ValidationResult;
use Yiisoft\Validator\ValidatorInterface;

Expand Down Expand Up @@ -40,7 +40,10 @@ public function setResult(?ValidationResult $result): void
$this->result = $result;
}

public function getParameterValue(ParameterAttributeInterface $attribute, Context $context): Result
public function getParameterValue(
ParameterAttributeInterface $attribute,
ParameterAttributeResolveContext $context,
): Result
{
if (!$attribute instanceof Validate) {
throw new UnexpectedAttributeException(Validate::class, $attribute);
Expand Down
21 changes: 7 additions & 14 deletions src/ValidatingHydrator.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

namespace Yiisoft\Hydrator\Validator;

use Yiisoft\Hydrator\DataInterface;
use Yiisoft\Hydrator\HydratorInterface;
use Yiisoft\Hydrator\Validator\Attribute\ValidateResolver;
use Yiisoft\Validator\Result;
Expand All @@ -26,25 +27,17 @@ public function __construct(
) {
}

public function hydrate(
object $object,
array $data = [],
array $map = [],
bool $strict = false
): void {
public function hydrate(object $object, array|DataInterface $data = []): void
{
$result = $this->beforeAction();
$this->hydrator->hydrate($object, $data, $map, $strict);
$this->hydrator->hydrate($object, $data);
$this->afterAction($object, $result);
}

public function create(
string $class,
array $data = [],
array $map = [],
bool $strict = false
): object {
public function create(string $class, array|DataInterface $data = []): object
{
$result = $this->beforeAction();
$object = $this->hydrator->create($class, $data, $map, $strict);
$object = $this->hydrator->create($class, $data);
$this->afterAction($object, $result);
return $object;
}
Expand Down
2 changes: 1 addition & 1 deletion tests/Attribute/ValidateResolverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Yiisoft\Hydrator\Validator\Tests\Attribute;

use PHPUnit\Framework\TestCase;
use Yiisoft\Hydrator\UnexpectedAttributeException;
use Yiisoft\Hydrator\AttributeHandling\Exception\UnexpectedAttributeException;
use Yiisoft\Hydrator\Validator\Attribute\Validate;
use Yiisoft\Hydrator\Validator\Tests\Support\Attribute\IncorrectValidateResolver;
use Yiisoft\Hydrator\Validator\Tests\Support\TestHelper;
Expand Down
2 changes: 1 addition & 1 deletion tests/Support/Attribute/IncorrectValidateResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Yiisoft\Hydrator\Validator\Tests\Support\Attribute;

use Attribute;
use Yiisoft\Hydrator\ParameterAttributeInterface;
use Yiisoft\Hydrator\Attribute\Parameter\ParameterAttributeInterface;
use Yiisoft\Hydrator\Validator\Attribute\ValidateResolver;

#[Attribute(Attribute::TARGET_PROPERTY | Attribute::TARGET_PARAMETER)]
Expand Down
10 changes: 9 additions & 1 deletion tests/Support/TestHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@

namespace Yiisoft\Hydrator\Validator\Tests\Support;

use Yiisoft\Hydrator\AttributeHandling\ResolverFactory\ContainerAttributeResolverFactory;
use Yiisoft\Hydrator\Hydrator;
use Yiisoft\Hydrator\ObjectFactory\ContainerObjectFactory;
use Yiisoft\Hydrator\Validator\Attribute\ValidateResolver;
use Yiisoft\Hydrator\Validator\ValidatingHydrator;
use Yiisoft\Injector\Injector;
use Yiisoft\Test\Support\Container\SimpleContainer;
use Yiisoft\Validator\Validator;

Expand All @@ -24,7 +27,12 @@ public static function createValidatingHydrator(): ValidatingHydrator
);

return new ValidatingHydrator(
new Hydrator($container),
new Hydrator(
attributeResolverFactory: new ContainerAttributeResolverFactory($container),
objectFactory: new ContainerObjectFactory(
new Injector($container)
),
),
$validator,
$validateResolver,
);
Expand Down

0 comments on commit 28f8564

Please sign in to comment.