is_array($definition) && array_keys($definition) === [0, 1] - это по сути любой callable в виде массива, то есть первая проверка is_callable то же самое
ты задаёшь $def=[SomeService::class, 'someMethod'] и когда придёт очередь это вызвать, будет примерно такое: container->get($def[0])->{$def[1]}() только через Injector
точно, вижу. Я полюбому перепишу, чтоб было явно видно для чего это, чтоб когда будет какая-то X версия с PHP минимум 8, сразу было явно, что надо убрать
А может убрать этот формат вообще? И сделать что-то типо ClassName::action или Classname@action как в многих других роутерах? Тогда typehint array можно будет вообще убрать в PHP 8