Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
hrach committed Jan 6, 2019
1 parent 7286d46 commit c0941f1
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
18 changes: 16 additions & 2 deletions src/Bridges/NetteDI/DIRepositoryFinder.php
Expand Up @@ -9,8 +9,11 @@
namespace Nextras\Orm\Bridges\NetteDI;

use Nette\DI\ContainerBuilder;
use Nette\DI\Definitions\FactoryDefinition;
use Nette\DI\ServiceDefinition;
use Nextras\Orm\InvalidStateException;
use Nextras\Orm\Repository\IRepository;
use Tester\Assert;


class DIRepositoryFinder implements IRepositoryFinder
Expand Down Expand Up @@ -41,9 +44,17 @@ public function beforeCompile(): ?array
$repositories = [];
$repositoriesMap = [];
foreach ($types as $serviceName => $serviceDefinition) {
if (method_exists($serviceDefinition, 'addSetup')) {
$type = $serviceDefinition->getType();
throw new InvalidStateException(
"It seems DI defined repository of type '$type' is not defined as simple service.
Orm can work only with ServiceDefinition or FactoryDefinition services."
);
}
$serviceDefinition->addSetup('setModel', [$this->extension->prefix('@model')]);
$class = $serviceDefinition->getClass();
$class = $serviceDefinition->getType();
assert($class !== null);
assert($serviceDefinition instanceof ServiceDefinition || get_class($serviceDefinition) === '\Nette\DI\Definitions\FactoryDefinition');
$name = $this->getRepositoryName($serviceName, $serviceDefinition);
$repositories[$name] = $class;
$repositoriesMap[$class] = $serviceName;
Expand All @@ -54,7 +65,10 @@ public function beforeCompile(): ?array
}


protected function getRepositoryName(string $serviceName, ServiceDefinition $serviceDefinition): string
/**
* @param \Nette\DI\Definitions\FactoryDefinition|\Nette\DI\Definitions\ServiceDefinition|\Nette\DI\ServiceDefinition $serviceDefinition
*/
protected function getRepositoryName(string $serviceName, $serviceDefinition): string
{
return $serviceName;
}
Expand Down
4 changes: 3 additions & 1 deletion src/Bridges/NetteDI/PhpDocRepositoryFinder.php
Expand Up @@ -63,7 +63,9 @@ protected function findRepositories(string $modelClass): array
}

$modelReflection = new \ReflectionClass($modelClass);
$this->builder->addDependency($modelReflection->getFileName());
$classFileName = $modelReflection->getFileName();
assert($classFileName !== false);
$this->builder->addDependency($classFileName);

$repositories = [];
preg_match_all(
Expand Down

0 comments on commit c0941f1

Please sign in to comment.