InstalledVersions.php 21 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016
  1. <?php
  2. namespace Composer;
  3. use Composer\Autoload\ClassLoader;
  4. use Composer\Semver\VersionParser;
  5. class InstalledVersions
  6. {
  7. private static $installed = array (
  8. 'root' =>
  9. array (
  10. 'pretty_version' => 'dev-master',
  11. 'version' => 'dev-master',
  12. 'aliases' =>
  13. array (
  14. ),
  15. 'reference' => '6faf79b211f4bdc6556a48cae7845318ad36f277',
  16. 'name' => 'topthink/think',
  17. ),
  18. 'versions' =>
  19. array (
  20. 'adbario/php-dot-notation' =>
  21. array (
  22. 'pretty_version' => '2.2.0',
  23. 'version' => '2.2.0.0',
  24. 'aliases' =>
  25. array (
  26. ),
  27. 'reference' => 'eee4fc81296531e6aafba4c2bbccfc5adab1676e',
  28. ),
  29. 'alibabacloud/client' =>
  30. array (
  31. 'pretty_version' => '1.5.30',
  32. 'version' => '1.5.30.0',
  33. 'aliases' =>
  34. array (
  35. ),
  36. 'reference' => '1f497bb79835b84094318a70b672eb88260f2682',
  37. ),
  38. 'alibabacloud/dysmsapi' =>
  39. array (
  40. 'pretty_version' => '1.8.958',
  41. 'version' => '1.8.958.0',
  42. 'aliases' =>
  43. array (
  44. ),
  45. 'reference' => '1715a5e4c10520116cf531ed20c287ae488b3489',
  46. ),
  47. 'alibabacloud/tea' =>
  48. array (
  49. 'pretty_version' => '3.1.21',
  50. 'version' => '3.1.21.0',
  51. 'aliases' =>
  52. array (
  53. ),
  54. 'reference' => '379faffe240ee97134cf3f796cb28059f9fb7fa9',
  55. ),
  56. 'alibabacloud/tea-fileform' =>
  57. array (
  58. 'pretty_version' => '0.3.4',
  59. 'version' => '0.3.4.0',
  60. 'aliases' =>
  61. array (
  62. ),
  63. 'reference' => '4bf0c75a045c8115aa8cb1a394bd08d8bb833181',
  64. ),
  65. 'alipaysdk/easysdk' =>
  66. array (
  67. 'pretty_version' => '2.2.0',
  68. 'version' => '2.2.0.0',
  69. 'aliases' =>
  70. array (
  71. ),
  72. 'reference' => '7a1cfa83c7e140bded957498ea072c77611e6480',
  73. ),
  74. 'aliyuncs/oss-sdk-php' =>
  75. array (
  76. 'pretty_version' => 'v2.3.0',
  77. 'version' => '2.3.0.0',
  78. 'aliases' =>
  79. array (
  80. ),
  81. 'reference' => 'e69f57916678458642ac9d2fd341ae78a56996c8',
  82. ),
  83. 'clagiordano/weblibs-configmanager' =>
  84. array (
  85. 'pretty_version' => 'v1.1.0',
  86. 'version' => '1.1.0.0',
  87. 'aliases' =>
  88. array (
  89. ),
  90. 'reference' => 'ecf584f5b3a27929175ff0abdba52f0131bef795',
  91. ),
  92. 'danielstjules/stringy' =>
  93. array (
  94. 'pretty_version' => '3.1.0',
  95. 'version' => '3.1.0.0',
  96. 'aliases' =>
  97. array (
  98. ),
  99. 'reference' => 'df24ab62d2d8213bbbe88cc36fc35a4503b4bd7e',
  100. ),
  101. 'dh2y/think-qrcode' =>
  102. array (
  103. 'pretty_version' => '2.0',
  104. 'version' => '2.0.0.0',
  105. 'aliases' =>
  106. array (
  107. ),
  108. 'reference' => '977d032afa27b1852f5fc5441fad2497f6db7ff5',
  109. ),
  110. 'doctrine/cache' =>
  111. array (
  112. 'pretty_version' => 'v1.4.4',
  113. 'version' => '1.4.4.0',
  114. 'aliases' =>
  115. array (
  116. ),
  117. 'reference' => '6433826dd02c9e5be8a127320dc13e7e6625d020',
  118. ),
  119. 'firebase/php-jwt' =>
  120. array (
  121. 'pretty_version' => 'v5.0.0',
  122. 'version' => '5.0.0.0',
  123. 'aliases' =>
  124. array (
  125. ),
  126. 'reference' => '9984a4d3a32ae7673d6971ea00bae9d0a1abba0e',
  127. ),
  128. 'guzzle/batch' =>
  129. array (
  130. 'replaced' =>
  131. array (
  132. 0 => 'v3.9.3',
  133. ),
  134. ),
  135. 'guzzle/cache' =>
  136. array (
  137. 'replaced' =>
  138. array (
  139. 0 => 'v3.9.3',
  140. ),
  141. ),
  142. 'guzzle/common' =>
  143. array (
  144. 'replaced' =>
  145. array (
  146. 0 => 'v3.9.3',
  147. ),
  148. ),
  149. 'guzzle/guzzle' =>
  150. array (
  151. 'pretty_version' => 'v3.9.3',
  152. 'version' => '3.9.3.0',
  153. 'aliases' =>
  154. array (
  155. ),
  156. 'reference' => '0645b70d953bc1c067bbc8d5bc53194706b628d9',
  157. ),
  158. 'guzzle/http' =>
  159. array (
  160. 'replaced' =>
  161. array (
  162. 0 => 'v3.9.3',
  163. ),
  164. ),
  165. 'guzzle/inflection' =>
  166. array (
  167. 'replaced' =>
  168. array (
  169. 0 => 'v3.9.3',
  170. ),
  171. ),
  172. 'guzzle/iterator' =>
  173. array (
  174. 'replaced' =>
  175. array (
  176. 0 => 'v3.9.3',
  177. ),
  178. ),
  179. 'guzzle/log' =>
  180. array (
  181. 'replaced' =>
  182. array (
  183. 0 => 'v3.9.3',
  184. ),
  185. ),
  186. 'guzzle/parser' =>
  187. array (
  188. 'replaced' =>
  189. array (
  190. 0 => 'v3.9.3',
  191. ),
  192. ),
  193. 'guzzle/plugin' =>
  194. array (
  195. 'replaced' =>
  196. array (
  197. 0 => 'v3.9.3',
  198. ),
  199. ),
  200. 'guzzle/plugin-async' =>
  201. array (
  202. 'replaced' =>
  203. array (
  204. 0 => 'v3.9.3',
  205. ),
  206. ),
  207. 'guzzle/plugin-backoff' =>
  208. array (
  209. 'replaced' =>
  210. array (
  211. 0 => 'v3.9.3',
  212. ),
  213. ),
  214. 'guzzle/plugin-cache' =>
  215. array (
  216. 'replaced' =>
  217. array (
  218. 0 => 'v3.9.3',
  219. ),
  220. ),
  221. 'guzzle/plugin-cookie' =>
  222. array (
  223. 'replaced' =>
  224. array (
  225. 0 => 'v3.9.3',
  226. ),
  227. ),
  228. 'guzzle/plugin-curlauth' =>
  229. array (
  230. 'replaced' =>
  231. array (
  232. 0 => 'v3.9.3',
  233. ),
  234. ),
  235. 'guzzle/plugin-error-response' =>
  236. array (
  237. 'replaced' =>
  238. array (
  239. 0 => 'v3.9.3',
  240. ),
  241. ),
  242. 'guzzle/plugin-history' =>
  243. array (
  244. 'replaced' =>
  245. array (
  246. 0 => 'v3.9.3',
  247. ),
  248. ),
  249. 'guzzle/plugin-log' =>
  250. array (
  251. 'replaced' =>
  252. array (
  253. 0 => 'v3.9.3',
  254. ),
  255. ),
  256. 'guzzle/plugin-md5' =>
  257. array (
  258. 'replaced' =>
  259. array (
  260. 0 => 'v3.9.3',
  261. ),
  262. ),
  263. 'guzzle/plugin-mock' =>
  264. array (
  265. 'replaced' =>
  266. array (
  267. 0 => 'v3.9.3',
  268. ),
  269. ),
  270. 'guzzle/plugin-oauth' =>
  271. array (
  272. 'replaced' =>
  273. array (
  274. 0 => 'v3.9.3',
  275. ),
  276. ),
  277. 'guzzle/service' =>
  278. array (
  279. 'replaced' =>
  280. array (
  281. 0 => 'v3.9.3',
  282. ),
  283. ),
  284. 'guzzle/stream' =>
  285. array (
  286. 'replaced' =>
  287. array (
  288. 0 => 'v3.9.3',
  289. ),
  290. ),
  291. 'guzzlehttp/guzzle' =>
  292. array (
  293. 'pretty_version' => '6.3.3',
  294. 'version' => '6.3.3.0',
  295. 'aliases' =>
  296. array (
  297. ),
  298. 'reference' => '407b0cb880ace85c9b63c5f9551db498cb2d50ba',
  299. ),
  300. 'guzzlehttp/promises' =>
  301. array (
  302. 'pretty_version' => 'v1.3.1',
  303. 'version' => '1.3.1.0',
  304. 'aliases' =>
  305. array (
  306. ),
  307. 'reference' => 'a59da6cf61d80060647ff4d3eb2c03a2bc694646',
  308. ),
  309. 'guzzlehttp/psr7' =>
  310. array (
  311. 'pretty_version' => '1.5.2',
  312. 'version' => '1.5.2.0',
  313. 'aliases' =>
  314. array (
  315. ),
  316. 'reference' => '9f83dded91781a01c63574e387eaa769be769115',
  317. ),
  318. 'league/flysystem' =>
  319. array (
  320. 'pretty_version' => '1.0.57',
  321. 'version' => '1.0.57.0',
  322. 'aliases' =>
  323. array (
  324. ),
  325. 'reference' => '0e9db7f0b96b9f12dcf6f65bc34b72b1a30ea55a',
  326. ),
  327. 'league/flysystem-cached-adapter' =>
  328. array (
  329. 'pretty_version' => '1.0.9',
  330. 'version' => '1.0.9.0',
  331. 'aliases' =>
  332. array (
  333. ),
  334. 'reference' => '08ef74e9be88100807a3b92cc9048a312bf01d6f',
  335. ),
  336. 'monolog/monolog' =>
  337. array (
  338. 'pretty_version' => '1.24.0',
  339. 'version' => '1.24.0.0',
  340. 'aliases' =>
  341. array (
  342. ),
  343. 'reference' => 'bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266',
  344. ),
  345. 'mtdowling/jmespath.php' =>
  346. array (
  347. 'pretty_version' => '2.5.0',
  348. 'version' => '2.5.0.0',
  349. 'aliases' =>
  350. array (
  351. ),
  352. 'reference' => '52168cb9472de06979613d365c7f1ab8798be895',
  353. ),
  354. 'nesbot/carbon' =>
  355. array (
  356. 'pretty_version' => '2.20.0',
  357. 'version' => '2.20.0.0',
  358. 'aliases' =>
  359. array (
  360. ),
  361. 'reference' => 'bc671b896c276795fad8426b0aa24e8ade0f2498',
  362. ),
  363. 'opis/closure' =>
  364. array (
  365. 'pretty_version' => '3.4.1',
  366. 'version' => '3.4.1.0',
  367. 'aliases' =>
  368. array (
  369. ),
  370. 'reference' => 'e79f851749c3caa836d7ccc01ede5828feb762c7',
  371. ),
  372. 'overtrue/socialite' =>
  373. array (
  374. 'pretty_version' => '1.3.0',
  375. 'version' => '1.3.0.0',
  376. 'aliases' =>
  377. array (
  378. ),
  379. 'reference' => 'fda55f0acef43a144799b1957a8f93d9f5deffce',
  380. ),
  381. 'overtrue/wechat' =>
  382. array (
  383. 'pretty_version' => '3.3.33',
  384. 'version' => '3.3.33.0',
  385. 'aliases' =>
  386. array (
  387. ),
  388. 'reference' => '78e5476df330754040d1c400d0bca640d5b77cb7',
  389. ),
  390. 'paragonie/random_compat' =>
  391. array (
  392. 'pretty_version' => 'v9.99.99',
  393. 'version' => '9.99.99.0',
  394. 'aliases' =>
  395. array (
  396. ),
  397. 'reference' => '84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95',
  398. ),
  399. 'phpoffice/phpexcel' =>
  400. array (
  401. 'pretty_version' => '1.8.2',
  402. 'version' => '1.8.2.0',
  403. 'aliases' =>
  404. array (
  405. ),
  406. 'reference' => '1441011fb7ecdd8cc689878f54f8b58a6805f870',
  407. ),
  408. 'pimple/pimple' =>
  409. array (
  410. 'pretty_version' => 'v3.2.3',
  411. 'version' => '3.2.3.0',
  412. 'aliases' =>
  413. array (
  414. ),
  415. 'reference' => '9e403941ef9d65d20cba7d54e29fe906db42cf32',
  416. ),
  417. 'psr/cache' =>
  418. array (
  419. 'pretty_version' => '1.0.1',
  420. 'version' => '1.0.1.0',
  421. 'aliases' =>
  422. array (
  423. ),
  424. 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
  425. ),
  426. 'psr/container' =>
  427. array (
  428. 'pretty_version' => '1.0.0',
  429. 'version' => '1.0.0.0',
  430. 'aliases' =>
  431. array (
  432. ),
  433. 'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f',
  434. ),
  435. 'psr/http-message' =>
  436. array (
  437. 'pretty_version' => '1.0.1',
  438. 'version' => '1.0.1.0',
  439. 'aliases' =>
  440. array (
  441. ),
  442. 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
  443. ),
  444. 'psr/http-message-implementation' =>
  445. array (
  446. 'provided' =>
  447. array (
  448. 0 => '1.0',
  449. ),
  450. ),
  451. 'psr/log' =>
  452. array (
  453. 'pretty_version' => '1.1.2',
  454. 'version' => '1.1.2.0',
  455. 'aliases' =>
  456. array (
  457. ),
  458. 'reference' => '446d54b4cb6bf489fc9d75f55843658e6f25d801',
  459. ),
  460. 'psr/log-implementation' =>
  461. array (
  462. 'provided' =>
  463. array (
  464. 0 => '1.0.0',
  465. ),
  466. ),
  467. 'psr/simple-cache' =>
  468. array (
  469. 'pretty_version' => '1.0.1',
  470. 'version' => '1.0.1.0',
  471. 'aliases' =>
  472. array (
  473. ),
  474. 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
  475. ),
  476. 'qcloud/cos-sdk-v5' =>
  477. array (
  478. 'pretty_version' => 'v1.3.3',
  479. 'version' => '1.3.3.0',
  480. 'aliases' =>
  481. array (
  482. ),
  483. 'reference' => 'cd1b9cefa04521eaf125a82eb53552d9a87aae4d',
  484. ),
  485. 'qiniu/php-sdk' =>
  486. array (
  487. 'pretty_version' => 'v7.2.9',
  488. 'version' => '7.2.9.0',
  489. 'aliases' =>
  490. array (
  491. ),
  492. 'reference' => 'afe7d8715d8a688b1d8d8cdf031240d2363dad90',
  493. ),
  494. 'ralouphie/getallheaders' =>
  495. array (
  496. 'pretty_version' => '2.0.5',
  497. 'version' => '2.0.5.0',
  498. 'aliases' =>
  499. array (
  500. ),
  501. 'reference' => '5601c8a83fbba7ef674a7369456d12f1e0d0eafa',
  502. ),
  503. 'songshenzong/support' =>
  504. array (
  505. 'pretty_version' => '2.0.5',
  506. 'version' => '2.0.5.0',
  507. 'aliases' =>
  508. array (
  509. ),
  510. 'reference' => '34973c04ffcf226e503f1c3a69d30ac49f7621f6',
  511. ),
  512. 'spatie/macroable' =>
  513. array (
  514. 'pretty_version' => '1.0.0',
  515. 'version' => '1.0.0.0',
  516. 'aliases' =>
  517. array (
  518. ),
  519. 'reference' => '74b0d189ce75142f1706aad834d5a428dfc7c3c3',
  520. ),
  521. 'symfony/event-dispatcher' =>
  522. array (
  523. 'pretty_version' => 'v2.8.50',
  524. 'version' => '2.8.50.0',
  525. 'aliases' =>
  526. array (
  527. ),
  528. 'reference' => 'a77e974a5fecb4398833b0709210e3d5e334ffb0',
  529. ),
  530. 'symfony/http-foundation' =>
  531. array (
  532. 'pretty_version' => 'v3.4.28',
  533. 'version' => '3.4.28.0',
  534. 'aliases' =>
  535. array (
  536. ),
  537. 'reference' => '677ae5e892b081e71a665bfa7dd90fe61800c00e',
  538. ),
  539. 'symfony/polyfill-mbstring' =>
  540. array (
  541. 'pretty_version' => 'v1.11.0',
  542. 'version' => '1.11.0.0',
  543. 'aliases' =>
  544. array (
  545. ),
  546. 'reference' => 'fe5e94c604826c35a32fa832f35bd036b6799609',
  547. ),
  548. 'symfony/polyfill-php70' =>
  549. array (
  550. 'pretty_version' => 'v1.11.0',
  551. 'version' => '1.11.0.0',
  552. 'aliases' =>
  553. array (
  554. ),
  555. 'reference' => 'bc4858fb611bda58719124ca079baff854149c89',
  556. ),
  557. 'symfony/polyfill-php72' =>
  558. array (
  559. 'pretty_version' => 'v1.11.0',
  560. 'version' => '1.11.0.0',
  561. 'aliases' =>
  562. array (
  563. ),
  564. 'reference' => 'ab50dcf166d5f577978419edd37aa2bb8eabce0c',
  565. ),
  566. 'symfony/process' =>
  567. array (
  568. 'pretty_version' => 'v4.3.2',
  569. 'version' => '4.3.2.0',
  570. 'aliases' =>
  571. array (
  572. ),
  573. 'reference' => '856d35814cf287480465bb7a6c413bb7f5f5e69c',
  574. ),
  575. 'symfony/psr-http-message-bridge' =>
  576. array (
  577. 'pretty_version' => 'v1.2.0',
  578. 'version' => '1.2.0.0',
  579. 'aliases' =>
  580. array (
  581. ),
  582. 'reference' => '9ab9d71f97d5c7d35a121a7fb69f74fee95cd0ad',
  583. ),
  584. 'symfony/translation' =>
  585. array (
  586. 'pretty_version' => 'v4.3.2',
  587. 'version' => '4.3.2.0',
  588. 'aliases' =>
  589. array (
  590. ),
  591. 'reference' => '934ab1d18545149e012aa898cf02e9f23790f7a0',
  592. ),
  593. 'symfony/translation-contracts' =>
  594. array (
  595. 'pretty_version' => 'v1.1.5',
  596. 'version' => '1.1.5.0',
  597. 'aliases' =>
  598. array (
  599. ),
  600. 'reference' => 'cb4b18ad7b92a26e83b65dde940fab78339e6f3c',
  601. ),
  602. 'symfony/translation-implementation' =>
  603. array (
  604. 'provided' =>
  605. array (
  606. 0 => '1.0',
  607. ),
  608. ),
  609. 'symfony/var-dumper' =>
  610. array (
  611. 'pretty_version' => 'v4.3.1',
  612. 'version' => '4.3.1.0',
  613. 'aliases' =>
  614. array (
  615. ),
  616. 'reference' => 'f974f448154928d2b5fb7c412bd23b81d063f34b',
  617. ),
  618. 'topthink/framework' =>
  619. array (
  620. 'pretty_version' => 'v6.0.0',
  621. 'version' => '6.0.0.0',
  622. 'aliases' =>
  623. array (
  624. ),
  625. 'reference' => '79c555aab0313d1a33ddcdb3c395f2c47f37f597',
  626. ),
  627. 'topthink/think' =>
  628. array (
  629. 'pretty_version' => 'dev-master',
  630. 'version' => 'dev-master',
  631. 'aliases' =>
  632. array (
  633. ),
  634. 'reference' => '6faf79b211f4bdc6556a48cae7845318ad36f277',
  635. ),
  636. 'topthink/think-captcha' =>
  637. array (
  638. 'pretty_version' => 'v3.0.1',
  639. 'version' => '3.0.1.0',
  640. 'aliases' =>
  641. array (
  642. ),
  643. 'reference' => '9fc0c627d773f6a54a8dd142ebf358f746557a48',
  644. ),
  645. 'topthink/think-factory' =>
  646. array (
  647. 'pretty_version' => 'v1.0.1',
  648. 'version' => '1.0.1.0',
  649. 'aliases' =>
  650. array (
  651. ),
  652. 'reference' => 'b8080a6472aae1cff47ceb8c30feec3c2835364b',
  653. ),
  654. 'topthink/think-helper' =>
  655. array (
  656. 'pretty_version' => 'v3.1.3',
  657. 'version' => '3.1.3.0',
  658. 'aliases' =>
  659. array (
  660. ),
  661. 'reference' => '4d85dfd3778623bbb1de3648f1dcd0c82f4439f4',
  662. ),
  663. 'topthink/think-image' =>
  664. array (
  665. 'pretty_version' => 'v1.0.7',
  666. 'version' => '1.0.7.0',
  667. 'aliases' =>
  668. array (
  669. ),
  670. 'reference' => '8586cf47f117481c6d415b20f7dedf62e79d5512',
  671. ),
  672. 'topthink/think-multi-app' =>
  673. array (
  674. 'pretty_version' => 'v1.0.11',
  675. 'version' => '1.0.11.0',
  676. 'aliases' =>
  677. array (
  678. ),
  679. 'reference' => '215f4a6bb88e53ad41b448c61957336eb55ce6f9',
  680. ),
  681. 'topthink/think-orm' =>
  682. array (
  683. 'pretty_version' => 'v2.0.27',
  684. 'version' => '2.0.27.0',
  685. 'aliases' =>
  686. array (
  687. ),
  688. 'reference' => '02affaaccade2cdd8bbb2d2f5d15e46113e6eb50',
  689. ),
  690. 'topthink/think-queue' =>
  691. array (
  692. 'pretty_version' => 'v3.0.2',
  693. 'version' => '3.0.2.0',
  694. 'aliases' =>
  695. array (
  696. ),
  697. 'reference' => 'c34b983abce9427fca7e30ac983b75041f436ad0',
  698. ),
  699. 'topthink/think-template' =>
  700. array (
  701. 'pretty_version' => 'v2.0.7',
  702. 'version' => '2.0.7.0',
  703. 'aliases' =>
  704. array (
  705. ),
  706. 'reference' => 'e98bdbb4a4c94b442f17dfceba81e0134d4fbd19',
  707. ),
  708. 'topthink/think-view' =>
  709. array (
  710. 'pretty_version' => 'v1.0.13',
  711. 'version' => '1.0.13.0',
  712. 'aliases' =>
  713. array (
  714. ),
  715. 'reference' => '90803b73f781db5d42619082c4597afc58b2d4c5',
  716. ),
  717. 'workerman/channel' =>
  718. array (
  719. 'pretty_version' => 'v1.0.5',
  720. 'version' => '1.0.5.0',
  721. 'aliases' =>
  722. array (
  723. ),
  724. 'reference' => '0836a9a413c6e8425ee36307d95e2e49cc380f50',
  725. ),
  726. 'workerman/workerman' =>
  727. array (
  728. 'pretty_version' => 'v3.5.19',
  729. 'version' => '3.5.19.0',
  730. 'aliases' =>
  731. array (
  732. ),
  733. 'reference' => '4e5c24073b431fd950287efbfb5cc9b4c0fc7367',
  734. ),
  735. 'xaboy/form-builder' =>
  736. array (
  737. 'pretty_version' => '1.2.10',
  738. 'version' => '1.2.10.0',
  739. 'aliases' =>
  740. array (
  741. ),
  742. 'reference' => '198c5f066499eef8b005f5d504fcb6120fa3ac04',
  743. ),
  744. 'xin/container' =>
  745. array (
  746. 'pretty_version' => '2.0.1',
  747. 'version' => '2.0.1.0',
  748. 'aliases' =>
  749. array (
  750. ),
  751. 'reference' => '97bb67f87dd851545938a1f2fe0ffbd379e3ff81',
  752. ),
  753. 'xin/helper' =>
  754. array (
  755. 'pretty_version' => '1.0.0',
  756. 'version' => '1.0.0.0',
  757. 'aliases' =>
  758. array (
  759. ),
  760. 'reference' => '02a58132dae2aea2d1c0b8e66f55125969224747',
  761. ),
  762. ),
  763. );
  764. private static $canGetVendors;
  765. private static $installedByVendor = array();
  766. public static function getInstalledPackages()
  767. {
  768. $packages = array();
  769. foreach (self::getInstalled() as $installed) {
  770. $packages[] = array_keys($installed['versions']);
  771. }
  772. if (1 === \count($packages)) {
  773. return $packages[0];
  774. }
  775. return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
  776. }
  777. public static function isInstalled($packageName)
  778. {
  779. foreach (self::getInstalled() as $installed) {
  780. if (isset($installed['versions'][$packageName])) {
  781. return true;
  782. }
  783. }
  784. return false;
  785. }
  786. public static function satisfies(VersionParser $parser, $packageName, $constraint)
  787. {
  788. $constraint = $parser->parseConstraints($constraint);
  789. $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
  790. return $provided->matches($constraint);
  791. }
  792. public static function getVersionRanges($packageName)
  793. {
  794. foreach (self::getInstalled() as $installed) {
  795. if (!isset($installed['versions'][$packageName])) {
  796. continue;
  797. }
  798. $ranges = array();
  799. if (isset($installed['versions'][$packageName]['pretty_version'])) {
  800. $ranges[] = $installed['versions'][$packageName]['pretty_version'];
  801. }
  802. if (array_key_exists('aliases', $installed['versions'][$packageName])) {
  803. $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
  804. }
  805. if (array_key_exists('replaced', $installed['versions'][$packageName])) {
  806. $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
  807. }
  808. if (array_key_exists('provided', $installed['versions'][$packageName])) {
  809. $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
  810. }
  811. return implode(' || ', $ranges);
  812. }
  813. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  814. }
  815. public static function getVersion($packageName)
  816. {
  817. foreach (self::getInstalled() as $installed) {
  818. if (!isset($installed['versions'][$packageName])) {
  819. continue;
  820. }
  821. if (!isset($installed['versions'][$packageName]['version'])) {
  822. return null;
  823. }
  824. return $installed['versions'][$packageName]['version'];
  825. }
  826. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  827. }
  828. public static function getPrettyVersion($packageName)
  829. {
  830. foreach (self::getInstalled() as $installed) {
  831. if (!isset($installed['versions'][$packageName])) {
  832. continue;
  833. }
  834. if (!isset($installed['versions'][$packageName]['pretty_version'])) {
  835. return null;
  836. }
  837. return $installed['versions'][$packageName]['pretty_version'];
  838. }
  839. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  840. }
  841. public static function getReference($packageName)
  842. {
  843. foreach (self::getInstalled() as $installed) {
  844. if (!isset($installed['versions'][$packageName])) {
  845. continue;
  846. }
  847. if (!isset($installed['versions'][$packageName]['reference'])) {
  848. return null;
  849. }
  850. return $installed['versions'][$packageName]['reference'];
  851. }
  852. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  853. }
  854. public static function getRootPackage()
  855. {
  856. $installed = self::getInstalled();
  857. return $installed[0]['root'];
  858. }
  859. public static function getRawData()
  860. {
  861. return self::$installed;
  862. }
  863. public static function reload($data)
  864. {
  865. self::$installed = $data;
  866. self::$installedByVendor = array();
  867. }
  868. private static function getInstalled()
  869. {
  870. if (null === self::$canGetVendors) {
  871. self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
  872. }
  873. $installed = array();
  874. if (self::$canGetVendors) {
  875. foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
  876. if (isset(self::$installedByVendor[$vendorDir])) {
  877. $installed[] = self::$installedByVendor[$vendorDir];
  878. } elseif (is_file($vendorDir.'/composer/installed.php')) {
  879. $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
  880. }
  881. }
  882. }
  883. $installed[] = self::$installed;
  884. return $installed;
  885. }
  886. }