| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016 |
- <?php
- namespace Composer;
- use Composer\Autoload\ClassLoader;
- use Composer\Semver\VersionParser;
- class InstalledVersions
- {
- private static $installed = array (
- 'root' =>
- array (
- 'pretty_version' => 'dev-master',
- 'version' => 'dev-master',
- 'aliases' =>
- array (
- ),
- 'reference' => '6faf79b211f4bdc6556a48cae7845318ad36f277',
- 'name' => 'topthink/think',
- ),
- 'versions' =>
- array (
- 'adbario/php-dot-notation' =>
- array (
- 'pretty_version' => '2.2.0',
- 'version' => '2.2.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'eee4fc81296531e6aafba4c2bbccfc5adab1676e',
- ),
- 'alibabacloud/client' =>
- array (
- 'pretty_version' => '1.5.30',
- 'version' => '1.5.30.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '1f497bb79835b84094318a70b672eb88260f2682',
- ),
- 'alibabacloud/dysmsapi' =>
- array (
- 'pretty_version' => '1.8.958',
- 'version' => '1.8.958.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '1715a5e4c10520116cf531ed20c287ae488b3489',
- ),
- 'alibabacloud/tea' =>
- array (
- 'pretty_version' => '3.1.21',
- 'version' => '3.1.21.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '379faffe240ee97134cf3f796cb28059f9fb7fa9',
- ),
- 'alibabacloud/tea-fileform' =>
- array (
- 'pretty_version' => '0.3.4',
- 'version' => '0.3.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '4bf0c75a045c8115aa8cb1a394bd08d8bb833181',
- ),
- 'alipaysdk/easysdk' =>
- array (
- 'pretty_version' => '2.2.0',
- 'version' => '2.2.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '7a1cfa83c7e140bded957498ea072c77611e6480',
- ),
- 'aliyuncs/oss-sdk-php' =>
- array (
- 'pretty_version' => 'v2.3.0',
- 'version' => '2.3.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'e69f57916678458642ac9d2fd341ae78a56996c8',
- ),
- 'clagiordano/weblibs-configmanager' =>
- array (
- 'pretty_version' => 'v1.1.0',
- 'version' => '1.1.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'ecf584f5b3a27929175ff0abdba52f0131bef795',
- ),
- 'danielstjules/stringy' =>
- array (
- 'pretty_version' => '3.1.0',
- 'version' => '3.1.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'df24ab62d2d8213bbbe88cc36fc35a4503b4bd7e',
- ),
- 'dh2y/think-qrcode' =>
- array (
- 'pretty_version' => '2.0',
- 'version' => '2.0.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '977d032afa27b1852f5fc5441fad2497f6db7ff5',
- ),
- 'doctrine/cache' =>
- array (
- 'pretty_version' => 'v1.4.4',
- 'version' => '1.4.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '6433826dd02c9e5be8a127320dc13e7e6625d020',
- ),
- 'firebase/php-jwt' =>
- array (
- 'pretty_version' => 'v5.0.0',
- 'version' => '5.0.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '9984a4d3a32ae7673d6971ea00bae9d0a1abba0e',
- ),
- 'guzzle/batch' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/cache' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/common' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/guzzle' =>
- array (
- 'pretty_version' => 'v3.9.3',
- 'version' => '3.9.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '0645b70d953bc1c067bbc8d5bc53194706b628d9',
- ),
- 'guzzle/http' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/inflection' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/iterator' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/log' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/parser' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin-async' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin-backoff' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin-cache' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin-cookie' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin-curlauth' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin-error-response' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin-history' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin-log' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin-md5' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin-mock' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/plugin-oauth' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/service' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzle/stream' =>
- array (
- 'replaced' =>
- array (
- 0 => 'v3.9.3',
- ),
- ),
- 'guzzlehttp/guzzle' =>
- array (
- 'pretty_version' => '6.3.3',
- 'version' => '6.3.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '407b0cb880ace85c9b63c5f9551db498cb2d50ba',
- ),
- 'guzzlehttp/promises' =>
- array (
- 'pretty_version' => 'v1.3.1',
- 'version' => '1.3.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'a59da6cf61d80060647ff4d3eb2c03a2bc694646',
- ),
- 'guzzlehttp/psr7' =>
- array (
- 'pretty_version' => '1.5.2',
- 'version' => '1.5.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '9f83dded91781a01c63574e387eaa769be769115',
- ),
- 'league/flysystem' =>
- array (
- 'pretty_version' => '1.0.57',
- 'version' => '1.0.57.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '0e9db7f0b96b9f12dcf6f65bc34b72b1a30ea55a',
- ),
- 'league/flysystem-cached-adapter' =>
- array (
- 'pretty_version' => '1.0.9',
- 'version' => '1.0.9.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '08ef74e9be88100807a3b92cc9048a312bf01d6f',
- ),
- 'monolog/monolog' =>
- array (
- 'pretty_version' => '1.24.0',
- 'version' => '1.24.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266',
- ),
- 'mtdowling/jmespath.php' =>
- array (
- 'pretty_version' => '2.5.0',
- 'version' => '2.5.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '52168cb9472de06979613d365c7f1ab8798be895',
- ),
- 'nesbot/carbon' =>
- array (
- 'pretty_version' => '2.20.0',
- 'version' => '2.20.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'bc671b896c276795fad8426b0aa24e8ade0f2498',
- ),
- 'opis/closure' =>
- array (
- 'pretty_version' => '3.4.1',
- 'version' => '3.4.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'e79f851749c3caa836d7ccc01ede5828feb762c7',
- ),
- 'overtrue/socialite' =>
- array (
- 'pretty_version' => '1.3.0',
- 'version' => '1.3.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'fda55f0acef43a144799b1957a8f93d9f5deffce',
- ),
- 'overtrue/wechat' =>
- array (
- 'pretty_version' => '3.3.33',
- 'version' => '3.3.33.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '78e5476df330754040d1c400d0bca640d5b77cb7',
- ),
- 'paragonie/random_compat' =>
- array (
- 'pretty_version' => 'v9.99.99',
- 'version' => '9.99.99.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95',
- ),
- 'phpoffice/phpexcel' =>
- array (
- 'pretty_version' => '1.8.2',
- 'version' => '1.8.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '1441011fb7ecdd8cc689878f54f8b58a6805f870',
- ),
- 'pimple/pimple' =>
- array (
- 'pretty_version' => 'v3.2.3',
- 'version' => '3.2.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '9e403941ef9d65d20cba7d54e29fe906db42cf32',
- ),
- 'psr/cache' =>
- array (
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
- ),
- 'psr/container' =>
- array (
- 'pretty_version' => '1.0.0',
- 'version' => '1.0.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f',
- ),
- 'psr/http-message' =>
- array (
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
- ),
- 'psr/http-message-implementation' =>
- array (
- 'provided' =>
- array (
- 0 => '1.0',
- ),
- ),
- 'psr/log' =>
- array (
- 'pretty_version' => '1.1.2',
- 'version' => '1.1.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '446d54b4cb6bf489fc9d75f55843658e6f25d801',
- ),
- 'psr/log-implementation' =>
- array (
- 'provided' =>
- array (
- 0 => '1.0.0',
- ),
- ),
- 'psr/simple-cache' =>
- array (
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
- ),
- 'qcloud/cos-sdk-v5' =>
- array (
- 'pretty_version' => 'v1.3.3',
- 'version' => '1.3.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'cd1b9cefa04521eaf125a82eb53552d9a87aae4d',
- ),
- 'qiniu/php-sdk' =>
- array (
- 'pretty_version' => 'v7.2.9',
- 'version' => '7.2.9.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'afe7d8715d8a688b1d8d8cdf031240d2363dad90',
- ),
- 'ralouphie/getallheaders' =>
- array (
- 'pretty_version' => '2.0.5',
- 'version' => '2.0.5.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '5601c8a83fbba7ef674a7369456d12f1e0d0eafa',
- ),
- 'songshenzong/support' =>
- array (
- 'pretty_version' => '2.0.5',
- 'version' => '2.0.5.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '34973c04ffcf226e503f1c3a69d30ac49f7621f6',
- ),
- 'spatie/macroable' =>
- array (
- 'pretty_version' => '1.0.0',
- 'version' => '1.0.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '74b0d189ce75142f1706aad834d5a428dfc7c3c3',
- ),
- 'symfony/event-dispatcher' =>
- array (
- 'pretty_version' => 'v2.8.50',
- 'version' => '2.8.50.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'a77e974a5fecb4398833b0709210e3d5e334ffb0',
- ),
- 'symfony/http-foundation' =>
- array (
- 'pretty_version' => 'v3.4.28',
- 'version' => '3.4.28.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '677ae5e892b081e71a665bfa7dd90fe61800c00e',
- ),
- 'symfony/polyfill-mbstring' =>
- array (
- 'pretty_version' => 'v1.11.0',
- 'version' => '1.11.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'fe5e94c604826c35a32fa832f35bd036b6799609',
- ),
- 'symfony/polyfill-php70' =>
- array (
- 'pretty_version' => 'v1.11.0',
- 'version' => '1.11.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'bc4858fb611bda58719124ca079baff854149c89',
- ),
- 'symfony/polyfill-php72' =>
- array (
- 'pretty_version' => 'v1.11.0',
- 'version' => '1.11.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'ab50dcf166d5f577978419edd37aa2bb8eabce0c',
- ),
- 'symfony/process' =>
- array (
- 'pretty_version' => 'v4.3.2',
- 'version' => '4.3.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '856d35814cf287480465bb7a6c413bb7f5f5e69c',
- ),
- 'symfony/psr-http-message-bridge' =>
- array (
- 'pretty_version' => 'v1.2.0',
- 'version' => '1.2.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '9ab9d71f97d5c7d35a121a7fb69f74fee95cd0ad',
- ),
- 'symfony/translation' =>
- array (
- 'pretty_version' => 'v4.3.2',
- 'version' => '4.3.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '934ab1d18545149e012aa898cf02e9f23790f7a0',
- ),
- 'symfony/translation-contracts' =>
- array (
- 'pretty_version' => 'v1.1.5',
- 'version' => '1.1.5.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'cb4b18ad7b92a26e83b65dde940fab78339e6f3c',
- ),
- 'symfony/translation-implementation' =>
- array (
- 'provided' =>
- array (
- 0 => '1.0',
- ),
- ),
- 'symfony/var-dumper' =>
- array (
- 'pretty_version' => 'v4.3.1',
- 'version' => '4.3.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'f974f448154928d2b5fb7c412bd23b81d063f34b',
- ),
- 'topthink/framework' =>
- array (
- 'pretty_version' => 'v6.0.0',
- 'version' => '6.0.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '79c555aab0313d1a33ddcdb3c395f2c47f37f597',
- ),
- 'topthink/think' =>
- array (
- 'pretty_version' => 'dev-master',
- 'version' => 'dev-master',
- 'aliases' =>
- array (
- ),
- 'reference' => '6faf79b211f4bdc6556a48cae7845318ad36f277',
- ),
- 'topthink/think-captcha' =>
- array (
- 'pretty_version' => 'v3.0.1',
- 'version' => '3.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '9fc0c627d773f6a54a8dd142ebf358f746557a48',
- ),
- 'topthink/think-factory' =>
- array (
- 'pretty_version' => 'v1.0.1',
- 'version' => '1.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'b8080a6472aae1cff47ceb8c30feec3c2835364b',
- ),
- 'topthink/think-helper' =>
- array (
- 'pretty_version' => 'v3.1.3',
- 'version' => '3.1.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '4d85dfd3778623bbb1de3648f1dcd0c82f4439f4',
- ),
- 'topthink/think-image' =>
- array (
- 'pretty_version' => 'v1.0.7',
- 'version' => '1.0.7.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '8586cf47f117481c6d415b20f7dedf62e79d5512',
- ),
- 'topthink/think-multi-app' =>
- array (
- 'pretty_version' => 'v1.0.11',
- 'version' => '1.0.11.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '215f4a6bb88e53ad41b448c61957336eb55ce6f9',
- ),
- 'topthink/think-orm' =>
- array (
- 'pretty_version' => 'v2.0.27',
- 'version' => '2.0.27.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '02affaaccade2cdd8bbb2d2f5d15e46113e6eb50',
- ),
- 'topthink/think-queue' =>
- array (
- 'pretty_version' => 'v3.0.2',
- 'version' => '3.0.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'c34b983abce9427fca7e30ac983b75041f436ad0',
- ),
- 'topthink/think-template' =>
- array (
- 'pretty_version' => 'v2.0.7',
- 'version' => '2.0.7.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'e98bdbb4a4c94b442f17dfceba81e0134d4fbd19',
- ),
- 'topthink/think-view' =>
- array (
- 'pretty_version' => 'v1.0.13',
- 'version' => '1.0.13.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '90803b73f781db5d42619082c4597afc58b2d4c5',
- ),
- 'workerman/channel' =>
- array (
- 'pretty_version' => 'v1.0.5',
- 'version' => '1.0.5.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '0836a9a413c6e8425ee36307d95e2e49cc380f50',
- ),
- 'workerman/workerman' =>
- array (
- 'pretty_version' => 'v3.5.19',
- 'version' => '3.5.19.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '4e5c24073b431fd950287efbfb5cc9b4c0fc7367',
- ),
- 'xaboy/form-builder' =>
- array (
- 'pretty_version' => '1.2.10',
- 'version' => '1.2.10.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '198c5f066499eef8b005f5d504fcb6120fa3ac04',
- ),
- 'xin/container' =>
- array (
- 'pretty_version' => '2.0.1',
- 'version' => '2.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '97bb67f87dd851545938a1f2fe0ffbd379e3ff81',
- ),
- 'xin/helper' =>
- array (
- 'pretty_version' => '1.0.0',
- 'version' => '1.0.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '02a58132dae2aea2d1c0b8e66f55125969224747',
- ),
- ),
- );
- private static $canGetVendors;
- private static $installedByVendor = array();
- public static function getInstalledPackages()
- {
- $packages = array();
- foreach (self::getInstalled() as $installed) {
- $packages[] = array_keys($installed['versions']);
- }
- if (1 === \count($packages)) {
- return $packages[0];
- }
- return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
- }
- public static function isInstalled($packageName)
- {
- foreach (self::getInstalled() as $installed) {
- if (isset($installed['versions'][$packageName])) {
- return true;
- }
- }
- return false;
- }
- public static function satisfies(VersionParser $parser, $packageName, $constraint)
- {
- $constraint = $parser->parseConstraints($constraint);
- $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
- return $provided->matches($constraint);
- }
- public static function getVersionRanges($packageName)
- {
- foreach (self::getInstalled() as $installed) {
- if (!isset($installed['versions'][$packageName])) {
- continue;
- }
- $ranges = array();
- if (isset($installed['versions'][$packageName]['pretty_version'])) {
- $ranges[] = $installed['versions'][$packageName]['pretty_version'];
- }
- if (array_key_exists('aliases', $installed['versions'][$packageName])) {
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
- }
- if (array_key_exists('replaced', $installed['versions'][$packageName])) {
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
- }
- if (array_key_exists('provided', $installed['versions'][$packageName])) {
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
- }
- return implode(' || ', $ranges);
- }
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
- }
- public static function getVersion($packageName)
- {
- foreach (self::getInstalled() as $installed) {
- if (!isset($installed['versions'][$packageName])) {
- continue;
- }
- if (!isset($installed['versions'][$packageName]['version'])) {
- return null;
- }
- return $installed['versions'][$packageName]['version'];
- }
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
- }
- public static function getPrettyVersion($packageName)
- {
- foreach (self::getInstalled() as $installed) {
- if (!isset($installed['versions'][$packageName])) {
- continue;
- }
- if (!isset($installed['versions'][$packageName]['pretty_version'])) {
- return null;
- }
- return $installed['versions'][$packageName]['pretty_version'];
- }
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
- }
- public static function getReference($packageName)
- {
- foreach (self::getInstalled() as $installed) {
- if (!isset($installed['versions'][$packageName])) {
- continue;
- }
- if (!isset($installed['versions'][$packageName]['reference'])) {
- return null;
- }
- return $installed['versions'][$packageName]['reference'];
- }
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
- }
- public static function getRootPackage()
- {
- $installed = self::getInstalled();
- return $installed[0]['root'];
- }
- public static function getRawData()
- {
- return self::$installed;
- }
- public static function reload($data)
- {
- self::$installed = $data;
- self::$installedByVendor = array();
- }
- private static function getInstalled()
- {
- if (null === self::$canGetVendors) {
- self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
- }
- $installed = array();
- if (self::$canGetVendors) {
- foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
- if (isset(self::$installedByVendor[$vendorDir])) {
- $installed[] = self::$installedByVendor[$vendorDir];
- } elseif (is_file($vendorDir.'/composer/installed.php')) {
- $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
- }
- }
- }
- $installed[] = self::$installed;
- return $installed;
- }
- }
|