@@ -64,21 +64,27 @@ use Zalas\Injector\PHPUnit\TestCase\ServiceContainerTestCase;
64
64
class ServiceInjectorTest extends TestCase implements ServiceContainerTestCase
65
65
{
66
66
/**
67
- * @var SerializerInterface
68
67
* @inject
69
68
*/
70
- private $serializer;
69
+ private SerializerInterface $serializer;
71
70
72
71
/**
73
- * @var LoggerInterface
74
72
* @inject logger
75
73
*/
76
- private $logger;
74
+ private LoggerInterface $logger;
75
+
76
+ /**
77
+ * @var LoggerInterface
78
+ * @inject
79
+ */
80
+ private $anotherLogger;
81
+
77
82
78
83
public function testThatServicesAreInjected()
79
84
{
80
85
$this->assertInstanceOf(SerializerInterface::class, $this->serializer, 'The service is injectd by its type');
81
86
$this->assertInstanceOf(LoggerInterface::class, $this->logger, 'The service is injected by its id');
87
+ $this->assertInstanceOf(LoggerInterface::class, $this->anotherLogger, 'The service is injected by its @var type');
82
88
}
83
89
84
90
public function createServiceContainer(): ContainerInterface
@@ -89,6 +95,7 @@ class ServiceInjectorTest extends TestCase implements ServiceContainerTestCase
89
95
```
90
96
91
97
The service is found by its type, or an id if it's given in the ` @inject ` tag.
98
+ In legacy PHP versions the ` @var ` annotation can be used.
92
99
93
100
The ` createServiceContainer ` method would be usually provided by a base test case or a trait.
94
101
In case of Symfony, such a trait is provided by this package (see the next section).
@@ -112,16 +119,14 @@ class ServiceInjectorTest extends TestCase implements ServiceContainerTestCase
112
119
use SymfonyTestContainer;
113
120
114
121
/**
115
- * @var SerializerInterface
116
122
* @inject
117
123
*/
118
- private $serializer;
124
+ private SerializerInterface $serializer;
119
125
120
126
/**
121
- * @var LoggerInterface
122
127
* @inject logger
123
128
*/
124
- private $logger;
129
+ private LoggerInterface $logger;
125
130
126
131
public function testThatServicesAreInjected()
127
132
{
@@ -171,16 +176,14 @@ class ServiceInjectorTest extends TestCase implements ServiceContainerTestCase
171
176
use SymfonyContainer;
172
177
173
178
/**
174
- * @var SerializerInterface
175
179
* @inject
176
180
*/
177
- private $serializer;
181
+ private SerializerInterface $serializer;
178
182
179
183
/**
180
- * @var LoggerInterface
181
184
* @inject logger
182
185
*/
183
- private $logger;
186
+ private LoggerInterface $logger;
184
187
185
188
public function testThatServicesAreInjected()
186
189
{
0 commit comments