Skip to content

Commit f8b7a5a

Browse files
committed
Remove services from Entity constructor
1 parent f42ae44 commit f8b7a5a

File tree

2 files changed

+30
-28
lines changed

2 files changed

+30
-28
lines changed

src/Type/Entity/Entity.php

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@
55
namespace ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity;
66

77
use ApiSkeletons\Doctrine\ORM\GraphQL\Config;
8-
use ApiSkeletons\Doctrine\ORM\GraphQL\Container;
98
use ApiSkeletons\Doctrine\ORM\GraphQL\Event\EntityDefinition;
109
use ApiSkeletons\Doctrine\ORM\GraphQL\Filter\FilterFactory;
1110
use ApiSkeletons\Doctrine\ORM\GraphQL\Hydrator\HydratorContainer;
12-
use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata;
1311
use ApiSkeletons\Doctrine\ORM\GraphQL\Resolve\FieldResolver;
1412
use ApiSkeletons\Doctrine\ORM\GraphQL\Resolve\ResolveCollectionFactory;
1513
use ApiSkeletons\Doctrine\ORM\GraphQL\Type\Connection;
@@ -36,36 +34,24 @@
3634
*/
3735
class Entity
3836
{
39-
/** @var mixed[] */
40-
protected array $metadata;
4137
/** @var array<string, string> */
4238
protected array $extractionMap = [];
4339
protected ObjectType|null $objectType = null;
44-
protected readonly Config $config;
45-
protected readonly EntityManager $entityManager;
46-
protected readonly EntityTypeContainer $entityTypeContainer;
47-
protected readonly EventDispatcher $eventDispatcher;
48-
protected readonly FieldResolver $fieldResolver;
49-
protected readonly FilterFactory $filterFactory;
50-
protected readonly HydratorContainer $hydratorContainer;
51-
protected readonly ResolveCollectionFactory $resolveCollectionFactory;
52-
protected readonly TypeContainer $typeContainer;
5340

41+
/** @param array<string, mixed> $metadata */
5442
public function __construct(
55-
Container $container,
56-
string $typeName,
57-
private string|null $eventName = null,
43+
private string|null $eventName,
44+
protected readonly Config $config,
45+
protected readonly EntityManager $entityManager,
46+
protected readonly EntityTypeContainer $entityTypeContainer,
47+
protected readonly EventDispatcher $eventDispatcher,
48+
protected readonly FieldResolver $fieldResolver,
49+
protected readonly FilterFactory $filterFactory,
50+
protected readonly HydratorContainer $hydratorContainer,
51+
protected readonly ResolveCollectionFactory $resolveCollectionFactory,
52+
protected readonly TypeContainer $typeContainer,
53+
protected readonly array $metadata,
5854
) {
59-
$this->config = $container->get(Config::class);
60-
$this->entityManager = $container->get(EntityManager::class);
61-
$this->entityTypeContainer = $container->get(EntityTypeContainer::class);
62-
$this->eventDispatcher = $container->get(EventDispatcher::class);
63-
$this->fieldResolver = $container->get(FieldResolver::class);
64-
$this->filterFactory = $container->get(FilterFactory::class);
65-
$this->hydratorContainer = $container->get(HydratorContainer::class);
66-
$this->resolveCollectionFactory = $container->get(ResolveCollectionFactory::class);
67-
$this->typeContainer = $container->get(TypeContainer::class);
68-
$this->metadata = $container->get(Metadata::class)[$typeName];
6955
}
7056

7157
public function getHydrator(): HydratorInterface

src/Type/Entity/EntityTypeContainer.php

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

55
namespace ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity;
66

7+
use ApiSkeletons\Doctrine\ORM\GraphQL\Config;
78
use ApiSkeletons\Doctrine\ORM\GraphQL\Container;
9+
use ApiSkeletons\Doctrine\ORM\GraphQL\Filter\FilterFactory;
10+
use ApiSkeletons\Doctrine\ORM\GraphQL\Hydrator\HydratorContainer;
811
use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata;
12+
use ApiSkeletons\Doctrine\ORM\GraphQL\Resolve\FieldResolver;
13+
use ApiSkeletons\Doctrine\ORM\GraphQL\Resolve\ResolveCollectionFactory;
14+
use ApiSkeletons\Doctrine\ORM\GraphQL\Type\TypeContainer;
15+
use Doctrine\ORM\EntityManager;
916
use GraphQL\Error\Error;
17+
use League\Event\EventDispatcher;
1018
use Override;
1119
use ReflectionClass;
1220

@@ -59,9 +67,17 @@ public function get(string $id, string|null $eventName = null): mixed
5967
(new ReflectionClass(Entity::class))
6068
->newLazyGhost(static function (Entity $object) use ($container, $id, $eventName): void {
6169
$object->__construct(
62-
$container,
63-
$id,
6470
$eventName,
71+
$container->get(Config::class),
72+
$container->get(EntityManager::class),
73+
$container->get(EntityTypeContainer::class),
74+
$container->get(EventDispatcher::class),
75+
$container->get(FieldResolver::class),
76+
$container->get(FilterFactory::class),
77+
$container->get(HydratorContainer::class),
78+
$container->get(ResolveCollectionFactory::class),
79+
$container->get(TypeContainer::class),
80+
$container->get(Metadata::class)[$id],
6581
);
6682
}),
6783
);

0 commit comments

Comments
 (0)