MediaWiki REL1_34
ComposerPackageModifier.php
Go to the documentation of this file.
1<?php
2
3use Composer\Package\Link;
4use Composer\Package\Package;
5use Composer\Semver\Constraint\Constraint;
6
12
13 const MEDIAWIKI_PACKAGE_NAME = 'mediawiki/mediawiki';
14
15 protected $package;
17 protected $versionFetcher;
18
19 public function __construct( Package $package,
21 ) {
22 $this->package = $package;
23 $this->versionNormalizer = $versionNormalizer;
24 $this->versionFetcher = $versionFetcher;
25 }
26
27 public function setProvidesMediaWiki() {
28 $this->setLinkAsProvides( $this->newMediaWikiLink() );
29 }
30
31 private function setLinkAsProvides( Link $link ) {
32 $this->package->setProvides( [ $link ] );
33 }
34
35 private function newMediaWikiLink() {
36 $version = $this->getMediaWikiVersionConstraint();
37
38 $link = new Link(
39 '__root__',
40 self::MEDIAWIKI_PACKAGE_NAME,
41 $version,
42 'provides',
43 $version->getPrettyString()
44 );
45
46 return $link;
47 }
48
49 private function getMediaWikiVersionConstraint() {
50 $mvVersion = $this->versionFetcher->fetchVersion();
51 $mvVersion = $this->versionNormalizer->normalizeSuffix( $mvVersion );
52
53 $version = new Constraint(
54 '==',
55 $this->versionNormalizer->normalizeLevelCount( $mvVersion )
56 );
57 $version->setPrettyString( $mvVersion );
58
59 return $version;
60 }
61
62}
__construct(Package $package, ComposerVersionNormalizer $versionNormalizer, MediaWikiVersionFetcher $versionFetcher)
Provides access to MediaWiki's version without requiring MediaWiki (or anything else) being loaded fi...