Skip to content

Commit b308c9b

Browse files
committed
annotations @Inject is deprecated (BC break)
1 parent 8e6eb57 commit b308c9b

File tree

6 files changed

+22
-15
lines changed

6 files changed

+22
-15
lines changed

src/DI/Extensions/InjectExtension.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ public static function getInjectProperties(string $class): array
121121
$rp->getAttributes(DI\Attributes\Inject::class)
122122
|| DI\Helpers::parseAnnotation($rp, 'inject') !== null
123123
) {
124+
if (!$rp->getAttributes(DI\Attributes\Inject::class)) {
125+
trigger_error('Annotation @inject is deprecated, use #[Nette\\DI\\Attributes\\Inject] (used in ' . Reflection::toString($rp) . ')', E_USER_DEPRECATED);
126+
}
124127
if (!$rp->isPublic() || $rp->isStatic() || $rp->isReadOnly()) {
125128
throw new Nette\InvalidStateException(sprintf('Property %s for injection must not be static, readonly and must be public.', Reflection::toString($rp)));
126129
}

tests/DI/Container.inject.properties.phpt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
declare(strict_types=1);
88

99
use Nette\DI;
10+
use Nette\DI\Attributes\Inject;
1011
use Tester\Assert;
1112

1213

@@ -23,16 +24,16 @@ class Foo implements IFoo
2324

2425
class Test1
2526
{
26-
/** @inject */
27+
#[Inject]
2728
public stdClass $varA;
2829
}
2930

3031
class Test2 extends Test1
3132
{
32-
/** @inject */
33+
#[Inject]
3334
public stdClass $varC;
3435

35-
/** @inject */
36+
#[Inject]
3637
public IFoo $varD;
3738
}
3839

tests/DI/InjectExtension.basic.phpt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
declare(strict_types=1);
88

99
use Nette\DI;
10+
use Nette\DI\Attributes\Inject;
1011
use Nette\DI\Definitions\Reference;
1112
use Nette\DI\Definitions\Statement;
1213
use Tester\Assert;
@@ -31,7 +32,7 @@ class ConcreteDependencyB extends AbstractDependency
3132

3233
class ParentClass
3334
{
34-
/** @inject */
35+
#[Inject]
3536
public stdClass $a;
3637

3738

@@ -47,10 +48,10 @@ class ParentClass
4748

4849
class Service extends ParentClass
4950
{
50-
/** @inject */
51+
#[Inject]
5152
public stdClass $c;
5253

53-
/** @inject */
54+
#[Inject]
5455
public AbstractDependency $e;
5556

5657

tests/DI/InjectExtension.errors.phpt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
declare(strict_types=1);
88

99
use Nette\DI;
10+
use Nette\DI\Attributes\Inject;
1011
use Nette\InvalidStateException;
1112
use Tester\Assert;
1213

@@ -16,35 +17,35 @@ require __DIR__ . '/../bootstrap.php';
1617

1718
class ServiceA
1819
{
19-
/** @inject */
20+
#[Inject]
2021
public DateTimeImmutable $a;
2122
}
2223

2324

2425
class ServiceB
2526
{
26-
/** @inject */
27+
#[Inject]
2728
public Unknown $a;
2829
}
2930

3031

3132
class ServiceC
3233
{
33-
/** @inject */
34+
#[Inject]
3435
public $a;
3536
}
3637

3738

3839
class ServiceD
3940
{
40-
/** @inject */
41+
#[Inject]
4142
protected $a;
4243
}
4344

4445

4546
class ServiceE
4647
{
47-
/** @inject */
48+
#[Inject]
4849
public static $a;
4950
}
5051

tests/DI/InjectExtension.getInjectProperties().phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ use Tester\Assert;
1313

1414
class AClass
1515
{
16-
/** @inject */
16+
#[Inject]
1717
public AInjected $varA;
1818

19-
/** @inject */
19+
#[Inject]
2020
public BInjected $varB;
2121

2222
public $varD;
@@ -27,7 +27,7 @@ class AClass
2727

2828
class BadClass
2929
{
30-
/** @inject */
30+
#[Inject]
3131
public AClass|stdClass $var;
3232
}
3333

tests/DI/InjectExtension.getInjectProperties().traits.phpt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ namespace A
1616
namespace B
1717
{
1818
use A\AInjected;
19+
use Nette\DI\Attributes\Inject;
1920

2021
trait BTrait
2122
{
22-
/** @inject */
23+
#[Inject]
2324
public AInjected $varA;
2425
}
2526
}

0 commit comments

Comments
 (0)