MediaWiki
REL1_24
|
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, 00020 ComposerVersionNormalizer $versionNormalizer, MediaWikiVersionFetcher $versionFetcher 00021 ) { 00022 $this->package = $package; 00023 $this->versionNormalizer = $versionNormalizer; 00024 $this->versionFetcher = $versionFetcher; 00025 } 00026 00027 public function setProvidesMediaWiki() { 00028 $this->setLinkAsProvides( $this->newMediaWikiLink() ); 00029 } 00030 00031 private function setLinkAsProvides( Link $link ) { 00032 $this->package->setProvides( array( $link ) ); 00033 } 00034 00035 private function newMediaWikiLink() { 00036 $version = $this->getMediaWikiVersionConstraint(); 00037 00038 $link = new Link( 00039 '__root__', 00040 self::MEDIAWIKI_PACKAGE_NAME, 00041 $version, 00042 'provides', 00043 $version->getPrettyString() 00044 ); 00045 00046 return $link; 00047 } 00048 00049 private function getMediaWikiVersionConstraint() { 00050 $mvVersion = $this->versionFetcher->fetchVersion(); 00051 $mvVersion = $this->versionNormalizer->normalizeSuffix( $mvVersion ); 00052 00053 $version = new VersionConstraint( 00054 '==', 00055 $this->versionNormalizer->normalizeLevelCount( $mvVersion ) 00056 ); 00057 $version->setPrettyString( $mvVersion ); 00058 00059 return $version; 00060 } 00061 00062 }