function ManifestSerializer::addRequirements
1 call to ManifestSerializer::addRequirements()
- ManifestSerializer::serializeToString in vendor/
phar-io/ manifest/ src/ ManifestSerializer.php
File
-
vendor/
phar-io/ manifest/ src/ ManifestSerializer.php, line 120
Class
- ManifestSerializer
- @psalm-suppress MissingConstructor
Namespace
PharIo\ManifestCode
private function addRequirements(RequirementCollection $requirementCollection) : void {
$phpRequirement = new AnyVersionConstraint();
$extensions = [];
foreach ($requirementCollection as $requirement) {
if ($requirement instanceof PhpVersionRequirement) {
$phpRequirement = $requirement->getVersionConstraint();
continue;
}
if ($requirement instanceof PhpExtensionRequirement) {
$extensions[] = $requirement->asString();
}
}
$this->xmlWriter
->startElement('requires');
$this->xmlWriter
->startElement('php');
$this->xmlWriter
->writeAttribute('version', $phpRequirement->asString());
foreach ($extensions as $extension) {
$this->xmlWriter
->startElement('ext');
$this->xmlWriter
->writeAttribute('name', $extension);
$this->xmlWriter
->endElement();
}
$this->xmlWriter
->endElement();
$this->xmlWriter
->endElement();
}