/** * Read the template and XML and mark services as being in use if they are * allowed in the template and enabled in the XML. */ private function markUsedServicesFromXML(SimpleXMLElement $xml, $template_id, ServiceManager $service_manager = null, ProjectManager $project_manager = null) { $template = $project_manager->getProject($template_id); $services_by_name = array(); foreach ($service_manager->getListOfAllowedServicesForProject($template) as $service) { $services_by_name[$service->getShortName()] = $service; } foreach ($xml->services->children() as $service) { if (!$service instanceof SimpleXMLElement) { continue; } if ($service->getName() !== "service") { continue; } $attrs = $service->attributes(); $name = (string) $attrs['shortname']; $enabled = $attrs['enabled'] == 'true' || $attrs['enabled'] == '1'; if (isset($services_by_name[$name])) { $service_id = $services_by_name[$name]->getId(); $this->data_services[$service_id] = array('is_used' => $enabled); } } }