Skip to content

Commit 430d5c1

Browse files
committed
QA: types
1 parent 89a6a7e commit 430d5c1

9 files changed

+46
-61
lines changed

src/DI/AbstractExtension.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
namespace Nettrine\ORM\DI;
44

5-
use Contributte\DI\Extension\CompilerExtension;
65
use Doctrine\ORM\Configuration;
76
use Doctrine\Persistence\Mapping\Driver\MappingDriverChain;
7+
use Nette\DI\CompilerExtension;
88
use Nette\DI\Definitions\ServiceDefinition;
99
use Nettrine\ORM\Exception\Logical\InvalidStateException;
1010
use stdClass;

src/DI/Definitions/SmartStatement.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@
88
final class SmartStatement
99
{
1010

11-
/**
12-
* @param mixed $service
13-
*/
14-
public static function from($service): Statement
11+
public static function from(mixed $service): Statement
1512
{
1613
if (is_string($service)) {
1714
return new Statement($service);

src/DI/Helpers/MappingHelper.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
class MappingHelper
1616
{
1717

18-
/** @var CompilerExtension */
19-
private $extension;
18+
private CompilerExtension $extension;
2019

2120
private function __construct(CompilerExtension $extension)
2221
{

src/DI/OrmConsoleExtension.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,13 @@
1111
use Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand;
1212
use Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand;
1313
use Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand;
14-
use Nette\DI\Definitions\ServiceDefinition;
15-
use Nette\DI\Definitions\Statement;
1614
use Nette\DI\ServiceCreationException;
1715
use Symfony\Component\Console\Application;
1816

1917
class OrmConsoleExtension extends AbstractExtension
2018
{
2119

22-
/** @var bool */
23-
private $cliMode;
20+
private bool $cliMode;
2421

2522
public function __construct(?bool $cliMode = null)
2623
{

src/DI/OrmExtension.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Doctrine\Common\Proxy\AbstractProxyFactory;
66
use Doctrine\DBAL\Connection;
77
use Doctrine\ORM\Configuration;
8+
use Doctrine\ORM\Decorator\EntityManagerDecorator;
89
use Doctrine\ORM\EntityManager as DoctrineEntityManager;
910
use Doctrine\ORM\Mapping\UnderscoreNamingStrategy;
1011
use Doctrine\Persistence\Mapping\Driver\MappingDriverChain;
@@ -13,7 +14,6 @@
1314
use Nette\Schema\Expect;
1415
use Nette\Schema\Schema;
1516
use Nettrine\ORM\DI\Definitions\SmartStatement;
16-
use Nettrine\ORM\EntityManagerDecorator;
1717
use Nettrine\ORM\Exception\Logical\InvalidArgumentException;
1818
use Nettrine\ORM\Exception\Logical\InvalidStateException;
1919
use Nettrine\ORM\ManagerProvider;

src/ManagerProvider.php

+8-2
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,18 @@ public function __construct(
1717

1818
public function getDefaultManager(): EntityManagerInterface
1919
{
20-
return $this->registry->getManager($this->registry->getDefaultManagerName());
20+
/** @var EntityManagerInterface $manager */
21+
$manager = $this->registry->getManager($this->registry->getDefaultManagerName());
22+
23+
return $manager;
2124
}
2225

2326
public function getManager(string $name): EntityManagerInterface
2427
{
25-
return $this->registry->getManager($name);
28+
/** @var EntityManagerInterface $manager */
29+
$manager = $this->registry->getManager($name);
30+
31+
return $manager;
2632
}
2733

2834
}

src/ManagerRegistry.php

+23-26
Original file line numberDiff line numberDiff line change
@@ -13,47 +13,26 @@
1313
class ManagerRegistry extends AbstractManagerRegistry
1414
{
1515

16-
/** @var Container */
17-
private $container;
16+
private Container $container;
1817

1918
public function __construct(Connection $connection, EntityManagerInterface $em, Container $container)
2019
{
21-
$defaultConnection = $container->findByType(get_class($connection))[0];
22-
$defaultManager = $container->findByType(get_class($em))[0];
20+
$defaultConnection = $container->findByType($connection::class)[0];
21+
$defaultManager = $container->findByType($em::class)[0];
2322

2423
$connections = ['default' => $defaultConnection];
2524
$managers = ['default' => $defaultManager];
2625

2726
parent::__construct('ORM', $connections, $managers, 'default', 'default', Proxy::class);
28-
$this->container = $container;
29-
}
3027

31-
/**
32-
* @param string $name
33-
* @return object&ObjectManager
34-
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint
35-
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint
36-
*/
37-
protected function getService($name)
38-
{
39-
return $this->container->getService($name);
40-
}
41-
42-
/**
43-
* @param string $name
44-
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint
45-
*/
46-
protected function resetService($name): void
47-
{
48-
$this->container->removeService($name);
28+
$this->container = $container;
4929
}
5030

5131
/**
52-
* @param string $alias
5332
* @throws ORMException
5433
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint
5534
*/
56-
public function getAliasNamespace($alias): string
35+
public function getAliasNamespace(string $alias): string
5736
{
5837
foreach (array_keys($this->getManagers()) as $name) {
5938
try {
@@ -69,4 +48,22 @@ public function getAliasNamespace($alias): string
6948
throw new ORMException(sprintf('Unknown Entity namespace alias "%s"', $alias));
7049
}
7150

51+
/**
52+
* @return object&ObjectManager
53+
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint
54+
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint
55+
*/
56+
protected function getService(string $name)
57+
{
58+
return $this->container->getService($name);
59+
}
60+
61+
/**
62+
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint
63+
*/
64+
protected function resetService(string $name): void
65+
{
66+
$this->container->removeService($name);
67+
}
68+
7269
}

src/Mapping/ContainerEntityListenerResolver.php

+8-18
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@
99
class ContainerEntityListenerResolver implements EntityListenerResolver
1010
{
1111

12-
/** @var Container */
13-
private $container;
14-
1512
/** @var object[] */
16-
protected $instances = [];
13+
protected array $instances = [];
14+
15+
private Container $container;
1716

1817
public function __construct(Container $container)
1918
{
@@ -24,7 +23,7 @@ public function __construct(Container $container)
2423
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint
2524
* @param string|NULL $className
2625
*/
27-
public function clear($className = null): void
26+
public function clear(?string $className = null): void
2827
{
2928
if ($className === null) {
3029
$this->instances = [];
@@ -37,25 +36,20 @@ public function clear($className = null): void
3736
}
3837
}
3938

40-
/**
41-
* @param object|mixed $object
42-
*/
43-
public function register($object): void
39+
public function register(mixed $object): void
4440
{
4541
if (!is_object($object)) {
4642
throw new InvalidArgumentException(sprintf('An object was expected, but got "%s".', gettype($object)));
4743
}
4844

49-
$this->instances[get_class($object)] = $object;
45+
$this->instances[$object::class] = $object;
5046
}
5147

5248
/**
53-
* @param string $className
54-
* @return object
5549
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint
5650
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint
5751
*/
58-
public function resolve($className)
52+
public function resolve(string $className): object
5953
{
6054
/** @var class-string $className */
6155
$className = trim($className, '\\');
@@ -66,11 +60,7 @@ public function resolve($className)
6660

6761
$service = $this->container->getByType($className, false);
6862

69-
if ($service) {
70-
$this->instances[$className] = $service;
71-
} else {
72-
$this->instances[$className] = new $className();
73-
}
63+
$this->instances[$className] = $service ?: new $className();
7464

7565
return $this->instances[$className];
7666
}

tests/Toolkit/Container.php

+2-3
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,10 @@
1212
final class Container
1313
{
1414

15-
/** @var string */
16-
private $key;
15+
private string $key;
1716

1817
/** @var callable[] */
19-
private $onCompile = [];
18+
private array $onCompile = [];
2019

2120
public function __construct(string $key)
2221
{

0 commit comments

Comments
 (0)