Skip to content

Commit 98760ac

Browse files
committed
feat: implement metadata support
1 parent fa1fa8d commit 98760ac

28 files changed

Lines changed: 557 additions & 113 deletions
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Constructo\Contract\Managed;
6+
7+
use Constructo\Exception\ManagedException;
8+
9+
interface IdGenerator
10+
{
11+
/**
12+
* @throws ManagedException
13+
*/
14+
public function generate(): string;
15+
}

src/Core/Reflect/Reflector.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
namespace Constructo\Core\Reflect;
66

7-
use Constructo\Core\Reflect\Resolve\ManagedChain;
8-
use Constructo\Core\Reflect\Resolve\RequirementChain;
9-
use Constructo\Core\Reflect\Resolve\TypeChain;
7+
use Constructo\Core\Reflect\Resolver\ManagedResolver;
8+
use Constructo\Core\Reflect\Resolver\RequirementResolver;
9+
use Constructo\Core\Reflect\Resolver\TypeResolver;
1010
use Constructo\Factory\SchemaFactory;
1111
use Constructo\Support\Cache;
1212
use Constructo\Support\Metadata\Schema;
@@ -59,9 +59,9 @@ public function reflect(string $source): Schema
5959
*/
6060
protected function introspect(array $parameters, Schema $schema, ?Field $parent = null, array $path = []): void
6161
{
62-
$chain = (new TypeChain($this->types))
63-
->then(new RequirementChain($parent))
64-
->then(new ManagedChain());
62+
$chain = (new TypeResolver($this->types))
63+
->then(new RequirementResolver($parent))
64+
->then(new ManagedResolver());
6565

6666
foreach ($parameters as $parameter) {
6767
assert($parameter instanceof ReflectionParameter);
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
use Constructo\Support\Metadata\Schema\Registry\Types;
99
use ReflectionParameter;
1010

11-
abstract class Chain
11+
abstract class Resolver
1212
{
13-
protected ?Chain $previous = null;
13+
protected ?Resolver $previous = null;
1414

1515
public function __construct(protected readonly ?Types $types = null)
1616
{
@@ -23,13 +23,13 @@ public function resolve(ReflectionParameter $parameter, Field $field, array $pat
2323
}
2424
}
2525

26-
final public function then(Chain $resolver): Chain
26+
final public function then(Resolver $resolver): Resolver
2727
{
2828
$resolver->setPrevious($this);
2929
return $resolver;
3030
}
3131

32-
final protected function setPrevious(Chain $previous): void
32+
final protected function setPrevious(Resolver $previous): void
3333
{
3434
$this->previous = $previous;
3535
}

src/Core/Reflect/Resolve/ManagedChain.php renamed to src/Core/Reflect/Resolver/ManagedResolver.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
declare(strict_types=1);
44

5-
namespace Constructo\Core\Reflect\Resolve;
5+
namespace Constructo\Core\Reflect\Resolver;
66

7-
use Constructo\Core\Reflect\Chain;
7+
use Constructo\Core\Reflect\Resolver;
88
use Constructo\Support\Metadata\Schema\Field;
99
use Constructo\Support\Reflective\Attribute\Managed;
1010
use ReflectionParameter;
1111

12-
class ManagedChain extends Chain
12+
class ManagedResolver extends Resolver
1313
{
1414
public function resolve(ReflectionParameter $parameter, Field $field, array $path): void
1515
{

src/Core/Reflect/Resolve/RequirementChain.php renamed to src/Core/Reflect/Resolver/RequirementResolver.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22

33
declare(strict_types=1);
44

5-
namespace Constructo\Core\Reflect\Resolve;
5+
namespace Constructo\Core\Reflect\Resolver;
66

7-
use Constructo\Core\Reflect\Chain;
7+
use Constructo\Core\Reflect\Resolver;
88
use Constructo\Support\Metadata\Schema\Field;
9-
use Constructo\Support\Metadata\Schema\Registry\Specs;
9+
use Constructo\Support\Metadata\Schema\Registry\Types;
1010
use ReflectionParameter;
1111

12-
class RequirementChain extends Chain
12+
class RequirementResolver extends Resolver
1313
{
1414
public function __construct(
1515
private readonly ?Field $parent = null,
16-
?Specs $specs = null,
16+
?Types $types = null,
1717
) {
18-
parent::__construct();
18+
parent::__construct($types);
1919
}
2020

2121
public function resolve(ReflectionParameter $parameter, Field $field, array $path): void

src/Core/Reflect/Resolve/Type/BuiltinNamedTypeHandler.php renamed to src/Core/Reflect/Resolver/Type/BuiltinNamedTypeHandler.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
declare(strict_types=1);
44

5-
namespace Constructo\Core\Reflect\Resolve\Type;
5+
namespace Constructo\Core\Reflect\Resolver\Type;
66

7-
use Constructo\Core\Reflect\Resolve\Type\Contract\NamedTypeHandler;
8-
use Constructo\Core\Reflect\Resolve\Type\Contract\NamedTypeResolution;
7+
use Constructo\Core\Reflect\Resolver\Type\Contract\NamedTypeHandler;
8+
use Constructo\Core\Reflect\Resolver\Type\Contract\NamedTypeResolution;
99
use Constructo\Support\Metadata\Schema\Field;
1010
use ReflectionNamedType;
1111

src/Core/Reflect/Resolve/Type/Contract/NamedTypeHandler.php renamed to src/Core/Reflect/Resolver/Type/Contract/NamedTypeHandler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace Constructo\Core\Reflect\Resolve\Type\Contract;
5+
namespace Constructo\Core\Reflect\Resolver\Type\Contract;
66

77
use Constructo\Support\Metadata\Schema\Field;
88
use ReflectionNamedType;

src/Core/Reflect/Resolve/Type/Contract/NamedTypeResolution.php renamed to src/Core/Reflect/Resolver/Type/Contract/NamedTypeResolution.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace Constructo\Core\Reflect\Resolve\Type\Contract;
5+
namespace Constructo\Core\Reflect\Resolver\Type\Contract;
66

77
enum NamedTypeResolution
88
{

src/Core/Reflect/Resolve/Type/Contract/TypeHandler.php renamed to src/Core/Reflect/Resolver/Type/Contract/TypeHandler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace Constructo\Core\Reflect\Resolve\Type\Contract;
5+
namespace Constructo\Core\Reflect\Resolver\Type\Contract;
66

77
use Constructo\Support\Metadata\Schema\Field;
88
use Constructo\Support\Metadata\Schema\Registry\Types;

src/Core/Reflect/Resolve/Type/DefineAttributeTypeHandler.php renamed to src/Core/Reflect/Resolver/Type/DefineAttributeTypeHandler.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
declare(strict_types=1);
44

5-
namespace Constructo\Core\Reflect\Resolve\Type;
5+
namespace Constructo\Core\Reflect\Resolver\Type;
66

7-
use Constructo\Core\Reflect\Resolve\Type\Contract\TypeHandler;
7+
use Constructo\Core\Reflect\Resolver\Type\Contract\TypeHandler;
88
use Constructo\Support\Metadata\Schema\Field;
99
use Constructo\Support\Metadata\Schema\Registry\Specs;
1010
use Constructo\Support\Reflective\Attribute\Define;

0 commit comments

Comments
 (0)