public function getInfo() { $info = $this->object->getInfo(); $collections = $this->collectChildModels(); $provides = []; $references = []; $boundIps = []; foreach ($collections['service']->getAll() as $serviceObj) { if ($serviceObj instanceof Service) { $service = $serviceObj; $provides[] = $service->descriptor; } else { $service = Service::get($serviceObj->service_id); $provider = Registry::getObject($service->object_id); $serviceDescription = $service->descriptor; //\d(get_class($serviceObj->dataObject->object));exit; if ($serviceObj->dataObject->object instanceof ServiceBinding) { if (!empty($serviceObj->dataObject->object->binding['ip'])) { $boundIps[] = $serviceObj->dataObject->object->binding['ip']; } if (!empty($serviceObj->dataObject->object->binding['hostname'])) { $serviceDescription .= ', ' . $serviceObj->dataObject->object->binding['hostname']; } } $references[] = $provider->descriptor . ' (' . $serviceDescription . ')'; } } if (!empty($references)) { $info['Connected Services'] = implode('; ', array_unique($references)); } if (!empty($provides)) { $info['Provides Services'] = implode('; ', array_unique($provides)); } if (!empty($boundIps)) { $info['IP(s)'] = implode('; ', array_unique($boundIps)); } return $info; }
/** * @return \yii\db\ActiveQuery */ public function getService() { return Service::get($this->service_id); }