Skip to content

Commit bb3488d

Browse files
committed
feature #54496 [Contracts] Rename ServiceSubscriberTrait to ServiceMethodsSubscriberTrait (nicolas-grekas)
This PR was merged into the 7.1 branch. Discussion ---------- [Contracts] Rename ServiceSubscriberTrait to ServiceMethodsSubscriberTrait | Q | A | ------------- | --- | Branch? | 7.1 | Bug fix? | no | New feature? | no | Deprecations? | yes | Issues | Fix #54490 | License | MIT As described in the linked PR, AbstractController is incompatible with ServiceSubscriberTrait because of the added type to the AbstractController::$container property, while ServiceSubscriberTrait's $container property cannot have a type without a BC break. There are two parts to this PR: - Deprecate ServiceSubscriberTrait in favor if ServiceMethodsSubscriberTrait, which declares the type of the $container property. The new name better conveys its purpose as a bonus. - Fix the incompatibility with AbstractController by removing the property declaration on ServiceSubscriberTrait. This means the trait will create a dynamic property. Those are deprecated, but since the trait is also deprecated, the upgrade path is clear. I also tried to improve the description of the trait in the meantime. /cc `@kbond` Commits ------- 8f47ced9dd [Contracts] Rename ServiceSubscriberTrait to ServiceMethodsSubscriberTrait
2 parents 3d5b293 + 1009b92 commit bb3488d

6 files changed

+20
-20
lines changed

Tests/Compiler/RegisterServiceSubscribersPassTest.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@
4343
use Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriberUnionWithTrait;
4444
use Symfony\Component\DependencyInjection\TypedReference;
4545
use Symfony\Contracts\Service\Attribute\SubscribedService;
46+
use Symfony\Contracts\Service\ServiceMethodsSubscriberTrait;
4647
use Symfony\Contracts\Service\ServiceSubscriberInterface;
47-
use Symfony\Contracts\Service\ServiceSubscriberTrait;
4848

4949
require_once __DIR__.'/../Fixtures/includes/classes.php';
5050

@@ -221,7 +221,7 @@ public function testExtraServiceSubscriber()
221221
$container->compile();
222222
}
223223

224-
public function testServiceSubscriberTraitWithSubscribedServiceAttribute()
224+
public function testServiceMethodsSubscriberTraitWithSubscribedServiceAttribute()
225225
{
226226
if (!class_exists(SubscribedService::class)) {
227227
$this->markTestSkipped('SubscribedService attribute not available.');
@@ -251,14 +251,14 @@ public function testServiceSubscriberTraitWithSubscribedServiceAttribute()
251251
$this->assertEquals($expected, $container->getDefinition((string) $locator->getFactory()[0])->getArgument(0));
252252
}
253253

254-
public function testServiceSubscriberTraitWithSubscribedServiceAttributeOnStaticMethod()
254+
public function testServiceMethodsSubscriberTraitWithSubscribedServiceAttributeOnStaticMethod()
255255
{
256256
if (!class_exists(SubscribedService::class)) {
257257
$this->markTestSkipped('SubscribedService attribute not available.');
258258
}
259259

260260
$subscriber = new class() implements ServiceSubscriberInterface {
261-
use ServiceSubscriberTrait;
261+
use ServiceMethodsSubscriberTrait;
262262

263263
#[SubscribedService]
264264
public static function method(): TestDefinition1
@@ -271,14 +271,14 @@ public static function method(): TestDefinition1
271271
$subscriber::getSubscribedServices();
272272
}
273273

274-
public function testServiceSubscriberTraitWithSubscribedServiceAttributeOnMethodWithRequiredParameters()
274+
public function testServiceMethodsSubscriberTraitWithSubscribedServiceAttributeOnMethodWithRequiredParameters()
275275
{
276276
if (!class_exists(SubscribedService::class)) {
277277
$this->markTestSkipped('SubscribedService attribute not available.');
278278
}
279279

280280
$subscriber = new class() implements ServiceSubscriberInterface {
281-
use ServiceSubscriberTrait;
281+
use ServiceMethodsSubscriberTrait;
282282

283283
#[SubscribedService]
284284
public function method($param1, $param2 = null): TestDefinition1
@@ -291,14 +291,14 @@ public function method($param1, $param2 = null): TestDefinition1
291291
$subscriber::getSubscribedServices();
292292
}
293293

294-
public function testServiceSubscriberTraitWithSubscribedServiceAttributeOnMethodMissingReturnType()
294+
public function testServiceMethodsSubscriberTraitWithSubscribedServiceAttributeOnMethodMissingReturnType()
295295
{
296296
if (!class_exists(SubscribedService::class)) {
297297
$this->markTestSkipped('SubscribedService attribute not available.');
298298
}
299299

300300
$subscriber = new class() implements ServiceSubscriberInterface {
301-
use ServiceSubscriberTrait;
301+
use ServiceMethodsSubscriberTrait;
302302

303303
#[SubscribedService]
304304
public function method()
@@ -311,7 +311,7 @@ public function method()
311311
$subscriber::getSubscribedServices();
312312
}
313313

314-
public function testServiceSubscriberTraitWithUnionReturnType()
314+
public function testServiceMethodsSubscriberTraitWithUnionReturnType()
315315
{
316316
if (!class_exists(SubscribedService::class)) {
317317
$this->markTestSkipped('SubscribedService attribute not available.');
@@ -338,7 +338,7 @@ public function testServiceSubscriberTraitWithUnionReturnType()
338338
$this->assertEquals($expected, $container->getDefinition((string) $locator->getFactory()[0])->getArgument(0));
339339
}
340340

341-
public function testServiceSubscriberTraitWithIntersectionReturnType()
341+
public function testServiceMethodsSubscriberTraitWithIntersectionReturnType()
342342
{
343343
if (!class_exists(SubscribedService::class)) {
344344
$this->markTestSkipped('SubscribedService attribute not available.');

Tests/Fixtures/TestServiceSubscriberTrait.php renamed to Tests/Fixtures/TestServiceMethodsSubscriberTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Symfony\Contracts\Service\Attribute\SubscribedService;
66

7-
trait TestServiceSubscriberTrait
7+
trait TestServiceMethodsSubscriberTrait
88
{
99
protected function protectedFunction1(): SomeClass
1010
{

Tests/Fixtures/TestServiceSubscriberChild.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
namespace Symfony\Component\DependencyInjection\Tests\Fixtures;
44

55
use Symfony\Contracts\Service\Attribute\SubscribedService;
6-
use Symfony\Contracts\Service\ServiceSubscriberTrait;
6+
use Symfony\Contracts\Service\ServiceMethodsSubscriberTrait;
77

88
class TestServiceSubscriberChild extends TestServiceSubscriberParent
99
{
10-
use ServiceSubscriberTrait;
11-
use TestServiceSubscriberTrait;
10+
use ServiceMethodsSubscriberTrait;
11+
use TestServiceMethodsSubscriberTrait;
1212

1313
#[SubscribedService]
1414
private function testDefinition2(): ?TestDefinition2

Tests/Fixtures/TestServiceSubscriberIntersectionWithTrait.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
namespace Symfony\Component\DependencyInjection\Tests\Fixtures;
44

55
use Symfony\Contracts\Service\Attribute\SubscribedService;
6+
use Symfony\Contracts\Service\ServiceMethodsSubscriberTrait;
67
use Symfony\Contracts\Service\ServiceSubscriberInterface;
7-
use Symfony\Contracts\Service\ServiceSubscriberTrait;
88

99
class TestServiceSubscriberIntersectionWithTrait implements ServiceSubscriberInterface
1010
{
11-
use ServiceSubscriberTrait;
11+
use ServiceMethodsSubscriberTrait;
1212

1313
#[SubscribedService]
1414
private function method1(): TestDefinition1&TestDefinition2

Tests/Fixtures/TestServiceSubscriberParent.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
namespace Symfony\Component\DependencyInjection\Tests\Fixtures;
44

55
use Symfony\Contracts\Service\Attribute\SubscribedService;
6+
use Symfony\Contracts\Service\ServiceMethodsSubscriberTrait;
67
use Symfony\Contracts\Service\ServiceSubscriberInterface;
7-
use Symfony\Contracts\Service\ServiceSubscriberTrait;
88

99
class TestServiceSubscriberParent implements ServiceSubscriberInterface
1010
{
11-
use ServiceSubscriberTrait;
11+
use ServiceMethodsSubscriberTrait;
1212

1313
public function publicFunction1(): SomeClass
1414
{

Tests/Fixtures/TestServiceSubscriberUnionWithTrait.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
namespace Symfony\Component\DependencyInjection\Tests\Fixtures;
44

55
use Symfony\Contracts\Service\Attribute\SubscribedService;
6+
use Symfony\Contracts\Service\ServiceMethodsSubscriberTrait;
67
use Symfony\Contracts\Service\ServiceSubscriberInterface;
7-
use Symfony\Contracts\Service\ServiceSubscriberTrait;
88

99
class TestServiceSubscriberUnionWithTrait implements ServiceSubscriberInterface
1010
{
11-
use ServiceSubscriberTrait;
11+
use ServiceMethodsSubscriberTrait;
1212

1313
#[SubscribedService]
1414
private function method1(): TestDefinition1|TestDefinition2|null

0 commit comments

Comments
 (0)