function ManifestDocumentMapper::mapRequirements
1 call to ManifestDocumentMapper::mapRequirements()
- ManifestDocumentMapper::map in vendor/
phar-io/ manifest/ src/ ManifestDocumentMapper.php
File
-
vendor/
phar-io/ manifest/ src/ ManifestDocumentMapper.php, line 80
Class
Namespace
PharIo\ManifestCode
private function mapRequirements(RequiresElement $requires) : RequirementCollection {
$collection = new RequirementCollection();
$phpElement = $requires->getPHPElement();
$parser = new VersionConstraintParser();
try {
$versionConstraint = $parser->parse($phpElement->getVersion());
} catch (VersionException $e) {
throw new ManifestDocumentMapperException(sprintf('Unsupported version constraint - %s', $e->getMessage()), (int) $e->getCode(), $e);
}
$collection->add(new PhpVersionRequirement($versionConstraint));
if (!$phpElement->hasExtElements()) {
return $collection;
}
foreach ($phpElement->getExtElements() as $extElement) {
$collection->add(new PhpExtensionRequirement($extElement->getName()));
}
return $collection;
}