/** * @param array $config * @return \Phalcon\Di\FactoryDefault\Cli */ public static function createCliFrom(array $config) : \Phalcon\Di\FactoryDefault\Cli { $di = new \Phalcon\Di\FactoryDefault\Cli(); $di->set('config', function () use($config) { return new Config($config); }); $di->setShared('dispatcher', function () use($config) { return Dispatcher::createCliFrom($config['dispatcher']); }); foreach ($config['services'] ?? [] as $service) { /** @var InjectableInterface $service */ $service::injectTo($di); } return $di; }