Skip to content

Commit 2118df9

Browse files
committed
Fixing circual reference
1 parent 5c5e811 commit 2118df9

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

src/Hydrators/HydratorsContainer.php

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
use FastyBird\JsonApi\JsonApi;
1919
use IPub\JsonAPIDocument;
20+
use Nette\DI;
2021
use SplObjectStorage;
2122

2223
/**
@@ -31,13 +32,16 @@ class HydratorsContainer
3132
/** @var SplObjectStorage<Hydrator, null> */
3233
private SplObjectStorage $hydrators;
3334

34-
/** @var JsonApi\JsonApiSchemaContainer */
35-
private JsonApi\JsonApiSchemaContainer $jsonApiSchemaContainer;
35+
/** @var DI\Container */
36+
private DI\Container $container;
37+
38+
/** @var JsonApi\JsonApiSchemaContainer|null */
39+
private ?JsonApi\JsonApiSchemaContainer $jsonApiSchemaContainer = null;
3640

3741
public function __construct(
38-
JsonApi\JsonApiSchemaContainer $jsonApiSchemaContainer
42+
DI\Container $container
3943
) {
40-
$this->jsonApiSchemaContainer = $jsonApiSchemaContainer;
44+
$this->container = $container;
4145

4246
$this->hydrators = new SplObjectStorage();
4347
}
@@ -54,7 +58,7 @@ public function findHydrator(JsonAPIDocument\IDocument $document): ?Hydrator
5458
$this->hydrators->rewind();
5559

5660
foreach ($this->hydrators as $hydrator) {
57-
$schema = $this->jsonApiSchemaContainer->getSchemaByClassName($hydrator->getEntityName());
61+
$schema = $this->getSchemaContainer()->getSchemaByClassName($hydrator->getEntityName());
5862

5963
if ($schema->getType() === $document->getResource()->getType()) {
6064
return $hydrator;
@@ -78,4 +82,18 @@ public function add(Hydrator $hydrator): void
7882
}
7983
}
8084

85+
/**
86+
* @return JsonApi\JsonApiSchemaContainer
87+
*/
88+
private function getSchemaContainer(): JsonApi\JsonApiSchemaContainer
89+
{
90+
if ($this->jsonApiSchemaContainer !== null) {
91+
return $this->jsonApiSchemaContainer;
92+
}
93+
94+
$this->jsonApiSchemaContainer = $this->container->getByType(JsonApi\JsonApiSchemaContainer::class);
95+
96+
return $this->jsonApiSchemaContainer;
97+
}
98+
8199
}

0 commit comments

Comments
 (0)