コード例 #1
0
 /**
  * @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('');
 }