I'm trying to build a dependency injection container which could auto-wire in dependencies using type hints. The problem arises when dependencies have their own dependencies. In other words I want my dependency container to be able to handle unlimited nested dependencies.
For example auto wiring this class would be easy:
class Bar
{
public function __construct(Foobar $foobar)
{
$this->foobar = $foobar;
}
}
class foo
{
public function __construct(Bar $bar)
{
$this->bar = $bar;
}
}
Now if bar also has a dependency i have to somehow inject foobar to bar and only then bar to foo.
class foobar
{
}
class Bar
{
public function __construct(Foobar $foobar)
{
$this->foobar = $foobar;
}
}
class foo
{
public function __construct(Bar $bar)
{
$this->bar = $bar;
}
}