protected function ProjectVersionClient::parseXml in Acquia Content Hub 8.2
Parses XML from D.O and get latest versions of security covered releases.
Parameters
string $xml_data: XML Data.
string $drupal_version: Drupal major version installed.
Return value
string[] Array of versions of security covered releases for a given project.
1 call to ProjectVersionClient::parseXml()
- ProjectVersionClient::getReleaseData in src/
Client/ ProjectVersionClient.php - Helper method to get latest release versions for a given d.o project.
File
- src/
Client/ ProjectVersionClient.php, line 111
Class
- ProjectVersionClient
- Project version client to get latest releases for a project from D.O.
Namespace
Drupal\acquia_contenthub\ClientCode
protected function parseXml(string $xml_data, string $drupal_version = '') : array {
$versions = [];
try {
$xml = new \SimpleXMLElement($xml_data);
} catch (\Exception $e) {
return [];
}
if (!isset($xml->short_name) || !isset($xml->releases)) {
return [];
}
// Break out the loop after the first valid security release.
foreach ($xml->releases
->children() as $release) {
$version = (string) $release->version;
$major_version = $version[0];
$security_covered = $this
->isSecurityCoveredRelease($release);
if (!$security_covered) {
continue;
}
if ($this
->isLatestVersion($drupal_version, $major_version)) {
$versions['latest'] = $version;
return $versions;
}
if (!isset($versions['also_available']) && $drupal_version === '8' && $major_version === '9') {
$versions['also_available'] = $version;
}
}
return $versions;
}