This module is used by Elephox to provide a dependency injection container. It also has mechanisms to resolve arguments for functions and callbacks.
<?phpuseElephox\DI\ServiceCollectionOld;
$container = newServiceCollectionOld();
$container->addSingleton(stdClass::class, stdClass::class, fn () => newstdClass());
$foo = function (stdClass$object) {
return$object;
}
$instance = $container->resolver()->call($foo);
// $instance is an instance of stdClass// multiple calls to $container->resolver()->callback($foo) will return the same instance, since it was added as a singleton