Skip to content

[GhostProxy] error cannot assign by reference to overloaded object #51048

@vtsykun

Description

@vtsykun

Symfony version(s) affected

6.3.1

Description

This error occurs if the proxy is initialized from trait. See STR below
Selection_1641

How to reproduce

Create classes

    App\B1Class:
        arguments: ['test1']
        calls:
            - [setProp2, ['test2']]
        lazy: true
trait B1Trait
{
    protected $prop2;

    protected function getProp2()
    {
        return $this->prop2;
    }

    public function setProp2($prop2)
    {
        $this->prop2 = $prop2;
    }
}

class A1Class {
    private $prop1;
    public function __construct($prop1)
    {
        $this->prop1 = $prop1;
    }
}

class B1Class extends A1Class
{
    use B1Trait;
    protected $prop1;

    public function __construct($prop1)
    {
        parent::__construct($prop1);
        $this->prop1 = $prop1;
    }

    public function test()
    {
        $this->getProp2();

        return $this->prop1;
    }
}

And call service B1Class->test()

Possible Solution

No response

Additional Context

Error:
Cannot assign by reference to overloaded object

  at vendor/symfony/var-exporter/Internal/Hydrator.php:165
  at Packeton\Util\A1Class->Symfony\Component\VarExporter\Internal\{closure}()
     (vendor/symfony/var-exporter/Hydrator.php:72)
  at Symfony\Component\VarExporter\Hydrator::hydrate()
     (vendor/symfony/var-exporter/Internal/LazyObjectState.php:94)
  at Symfony\Component\VarExporter\Internal\LazyObjectState->initialize()
     (vendor/symfony/var-exporter/LazyGhostTrait.php:176)
  at ContainerWf1jvVR\B1ClassGhostD578c3f->__get()
     (src/Util/B1Class.php:11)
  at Packeton\Util\B1Class->getProp2()
     (src/Util/B1Class.php:41)
  at Packeton\Util\B1Class->test()
     (src/Controller/UserController.php:70)
  at Packeton\Controller\UserController->showAction()
     (vendor/symfony/http-kernel/HttpKernel.php:166)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
     (vendor/symfony/http-kernel/HttpKernel.php:74)
  at Symfony\Component\HttpKernel\HttpKernel->handle()
     (vendor/symfony/http-kernel/Kernel.php:197)
  at Symfony\Component\HttpKernel\Kernel->handle()
     (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:29)
  at require_once('/var/www/packeton5/vendor/autoload_runtime.php')
     (public/index.php:5)   

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