Упс, прошу пардона за ожидание. Навалилась рутина(((
Но вот выбрал время наконец то. Сейчас займемся.
Вообще конечно странная задача, я понимаю, что она заточена на твой контейнер. Навскидку она решается несложно, даже теми средствами, которые есть в моем контейнере. Я уже про другие не говорю. Завести в контейнер зкземпляр контейнера, немого покумекать с инициализацией и все должно получиться. Не так элегантно, как у тебя, но вполне рабоче.
Но мы не ищем легких путей. Я тут немного допилил свою свистоперделку, мне идея понравилась. Хотя она и не нова, но как то не обращал внимание. ВСе на пользу пошло, чем просто так время тратить.
Так что спасибо за наводку, ну и сейчас выложу решение. Карту могу прямо сейчас показать:
$injectionsMap = [
'Container' => true,
'ActionSay' => \Examples\ActionSay::class,
'ActionBus' => [
\Examples\ActionBus::class,
'storage' => \SplObjectStorage::class,
],
'ActionFactory' => [
\Examples\ActionFactory::class,
'container' => 'Container'
],
'Application' => [
\Examples\Application::class,
'actionFactory' => 'ActionFactory',
'actionBus' => 'ActionBus',
],
];
$container = (new \ABCDIC\Container)->setMaps($injectionsMap);