Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

FixServiceSubscriberTrait andServiceMethodsSubscriberTrait for nullable services#60265

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Conversation

StevenRenaux
Copy link
Contributor

@StevenRenauxStevenRenaux commentedApr 24, 2025
edited
Loading

QA
Branch?7.3
Bug fix?yes
New feature?no
Deprecations?no
LicenseMIT

Used in a bundle context.

If you use the following example, you will get an exception:
ServiceNotFoundException: The service "twig" in the container provided to "App\Service\Dependency" has a dependency on a non-existent service "Twig\Environment".

Thenullable argument of theSubscribedService attribute is ignored.

// src/Service/TwigAware.phpnamespaceApp\Service;useTwig\Environment;useSymfony\Contracts\Service\Attribute\SubscribedService;trait TwigAware{   #[SubscribedService('twig', nullable:true)]privatefunctiontwig():Environment    {if (!$this->container->has('twig') ) {thrownew \LogicException(\sprintf('Twig is required to use "%s" method. Try to run "composer require symfony/twig-bundle".',__METHOD__));        }return$environment;    }}// src/Service/MyService.phpnamespaceApp\Service;useSymfony\Contracts\Service\ServiceSubscriberInterface;useSymfony\Contracts\Service\ServiceSubscriberTrait;class MyServiceimplements ServiceSubscriberInterface{use ServiceSubscriberTrait, TwigAware;publicfunctiondoWithTwig():void    {// $this->twig() ...    }}

@StevenRenauxStevenRenauxforce-pushed thefix/Fix-nullable-property-for-SubscribedService-attribute branch from78e644c toac3ac74CompareApril 25, 2025 07:06
fabpot added a commit that referenced this pull requestApr 30, 2025
…ice (StevenRenaux)This PR was merged into the 6.4 branch.Discussion----------[Contracts] Fix `ServiceSubscriberTrait` for nullable service| Q             | A| ------------- | ---| Branch?       | 6.4| Bug fix?      | yes| New feature?  | no| Deprecations? | no| License       | MITUsed in a bundle context.If you use the following example, you will get an exception: `ServiceNotFoundException: The service "twig" in the container provided to "App\Service\Dependency" has a dependency on a non-existent service "Twig\Environment".`The `nullable` argument of the `SubscribedService` attribute is ignored.```php// src/Service/TwigAware.phpnamespace App\Service;use Twig\Environment;use Symfony\Contracts\Service\Attribute\SubscribedService;trait TwigAware{   #[SubscribedService('twig', nullable: true)]    private function twig(): Environment    {         if (!$this->container->has('twig') ) {            throw new \LogicException(\sprintf('Twig is required to use "%s" method. Try to run "composer require symfony/twig-bundle".', __METHOD__));        }        return $environment;    }}// src/Service/MyService.phpnamespace App\Service;use Symfony\Contracts\Service\ServiceSubscriberInterface;use Symfony\Contracts\Service\ServiceSubscriberTrait;class MyService implements ServiceSubscriberInterface{    use ServiceSubscriberTrait, TwigAware;    public function doWithTwig(): void    {        // $this->twig() ...    }}```Related to#60265Commits-------95b0f9b Fix ServiceMethodsSubscriberTrait for nullable service
fabpot added a commit that referenced this pull requestApr 30, 2025
…le service (StevenRenaux)This PR was merged into the 7.2 branch.Discussion----------[Contracts] Fix `ServiceMethodsSubscriberTrait` for nullable service| Q             | A| ------------- | ---| Branch?       | 7.2| Bug fix?      | yes| New feature?  | no| Deprecations? | no| License       | MITUsed in a bundle context.If you use the following example, you will get an exception: `ServiceNotFoundException: The service "twig" in the container provided to "App\Service\Dependency" has a dependency on a non-existent service "Twig\Environment".`The `nullable` argument of the `SubscribedService` attribute is ignored.```php// src/Service/TwigAware.phpnamespace App\Service;use Twig\Environment;use Symfony\Contracts\Service\Attribute\SubscribedService;trait TwigAware{   #[SubscribedService('twig', nullable: true)]    private function twig(): Environment    {         if (!$this->container->has('twig') ) {            throw new \LogicException(\sprintf('Twig is required to use "%s" method. Try to run "composer require symfony/twig-bundle".', __METHOD__));        }        return $environment;    }}// src/Service/MyService.phpnamespace App\Service;use Symfony\Contracts\Service\ServiceSubscriberInterface;use Symfony\Contracts\Service\ServiceSubscriberTrait;class MyService implements ServiceSubscriberInterface{    use ServiceSubscriberTrait, TwigAware;    public function doWithTwig(): void    {        // $this->twig() ...    }}```Related to#60265Commits-------e67db9a Fix ServiceMethodsSubscriberTrait for nullable service
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@Jean-BeruJean-BeruJean-Beru approved these changes

@Neirda24Neirda24Awaiting requested review from Neirda24

Assignees
No one assigned
Projects
None yet
Milestone
7.3
Development

Successfully merging this pull request may close these issues.

4 participants
@StevenRenaux@Jean-Beru@Neirda24@carsonbot

[8]ページ先頭

©2009-2025 Movatter.jp