MediaWiki
REL1_23
|
00001 <?php 00002 00003 use Composer\Package\Link; 00004 use Composer\Package\LinkConstraint\VersionConstraint; 00005 use Composer\Package\Package; 00006 00011 class ComposerPackageModifier { 00012 00013 const MEDIAWIKI_PACKAGE_NAME = 'mediawiki/mediawiki'; 00014 00015 protected $package; 00016 protected $versionNormalizer; 00017 protected $versionFetcher; 00018 00019 public function __construct( Package $package, ComposerVersionNormalizer $versionNormalizer, MediaWikiVersionFetcher $versionFetcher ) { 00020 $this->package = $package; 00021 $this->versionNormalizer = $versionNormalizer; 00022 $this->versionFetcher = $versionFetcher; 00023 } 00024 00025 public function setProvidesMediaWiki() { 00026 $this->setLinkAsProvides( $this->newMediaWikiLink() ); 00027 } 00028 00029 private function setLinkAsProvides( Link $link ) { 00030 $this->package->setProvides( array( $link ) ); 00031 } 00032 00033 private function newMediaWikiLink() { 00034 $version = $this->getMediaWikiVersionConstraint(); 00035 00036 $link = new Link( 00037 '__root__', 00038 self::MEDIAWIKI_PACKAGE_NAME, 00039 $version, 00040 'provides', 00041 $version->getPrettyString() 00042 ); 00043 00044 return $link; 00045 } 00046 00047 private function getMediaWikiVersionConstraint() { 00048 $mvVersion = $this->versionFetcher->fetchVersion(); 00049 $mvVersion = $this->versionNormalizer->normalizeSuffix( $mvVersion ); 00050 00051 $version = new VersionConstraint( '==', $this->versionNormalizer->normalizeLevelCount( $mvVersion ) ); 00052 $version->setPrettyString( $mvVersion ); 00053 00054 return $version; 00055 } 00056 00057 }