/** * @return null */ public function __invoke() { $services = $this->configuration->get('services', []); $table = []; foreach ($services as $providerClass) { /** @var ServiceProvider $provider */ $provider = new $providerClass(); $provides = $provider->provide(); if (is_callable($provides)) { try { $provides = $this->serviceManager->get(is_array($provider->alias()) ? $provider->alias()[0] : $provider->alias()); $provides = 'Factory => ' . get_class($provides); } catch (\Exception $e) { $provides = 'Factory => (ERROR. Could not load by "Class")'; } } $table[] = ['Class' => implode(',', is_array($provider->alias()) ? $provider->alias() : [$provider->alias()]), 'Provides' => $provides, 'Defined by' => $providerClass]; } $this->climate->out(''); $this->climate->yellowTable($table); $this->climate->out(''); }