InstalledVersions.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818
  1. <?php
  2. namespace Composer;
  3. use Composer\Semver\VersionParser;
  4. class InstalledVersions
  5. {
  6. private static $installed = array (
  7. 'root' =>
  8. array (
  9. 'pretty_version' => 'dev-master',
  10. 'version' => 'dev-master',
  11. 'aliases' =>
  12. array (
  13. ),
  14. 'reference' => '25b75b039e2ecaf9ecda4a8da079e7cbbb57e319',
  15. 'name' => 'topthink/think',
  16. ),
  17. 'versions' =>
  18. array (
  19. 'adbario/php-dot-notation' =>
  20. array (
  21. 'pretty_version' => '2.2.0',
  22. 'version' => '2.2.0.0',
  23. 'aliases' =>
  24. array (
  25. ),
  26. 'reference' => 'eee4fc81296531e6aafba4c2bbccfc5adab1676e',
  27. ),
  28. 'alibabacloud/client' =>
  29. array (
  30. 'pretty_version' => '1.5.29',
  31. 'version' => '1.5.29.0',
  32. 'aliases' =>
  33. array (
  34. ),
  35. 'reference' => '2d0137828ef5c44664dcb8cc90eac4f545dd3301',
  36. ),
  37. 'alibabacloud/tea' =>
  38. array (
  39. 'pretty_version' => '3.1.20',
  40. 'version' => '3.1.20.0',
  41. 'aliases' =>
  42. array (
  43. ),
  44. 'reference' => '03926337225a8c039d1512fd7a920b2dcfb3ff42',
  45. ),
  46. 'alibabacloud/tea-fileform' =>
  47. array (
  48. 'pretty_version' => '0.3.4',
  49. 'version' => '0.3.4.0',
  50. 'aliases' =>
  51. array (
  52. ),
  53. 'reference' => '4bf0c75a045c8115aa8cb1a394bd08d8bb833181',
  54. ),
  55. 'alipaysdk/easysdk' =>
  56. array (
  57. 'pretty_version' => '2.2.0',
  58. 'version' => '2.2.0.0',
  59. 'aliases' =>
  60. array (
  61. ),
  62. 'reference' => '7a1cfa83c7e140bded957498ea072c77611e6480',
  63. ),
  64. 'aliyuncs/oss-sdk-php' =>
  65. array (
  66. 'pretty_version' => 'v2.4.1',
  67. 'version' => '2.4.1.0',
  68. 'aliases' =>
  69. array (
  70. ),
  71. 'reference' => '492866331b7bafaac09506cf42f351b7e9e63766',
  72. ),
  73. 'clagiordano/weblibs-configmanager' =>
  74. array (
  75. 'pretty_version' => 'v1.1.0',
  76. 'version' => '1.1.0.0',
  77. 'aliases' =>
  78. array (
  79. ),
  80. 'reference' => 'ecf584f5b3a27929175ff0abdba52f0131bef795',
  81. ),
  82. 'danielstjules/stringy' =>
  83. array (
  84. 'pretty_version' => '3.1.0',
  85. 'version' => '3.1.0.0',
  86. 'aliases' =>
  87. array (
  88. ),
  89. 'reference' => 'df24ab62d2d8213bbbe88cc36fc35a4503b4bd7e',
  90. ),
  91. 'endroid/qr-code' =>
  92. array (
  93. 'pretty_version' => '1.9.3',
  94. 'version' => '1.9.3.0',
  95. 'aliases' =>
  96. array (
  97. ),
  98. 'reference' => 'c9644bec2a9cc9318e98d1437de3c628dcd1ef93',
  99. ),
  100. 'ezyang/htmlpurifier' =>
  101. array (
  102. 'pretty_version' => 'v4.13.0',
  103. 'version' => '4.13.0.0',
  104. 'aliases' =>
  105. array (
  106. ),
  107. 'reference' => '08e27c97e4c6ed02f37c5b2b20488046c8d90d75',
  108. ),
  109. 'guzzlehttp/guzzle' =>
  110. array (
  111. 'pretty_version' => '7.2.0',
  112. 'version' => '7.2.0.0',
  113. 'aliases' =>
  114. array (
  115. ),
  116. 'reference' => '0aa74dfb41ae110835923ef10a9d803a22d50e79',
  117. ),
  118. 'guzzlehttp/promises' =>
  119. array (
  120. 'pretty_version' => '1.4.0',
  121. 'version' => '1.4.0.0',
  122. 'aliases' =>
  123. array (
  124. ),
  125. 'reference' => '60d379c243457e073cff02bc323a2a86cb355631',
  126. ),
  127. 'guzzlehttp/psr7' =>
  128. array (
  129. 'pretty_version' => '1.7.0',
  130. 'version' => '1.7.0.0',
  131. 'aliases' =>
  132. array (
  133. ),
  134. 'reference' => '53330f47520498c0ae1f61f7e2c90f55690c06a3',
  135. ),
  136. 'lcobucci/jwt' =>
  137. array (
  138. 'pretty_version' => '3.4.5',
  139. 'version' => '3.4.5.0',
  140. 'aliases' =>
  141. array (
  142. ),
  143. 'reference' => '511629a54465e89a31d3d7e4cf0935feab8b14c1',
  144. ),
  145. 'league/flysystem' =>
  146. array (
  147. 'pretty_version' => '1.1.3',
  148. 'version' => '1.1.3.0',
  149. 'aliases' =>
  150. array (
  151. ),
  152. 'reference' => '9be3b16c877d477357c015cec057548cf9b2a14a',
  153. ),
  154. 'league/flysystem-cached-adapter' =>
  155. array (
  156. 'pretty_version' => '1.1.0',
  157. 'version' => '1.1.0.0',
  158. 'aliases' =>
  159. array (
  160. ),
  161. 'reference' => 'd1925efb2207ac4be3ad0c40b8277175f99ffaff',
  162. ),
  163. 'league/mime-type-detection' =>
  164. array (
  165. 'pretty_version' => '1.7.0',
  166. 'version' => '1.7.0.0',
  167. 'aliases' =>
  168. array (
  169. ),
  170. 'reference' => '3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3',
  171. ),
  172. 'liliuwei/thinkphp-jump' =>
  173. array (
  174. 'pretty_version' => 'v1.5',
  175. 'version' => '1.5.0.0',
  176. 'aliases' =>
  177. array (
  178. ),
  179. 'reference' => '481d41b922095f08230609919be5d19354c50540',
  180. ),
  181. 'maennchen/zipstream-php' =>
  182. array (
  183. 'pretty_version' => '2.1.0',
  184. 'version' => '2.1.0.0',
  185. 'aliases' =>
  186. array (
  187. ),
  188. 'reference' => 'c4c5803cc1f93df3d2448478ef79394a5981cc58',
  189. ),
  190. 'markbaker/complex' =>
  191. array (
  192. 'pretty_version' => '2.0.0',
  193. 'version' => '2.0.0.0',
  194. 'aliases' =>
  195. array (
  196. ),
  197. 'reference' => '9999f1432fae467bc93c53f357105b4c31bb994c',
  198. ),
  199. 'markbaker/matrix' =>
  200. array (
  201. 'pretty_version' => '2.1.2',
  202. 'version' => '2.1.2.0',
  203. 'aliases' =>
  204. array (
  205. ),
  206. 'reference' => '361c0f545c3172ee26c3d596a0aa03f0cef65e6a',
  207. ),
  208. 'monolog/monolog' =>
  209. array (
  210. 'pretty_version' => '2.3.5',
  211. 'version' => '2.3.5.0',
  212. 'aliases' =>
  213. array (
  214. ),
  215. 'reference' => 'fd4380d6fc37626e2f799f29d91195040137eba9',
  216. ),
  217. 'mtdowling/jmespath.php' =>
  218. array (
  219. 'pretty_version' => '2.6.0',
  220. 'version' => '2.6.0.0',
  221. 'aliases' =>
  222. array (
  223. ),
  224. 'reference' => '42dae2cbd13154083ca6d70099692fef8ca84bfb',
  225. ),
  226. 'myclabs/php-enum' =>
  227. array (
  228. 'pretty_version' => '1.7.7',
  229. 'version' => '1.7.7.0',
  230. 'aliases' =>
  231. array (
  232. ),
  233. 'reference' => 'd178027d1e679832db9f38248fcc7200647dc2b7',
  234. ),
  235. 'phpmailer/phpmailer' =>
  236. array (
  237. 'pretty_version' => 'v6.5.0',
  238. 'version' => '6.5.0.0',
  239. 'aliases' =>
  240. array (
  241. ),
  242. 'reference' => 'e38888a75c070304ca5514197d4847a59a5c853f',
  243. ),
  244. 'phpoffice/phpspreadsheet' =>
  245. array (
  246. 'pretty_version' => '1.16.0',
  247. 'version' => '1.16.0.0',
  248. 'aliases' =>
  249. array (
  250. ),
  251. 'reference' => '76d4323b85129d0c368149c831a07a3e258b2b50',
  252. ),
  253. 'pimple/pimple' =>
  254. array (
  255. 'pretty_version' => 'v3.3.1',
  256. 'version' => '3.3.1.0',
  257. 'aliases' =>
  258. array (
  259. ),
  260. 'reference' => '21e45061c3429b1e06233475cc0e1f6fc774d5b0',
  261. ),
  262. 'psr/cache' =>
  263. array (
  264. 'pretty_version' => '1.0.1',
  265. 'version' => '1.0.1.0',
  266. 'aliases' =>
  267. array (
  268. ),
  269. 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
  270. ),
  271. 'psr/cache-implementation' =>
  272. array (
  273. 'provided' =>
  274. array (
  275. 0 => '1.0|2.0',
  276. ),
  277. ),
  278. 'psr/container' =>
  279. array (
  280. 'pretty_version' => '1.0.0',
  281. 'version' => '1.0.0.0',
  282. 'aliases' =>
  283. array (
  284. ),
  285. 'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f',
  286. ),
  287. 'psr/http-client' =>
  288. array (
  289. 'pretty_version' => '1.0.1',
  290. 'version' => '1.0.1.0',
  291. 'aliases' =>
  292. array (
  293. ),
  294. 'reference' => '2dfb5f6c5eff0e91e20e913f8c5452ed95b86621',
  295. ),
  296. 'psr/http-client-implementation' =>
  297. array (
  298. 'provided' =>
  299. array (
  300. 0 => '1.0',
  301. ),
  302. ),
  303. 'psr/http-factory' =>
  304. array (
  305. 'pretty_version' => '1.0.1',
  306. 'version' => '1.0.1.0',
  307. 'aliases' =>
  308. array (
  309. ),
  310. 'reference' => '12ac7fcd07e5b077433f5f2bee95b3a771bf61be',
  311. ),
  312. 'psr/http-message' =>
  313. array (
  314. 'pretty_version' => '1.0.1',
  315. 'version' => '1.0.1.0',
  316. 'aliases' =>
  317. array (
  318. ),
  319. 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
  320. ),
  321. 'psr/http-message-implementation' =>
  322. array (
  323. 'provided' =>
  324. array (
  325. 0 => '1.0',
  326. ),
  327. ),
  328. 'psr/log' =>
  329. array (
  330. 'pretty_version' => '1.1.3',
  331. 'version' => '1.1.3.0',
  332. 'aliases' =>
  333. array (
  334. ),
  335. 'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
  336. ),
  337. 'psr/log-implementation' =>
  338. array (
  339. 'provided' =>
  340. array (
  341. 0 => '1.0.0 || 2.0.0 || 3.0.0',
  342. ),
  343. ),
  344. 'psr/simple-cache' =>
  345. array (
  346. 'pretty_version' => '1.0.1',
  347. 'version' => '1.0.1.0',
  348. 'aliases' =>
  349. array (
  350. ),
  351. 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
  352. ),
  353. 'psr/simple-cache-implementation' =>
  354. array (
  355. 'provided' =>
  356. array (
  357. 0 => '1.0',
  358. ),
  359. ),
  360. 'ralouphie/getallheaders' =>
  361. array (
  362. 'pretty_version' => '3.0.3',
  363. 'version' => '3.0.3.0',
  364. 'aliases' =>
  365. array (
  366. ),
  367. 'reference' => '120b605dfeb996808c31b6477290a714d356e822',
  368. ),
  369. 'songshenzong/support' =>
  370. array (
  371. 'pretty_version' => '2.0.5',
  372. 'version' => '2.0.5.0',
  373. 'aliases' =>
  374. array (
  375. ),
  376. 'reference' => '34973c04ffcf226e503f1c3a69d30ac49f7621f6',
  377. ),
  378. 'symfony/cache' =>
  379. array (
  380. 'pretty_version' => 'v4.4.33',
  381. 'version' => '4.4.33.0',
  382. 'aliases' =>
  383. array (
  384. ),
  385. 'reference' => '7342bf4f6f433cc1ee7fc6ec0a627951da5d92f5',
  386. ),
  387. 'symfony/cache-contracts' =>
  388. array (
  389. 'pretty_version' => 'v2.4.0',
  390. 'version' => '2.4.0.0',
  391. 'aliases' =>
  392. array (
  393. ),
  394. 'reference' => 'c0446463729b89dd4fa62e9aeecc80287323615d',
  395. ),
  396. 'symfony/cache-implementation' =>
  397. array (
  398. 'provided' =>
  399. array (
  400. 0 => '1.0|2.0',
  401. ),
  402. ),
  403. 'symfony/deprecation-contracts' =>
  404. array (
  405. 'pretty_version' => 'v2.4.0',
  406. 'version' => '2.4.0.0',
  407. 'aliases' =>
  408. array (
  409. ),
  410. 'reference' => '5f38c8804a9e97d23e0c8d63341088cd8a22d627',
  411. ),
  412. 'symfony/http-foundation' =>
  413. array (
  414. 'pretty_version' => 'v5.3.10',
  415. 'version' => '5.3.10.0',
  416. 'aliases' =>
  417. array (
  418. ),
  419. 'reference' => '9f34f02e8a5fdc7a56bafe011cea1ce97300e54c',
  420. ),
  421. 'symfony/options-resolver' =>
  422. array (
  423. 'pretty_version' => 'v3.4.47',
  424. 'version' => '3.4.47.0',
  425. 'aliases' =>
  426. array (
  427. ),
  428. 'reference' => 'c7efc97a47b2ebaabc19d5b6c6b50f5c37c92744',
  429. ),
  430. 'symfony/polyfill-mbstring' =>
  431. array (
  432. 'pretty_version' => 'v1.22.0',
  433. 'version' => '1.22.0.0',
  434. 'aliases' =>
  435. array (
  436. ),
  437. 'reference' => 'f377a3dd1fde44d37b9831d68dc8dea3ffd28e13',
  438. ),
  439. 'symfony/polyfill-php72' =>
  440. array (
  441. 'pretty_version' => 'v1.22.0',
  442. 'version' => '1.22.0.0',
  443. 'aliases' =>
  444. array (
  445. ),
  446. 'reference' => 'cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9',
  447. ),
  448. 'symfony/polyfill-php73' =>
  449. array (
  450. 'pretty_version' => 'v1.23.0',
  451. 'version' => '1.23.0.0',
  452. 'aliases' =>
  453. array (
  454. ),
  455. 'reference' => 'fba8933c384d6476ab14fb7b8526e5287ca7e010',
  456. ),
  457. 'symfony/polyfill-php80' =>
  458. array (
  459. 'pretty_version' => 'v1.22.0',
  460. 'version' => '1.22.0.0',
  461. 'aliases' =>
  462. array (
  463. ),
  464. 'reference' => 'dc3063ba22c2a1fd2f45ed856374d79114998f91',
  465. ),
  466. 'symfony/service-contracts' =>
  467. array (
  468. 'pretty_version' => 'v2.2.0',
  469. 'version' => '2.2.0.0',
  470. 'aliases' =>
  471. array (
  472. ),
  473. 'reference' => 'd15da7ba4957ffb8f1747218be9e1a121fd298a1',
  474. ),
  475. 'symfony/var-dumper' =>
  476. array (
  477. 'pretty_version' => 'v4.4.19',
  478. 'version' => '4.4.19.0',
  479. 'aliases' =>
  480. array (
  481. ),
  482. 'reference' => 'a1eab2f69906dc83c5ddba4632180260d0ab4f7f',
  483. ),
  484. 'symfony/var-exporter' =>
  485. array (
  486. 'pretty_version' => 'v5.3.8',
  487. 'version' => '5.3.8.0',
  488. 'aliases' =>
  489. array (
  490. ),
  491. 'reference' => 'a7604de14bcf472fe8e33f758e9e5b7bf07d3b91',
  492. ),
  493. 'topthink/framework' =>
  494. array (
  495. 'pretty_version' => 'v6.0.7',
  496. 'version' => '6.0.7.0',
  497. 'aliases' =>
  498. array (
  499. ),
  500. 'reference' => 'db8fe22520a9660dd5e4c87e304034ac49e39270',
  501. ),
  502. 'topthink/think' =>
  503. array (
  504. 'pretty_version' => 'dev-master',
  505. 'version' => 'dev-master',
  506. 'aliases' =>
  507. array (
  508. ),
  509. 'reference' => '25b75b039e2ecaf9ecda4a8da079e7cbbb57e319',
  510. ),
  511. 'topthink/think-captcha' =>
  512. array (
  513. 'pretty_version' => 'v3.0.3',
  514. 'version' => '3.0.3.0',
  515. 'aliases' =>
  516. array (
  517. ),
  518. 'reference' => '1eef3717c1bcf4f5bbe2d1a1c704011d330a8b55',
  519. ),
  520. 'topthink/think-helper' =>
  521. array (
  522. 'pretty_version' => 'v3.1.4',
  523. 'version' => '3.1.4.0',
  524. 'aliases' =>
  525. array (
  526. ),
  527. 'reference' => 'c28d37743bda4a0455286ca85b17b5791d626e10',
  528. ),
  529. 'topthink/think-image' =>
  530. array (
  531. 'pretty_version' => 'v1.0.7',
  532. 'version' => '1.0.7.0',
  533. 'aliases' =>
  534. array (
  535. ),
  536. 'reference' => '8586cf47f117481c6d415b20f7dedf62e79d5512',
  537. ),
  538. 'topthink/think-multi-app' =>
  539. array (
  540. 'pretty_version' => 'v1.0.14',
  541. 'version' => '1.0.14.0',
  542. 'aliases' =>
  543. array (
  544. ),
  545. 'reference' => 'ccaad7c2d33f42cb1cc2a78d6610aaec02cea4c3',
  546. ),
  547. 'topthink/think-orm' =>
  548. array (
  549. 'pretty_version' => 'v2.0.36',
  550. 'version' => '2.0.36.0',
  551. 'aliases' =>
  552. array (
  553. ),
  554. 'reference' => 'f48dc09050f25029d41a66bfc9c3c403e4f82024',
  555. ),
  556. 'topthink/think-template' =>
  557. array (
  558. 'pretty_version' => 'v2.0.8',
  559. 'version' => '2.0.8.0',
  560. 'aliases' =>
  561. array (
  562. ),
  563. 'reference' => 'abfc293f74f9ef5127b5c416310a01fe42e59368',
  564. ),
  565. 'topthink/think-trace' =>
  566. array (
  567. 'pretty_version' => 'v1.4',
  568. 'version' => '1.4.0.0',
  569. 'aliases' =>
  570. array (
  571. ),
  572. 'reference' => '9a9fa8f767b6c66c5a133ad21ca1bc96ad329444',
  573. ),
  574. 'topthink/think-view' =>
  575. array (
  576. 'pretty_version' => 'v1.0.14',
  577. 'version' => '1.0.14.0',
  578. 'aliases' =>
  579. array (
  580. ),
  581. 'reference' => 'edce0ae2c9551ab65f9e94a222604b0dead3576d',
  582. ),
  583. 'topthink/think-worker' =>
  584. array (
  585. 'pretty_version' => 'v3.0.5',
  586. 'version' => '3.0.5.0',
  587. 'aliases' =>
  588. array (
  589. ),
  590. 'reference' => 'dc0ac655a0a2efda073ec18e67668bc02d17cabe',
  591. ),
  592. 'workerman/gateway-worker' =>
  593. array (
  594. 'pretty_version' => 'v3.0.19',
  595. 'version' => '3.0.19.0',
  596. 'aliases' =>
  597. array (
  598. ),
  599. 'reference' => '720cb0f23c3ae5f0143b3457901e177dd3d54387',
  600. ),
  601. 'workerman/workerman' =>
  602. array (
  603. 'pretty_version' => 'v3.5.31',
  604. 'version' => '3.5.31.0',
  605. 'aliases' =>
  606. array (
  607. ),
  608. 'reference' => 'b73ddc45b3c7299f330923a2bde23ca6e974fd96',
  609. ),
  610. 'xin/container' =>
  611. array (
  612. 'pretty_version' => '2.0.1',
  613. 'version' => '2.0.1.0',
  614. 'aliases' =>
  615. array (
  616. ),
  617. 'reference' => '97bb67f87dd851545938a1f2fe0ffbd379e3ff81',
  618. ),
  619. 'xin/helper' =>
  620. array (
  621. 'pretty_version' => '1.0.0',
  622. 'version' => '1.0.0.0',
  623. 'aliases' =>
  624. array (
  625. ),
  626. 'reference' => '02a58132dae2aea2d1c0b8e66f55125969224747',
  627. ),
  628. 'xzncit/developer-tools' =>
  629. array (
  630. 'pretty_version' => '0.5.2',
  631. 'version' => '0.5.2.0',
  632. 'aliases' =>
  633. array (
  634. ),
  635. 'reference' => 'd96706bd640d0acaecbdfd4d1450649427b30af3',
  636. ),
  637. ),
  638. );
  639. public static function getInstalledPackages()
  640. {
  641. return array_keys(self::$installed['versions']);
  642. }
  643. public static function isInstalled($packageName)
  644. {
  645. return isset(self::$installed['versions'][$packageName]);
  646. }
  647. public static function satisfies(VersionParser $parser, $packageName, $constraint)
  648. {
  649. $constraint = $parser->parseConstraints($constraint);
  650. $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
  651. return $provided->matches($constraint);
  652. }
  653. public static function getVersionRanges($packageName)
  654. {
  655. if (!isset(self::$installed['versions'][$packageName])) {
  656. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  657. }
  658. $ranges = array();
  659. if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
  660. $ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
  661. }
  662. if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
  663. $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
  664. }
  665. if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
  666. $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
  667. }
  668. if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
  669. $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
  670. }
  671. return implode(' || ', $ranges);
  672. }
  673. public static function getVersion($packageName)
  674. {
  675. if (!isset(self::$installed['versions'][$packageName])) {
  676. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  677. }
  678. if (!isset(self::$installed['versions'][$packageName]['version'])) {
  679. return null;
  680. }
  681. return self::$installed['versions'][$packageName]['version'];
  682. }
  683. public static function getPrettyVersion($packageName)
  684. {
  685. if (!isset(self::$installed['versions'][$packageName])) {
  686. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  687. }
  688. if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
  689. return null;
  690. }
  691. return self::$installed['versions'][$packageName]['pretty_version'];
  692. }
  693. public static function getReference($packageName)
  694. {
  695. if (!isset(self::$installed['versions'][$packageName])) {
  696. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  697. }
  698. if (!isset(self::$installed['versions'][$packageName]['reference'])) {
  699. return null;
  700. }
  701. return self::$installed['versions'][$packageName]['reference'];
  702. }
  703. public static function getRootPackage()
  704. {
  705. return self::$installed['root'];
  706. }
  707. public static function getRawData()
  708. {
  709. return self::$installed;
  710. }
  711. public static function reload($data)
  712. {
  713. self::$installed = $data;
  714. }
  715. }