8000 [DependencyInjection] unable to make lazy service from readonly class · Issue #53843 · symfony/symfony · GitHub
[go: up one dir, main page]

Skip to content
[DependencyInjection] unable to make lazy service from readonly class #53843
Closed
@kor3k

Description

@kor3k

Symfony version(s) affected

6.4.3

Description

marking any readonly class as a lazy service results in an error.

the bug seems not on symfony side, but on
https://github.com/FriendsOfPHP/proxy-manager-lts
side, as it does not count for readonly classes while creating proxies.
(#53843 (comment))

How to reproduce

  1. create readonly class
<?php

namespace App;

readonly class TestService
{
    public function foo(): string
    {
        return 'bar';
    }
}
  1. mark it as lazy
services:
  App\TestService:
    lazy: true
  1. inject it anywhere, e.g. in controller
<?php

namespace App\Controller;

use App\TestService;
use Symfony\Component\Routing\Attribute\Route;

class TestController
{
    #[Route(path: '/test')
    public function __invoke(TestService $service): Response
    {
        return new Response($service->foo());
    }
}
  1. result is error
Compile Error: Non-readonly class ContainerBh60GB2\TestServiceGhost93bb697 cannot extend readonly class App\TestService

Possible Solution

No response

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0