/** * Merge provided virtual packages into a RootPackage * * @param RootPackage $root */ protected function mergeProvides(RootPackage $root) { $provides = $this->package->getProvides(); if (!empty($provides)) { $root->setProvides(array_merge($root->getProvides(), $provides)); } }
/** * Inject the swiftMailer version into the Contao package. * * @param string $contaoRoot The Contao root dir. * * @param CompletePackage $package The package being processed. * * @return void */ protected function injectSwiftMailer($contaoRoot, CompletePackage $package) { $provides = $package->getProvides(); $versionParser = new VersionParser(); // detect provided Swift Mailer version switch ($this->getContaoVersion()) { case '2.11': $file = $contaoRoot . '/plugins/swiftmailer/VERSION'; break; case '3.0': $file = $contaoRoot . '/system/vendor/swiftmailer/VERSION'; break; case '3.1': case '3.2': $file = $contaoRoot . '/system/modules/core/vendor/swiftmailer/VERSION'; break; default: $file = false; } if ($file && is_file($file)) { $prettySwiftVersion = file_get_contents($file); $prettySwiftVersion = substr($prettySwiftVersion, 6); $prettySwiftVersion = trim($prettySwiftVersion); $swiftVersion = $versionParser->normalize($prettySwiftVersion); $swiftConstraint = $this->createConstraint('==', $swiftVersion); $swiftConstraint->setPrettyString($swiftVersion); $swiftLink = new Link('contao/core', 'swiftmailer/swiftmailer', $swiftConstraint, 'provides', $swiftVersion); $provides['swiftmailer/swiftmailer'] = $swiftLink; } $package->setProvides($provides); }