agdobrynin / di-container

PSR-11 compatible lightweight dependency injection container for PHP with automatic dependency bundling
MIT License
1 stars 0 forks source link

Циклический вызов при разрешении зависимостей #53

Closed agdobrynin closed 6 days ago

agdobrynin commented 6 days ago

class RequiredClass
{
    public function __construct(public MainClass $main){}
}

class MainClass
{
    public function __construct(public RequiredClass $class){}
}

$result = (new \Kaspi\DiContainer\DiContainerFactory())->make()->get(MainClass::class);

результат: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 262144 bytes) in /app/vendor/kaspi/di-container/src/DiContainer/DiContainer.php on line 133

agdobrynin commented 6 days ago

Простые зависимости тоже

        (new DiContainerFactory())->make(
            [
                'inject1' => '@inject2',
                'inject2' => '@inject3',
                'inject3' => '@inject1',
            ]
        )->get('inject1');