3 use Composer\Package\Link
;
4 use Composer\Package\LinkConstraint\VersionConstraint
;
5 use Composer\Package\Package
;
9 * @author Jeroen De Dauw < jeroendedauw@gmail.com >
11 class ComposerPackageModifier
{
13 const MEDIAWIKI_PACKAGE_NAME
= 'mediawiki/mediawiki';
16 protected $versionNormalizer;
17 protected $versionFetcher;
19 public function __construct( Package
$package, ComposerVersionNormalizer
$versionNormalizer, MediaWikiVersionFetcher
$versionFetcher ) {
20 $this->package
= $package;
21 $this->versionNormalizer
= $versionNormalizer;
22 $this->versionFetcher
= $versionFetcher;
25 public function setProvidesMediaWiki() {
26 $this->setLinkAsProvides( $this->newMediaWikiLink() );
29 private function setLinkAsProvides( Link
$link ) {
30 $this->package
->setProvides( array( $link ) );
33 private function newMediaWikiLink() {
34 $version = $this->getMediaWikiVersionConstraint();
38 self
::MEDIAWIKI_PACKAGE_NAME
,
41 $version->getPrettyString()
47 private function getMediaWikiVersionConstraint() {
48 $mvVersion = $this->versionFetcher
->fetchVersion();
49 $mvVersion = $this->versionNormalizer
->normalizeSuffix( $mvVersion );
51 $version = new VersionConstraint( '==', $this->versionNormalizer
->normalizeLevelCount( $mvVersion ) );
52 $version->setPrettyString( $mvVersion );