InstalledVersions.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080
  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-develop',
  11. 'version' => 'dev-develop',
  12. 'aliases' =>
  13. array (
  14. ),
  15. 'reference' => 'c80e03bd378ffbedb65ab5e8b2a6602ecbf0d367',
  16. 'name' => 'zoujingli/thinkadmin',
  17. ),
  18. 'versions' =>
  19. array (
  20. 'adbario/php-dot-notation' =>
  21. array (
  22. 'pretty_version' => '2.5.0',
  23. 'version' => '2.5.0.0',
  24. 'aliases' =>
  25. array (
  26. ),
  27. 'reference' => '081e2cca50c84bfeeea2e3ef9b2c8d206d80ccae',
  28. ),
  29. 'alchemy/binary-driver' =>
  30. array (
  31. 'pretty_version' => 'v5.2.0',
  32. 'version' => '5.2.0.0',
  33. 'aliases' =>
  34. array (
  35. ),
  36. 'reference' => 'e0615cdff315e6b4b05ada67906df6262a020d22',
  37. ),
  38. 'alibabacloud/client' =>
  39. array (
  40. 'pretty_version' => '1.5.32',
  41. 'version' => '1.5.32.0',
  42. 'aliases' =>
  43. array (
  44. ),
  45. 'reference' => '5bc6f6d660797dcee2c3aef29700ab41ee764f4d',
  46. ),
  47. 'alibabacloud/cloudauth' =>
  48. array (
  49. 'pretty_version' => '1.8.958',
  50. 'version' => '1.8.958.0',
  51. 'aliases' =>
  52. array (
  53. ),
  54. 'reference' => '9e60abeb7b227da9d817714334247f61ba1aa3fe',
  55. ),
  56. 'alibabacloud/cloudauth-20190307' =>
  57. array (
  58. 'pretty_version' => '2.0.3',
  59. 'version' => '2.0.3.0',
  60. 'aliases' =>
  61. array (
  62. ),
  63. 'reference' => '8507596ac64ddd478aed7db7dc845f32abf80839',
  64. ),
  65. 'alibabacloud/credentials' =>
  66. array (
  67. 'pretty_version' => '1.1.4',
  68. 'version' => '1.1.4.0',
  69. 'aliases' =>
  70. array (
  71. ),
  72. 'reference' => 'e79d4151ad8924c0cf79d4fe0ec151b8d7663a25',
  73. ),
  74. 'alibabacloud/darabonba-openapi' =>
  75. array (
  76. 'pretty_version' => '0.2.9',
  77. 'version' => '0.2.9.0',
  78. 'aliases' =>
  79. array (
  80. ),
  81. 'reference' => '4cdfc36615f345786d668dfbaf68d9a301b6dbe2',
  82. ),
  83. 'alibabacloud/endpoint-util' =>
  84. array (
  85. 'pretty_version' => '0.1.1',
  86. 'version' => '0.1.1.0',
  87. 'aliases' =>
  88. array (
  89. ),
  90. 'reference' => 'f3fe88a25d8df4faa3b0ae14ff202a9cc094e6c5',
  91. ),
  92. 'alibabacloud/gateway-spi' =>
  93. array (
  94. 'pretty_version' => '1.0.0',
  95. 'version' => '1.0.0.0',
  96. 'aliases' =>
  97. array (
  98. ),
  99. 'reference' => '7440f77750c329d8ab252db1d1d967314ccd1fcb',
  100. ),
  101. 'alibabacloud/openapi-util' =>
  102. array (
  103. 'pretty_version' => '0.1.13',
  104. 'version' => '0.1.13.0',
  105. 'aliases' =>
  106. array (
  107. ),
  108. 'reference' => '870e59984f05e104aa303c85b8214e339ba0a0ac',
  109. ),
  110. 'alibabacloud/openplatform-20191219' =>
  111. array (
  112. 'pretty_version' => '1.0.3',
  113. 'version' => '1.0.3.0',
  114. 'aliases' =>
  115. array (
  116. ),
  117. 'reference' => '8b3ee6ed5c388d71c27377b304fb5a6e5bd17fe4',
  118. ),
  119. 'alibabacloud/tea' =>
  120. array (
  121. 'pretty_version' => '3.2.0',
  122. 'version' => '3.2.0.0',
  123. 'aliases' =>
  124. array (
  125. ),
  126. 'reference' => 'f2bfe50b810f598e1a48e85ee94b7164049d5184',
  127. ),
  128. 'alibabacloud/tea-fileform' =>
  129. array (
  130. 'pretty_version' => '0.3.4',
  131. 'version' => '0.3.4.0',
  132. 'aliases' =>
  133. array (
  134. ),
  135. 'reference' => '4bf0c75a045c8115aa8cb1a394bd08d8bb833181',
  136. ),
  137. 'alibabacloud/tea-oss-sdk' =>
  138. array (
  139. 'pretty_version' => '0.3.5',
  140. 'version' => '0.3.5.0',
  141. 'aliases' =>
  142. array (
  143. ),
  144. 'reference' => '7f9c7ef0f6c05f3d6fb6b95195ba95d6929403e1',
  145. ),
  146. 'alibabacloud/tea-oss-utils' =>
  147. array (
  148. 'pretty_version' => '0.2.2',
  149. 'version' => '0.2.2.0',
  150. 'aliases' =>
  151. array (
  152. ),
  153. 'reference' => '42a218da7559a4352c9fc73640a71649484e9593',
  154. ),
  155. 'alibabacloud/tea-rpc' =>
  156. array (
  157. 'pretty_version' => '0.1.11',
  158. 'version' => '0.1.11.0',
  159. 'aliases' =>
  160. array (
  161. ),
  162. 'reference' => '35f0fda2c5fc1bde6ad4276f3e476dcc7bfdc5e8',
  163. ),
  164. 'alibabacloud/tea-rpc-utils' =>
  165. array (
  166. 'pretty_version' => '0.2.9',
  167. 'version' => '0.2.9.0',
  168. 'aliases' =>
  169. array (
  170. ),
  171. 'reference' => '8e7d3f8849ab08eae7cd75cbb7363f6040997c56',
  172. ),
  173. 'alibabacloud/tea-utils' =>
  174. array (
  175. 'pretty_version' => '0.2.17',
  176. 'version' => '0.2.17.0',
  177. 'aliases' =>
  178. array (
  179. ),
  180. 'reference' => 'dad2f3e1791998d573ef2d9ebad01e7e0f053866',
  181. ),
  182. 'alibabacloud/tea-xml' =>
  183. array (
  184. 'pretty_version' => '0.2.3',
  185. 'version' => '0.2.3.0',
  186. 'aliases' =>
  187. array (
  188. ),
  189. 'reference' => '4bd2303d71c968cb7ae4e487c5fa3023aed3ff3b',
  190. ),
  191. 'clagiordano/weblibs-configmanager' =>
  192. array (
  193. 'pretty_version' => 'v1.2.0',
  194. 'version' => '1.2.0.0',
  195. 'aliases' =>
  196. array (
  197. ),
  198. 'reference' => '5c8ebcc62782313b1278afe802b120d18c07a059',
  199. ),
  200. 'doctrine/annotations' =>
  201. array (
  202. 'pretty_version' => '1.14.3',
  203. 'version' => '1.14.3.0',
  204. 'aliases' =>
  205. array (
  206. ),
  207. 'reference' => 'fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af',
  208. ),
  209. 'doctrine/deprecations' =>
  210. array (
  211. 'pretty_version' => 'v1.0.0',
  212. 'version' => '1.0.0.0',
  213. 'aliases' =>
  214. array (
  215. ),
  216. 'reference' => '0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de',
  217. ),
  218. 'doctrine/lexer' =>
  219. array (
  220. 'pretty_version' => '2.1.0',
  221. 'version' => '2.1.0.0',
  222. 'aliases' =>
  223. array (
  224. ),
  225. 'reference' => '39ab8fcf5a51ce4b85ca97c7a7d033eb12831124',
  226. ),
  227. 'endroid/qr-code' =>
  228. array (
  229. 'pretty_version' => '1.9.3',
  230. 'version' => '1.9.3.0',
  231. 'aliases' =>
  232. array (
  233. ),
  234. 'reference' => 'c9644bec2a9cc9318e98d1437de3c628dcd1ef93',
  235. ),
  236. 'evenement/evenement' =>
  237. array (
  238. 'pretty_version' => 'v3.0.1',
  239. 'version' => '3.0.1.0',
  240. 'aliases' =>
  241. array (
  242. ),
  243. 'reference' => '531bfb9d15f8aa57454f5f0285b18bec903b8fb7',
  244. ),
  245. 'guzzlehttp/guzzle' =>
  246. array (
  247. 'pretty_version' => '7.5.0',
  248. 'version' => '7.5.0.0',
  249. 'aliases' =>
  250. array (
  251. ),
  252. 'reference' => 'b50a2a1251152e43f6a37f0fa053e730a67d25ba',
  253. ),
  254. 'guzzlehttp/promises' =>
  255. array (
  256. 'pretty_version' => '1.5.2',
  257. 'version' => '1.5.2.0',
  258. 'aliases' =>
  259. array (
  260. ),
  261. 'reference' => 'b94b2807d85443f9719887892882d0329d1e2598',
  262. ),
  263. 'guzzlehttp/psr7' =>
  264. array (
  265. 'pretty_version' => '2.4.3',
  266. 'version' => '2.4.3.0',
  267. 'aliases' =>
  268. array (
  269. ),
  270. 'reference' => '67c26b443f348a51926030c83481b85718457d3d',
  271. ),
  272. 'hg/apidoc-thinkphp' =>
  273. array (
  274. 'pretty_version' => 'v3.1.9',
  275. 'version' => '3.1.9.0',
  276. 'aliases' =>
  277. array (
  278. ),
  279. 'reference' => '877ff07f80d75444b20f0f252e0e5f67e82f6eb1',
  280. ),
  281. 'jpush/jpush' =>
  282. array (
  283. 'pretty_version' => 'v3.6.8',
  284. 'version' => '3.6.8.0',
  285. 'aliases' =>
  286. array (
  287. ),
  288. 'reference' => 'ebb191e8854a35c3fb7a6626028b3a23132cbe2c',
  289. ),
  290. 'laminas/laminas-escaper' =>
  291. array (
  292. 'pretty_version' => '2.12.0',
  293. 'version' => '2.12.0.0',
  294. 'aliases' =>
  295. array (
  296. ),
  297. 'reference' => 'ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490',
  298. ),
  299. 'lizhichao/one-sm' =>
  300. array (
  301. 'pretty_version' => '1.10',
  302. 'version' => '1.10.0.0',
  303. 'aliases' =>
  304. array (
  305. ),
  306. 'reference' => '687a012a44a5bfd4d9143a0234e1060543be455a',
  307. ),
  308. 'monolog/monolog' =>
  309. array (
  310. 'pretty_version' => '2.9.1',
  311. 'version' => '2.9.1.0',
  312. 'aliases' =>
  313. array (
  314. ),
  315. 'reference' => 'f259e2b15fb95494c83f52d3caad003bbf5ffaa1',
  316. ),
  317. 'mtdowling/jmespath.php' =>
  318. array (
  319. 'pretty_version' => '2.6.1',
  320. 'version' => '2.6.1.0',
  321. 'aliases' =>
  322. array (
  323. ),
  324. 'reference' => '9b87907a81b87bc76d19a7fb2d61e61486ee9edb',
  325. ),
  326. 'nesbot/carbon' =>
  327. array (
  328. 'pretty_version' => '2.66.0',
  329. 'version' => '2.66.0.0',
  330. 'aliases' =>
  331. array (
  332. ),
  333. 'reference' => '496712849902241f04902033b0441b269effe001',
  334. ),
  335. 'neutron/temporary-filesystem' =>
  336. array (
  337. 'pretty_version' => '3.0.1',
  338. 'version' => '3.0.1.0',
  339. 'aliases' =>
  340. array (
  341. ),
  342. 'reference' => '55f3d4896eff3bf070e491916e6c564db5e640b5',
  343. ),
  344. 'php-ffmpeg/php-ffmpeg' =>
  345. array (
  346. 'pretty_version' => 'v0.19.0',
  347. 'version' => '0.19.0.0',
  348. 'aliases' =>
  349. array (
  350. ),
  351. 'reference' => '22b71931fd1a97207788636b283eee1c0067eff7',
  352. ),
  353. 'phpoffice/phpword' =>
  354. array (
  355. 'pretty_version' => '1.0.0',
  356. 'version' => '1.0.0.0',
  357. 'aliases' =>
  358. array (
  359. ),
  360. 'reference' => '8521612b39edeec9055d3688ad555342a40857dd',
  361. ),
  362. 'psr/cache' =>
  363. array (
  364. 'pretty_version' => '1.0.1',
  365. 'version' => '1.0.1.0',
  366. 'aliases' =>
  367. array (
  368. ),
  369. 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
  370. ),
  371. 'psr/cache-implementation' =>
  372. array (
  373. 'provided' =>
  374. array (
  375. 0 => '1.0|2.0',
  376. ),
  377. ),
  378. 'psr/container' =>
  379. array (
  380. 'pretty_version' => '1.1.2',
  381. 'version' => '1.1.2.0',
  382. 'aliases' =>
  383. array (
  384. ),
  385. 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea',
  386. ),
  387. 'psr/event-dispatcher' =>
  388. array (
  389. 'pretty_version' => '1.0.0',
  390. 'version' => '1.0.0.0',
  391. 'aliases' =>
  392. array (
  393. ),
  394. 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0',
  395. ),
  396. 'psr/event-dispatcher-implementation' =>
  397. array (
  398. 'provided' =>
  399. array (
  400. 0 => '1.0',
  401. ),
  402. ),
  403. 'psr/http-client' =>
  404. array (
  405. 'pretty_version' => '1.0.1',
  406. 'version' => '1.0.1.0',
  407. 'aliases' =>
  408. array (
  409. ),
  410. 'reference' => '2dfb5f6c5eff0e91e20e913f8c5452ed95b86621',
  411. ),
  412. 'psr/http-client-implementation' =>
  413. array (
  414. 'provided' =>
  415. array (
  416. 0 => '1.0',
  417. ),
  418. ),
  419. 'psr/http-factory' =>
  420. array (
  421. 'pretty_version' => '1.0.1',
  422. 'version' => '1.0.1.0',
  423. 'aliases' =>
  424. array (
  425. ),
  426. 'reference' => '12ac7fcd07e5b077433f5f2bee95b3a771bf61be',
  427. ),
  428. 'psr/http-factory-implementation' =>
  429. array (
  430. 'provided' =>
  431. array (
  432. 0 => '1.0',
  433. ),
  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.4',
  454. 'version' => '1.1.4.0',
  455. 'aliases' =>
  456. array (
  457. ),
  458. 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
  459. ),
  460. 'psr/log-implementation' =>
  461. array (
  462. 'provided' =>
  463. array (
  464. 0 => '1.0.0 || 2.0.0 || 3.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. 'psr/simple-cache-implementation' =>
  477. array (
  478. 'provided' =>
  479. array (
  480. 0 => '1.0|2.0',
  481. ),
  482. ),
  483. 'ralouphie/getallheaders' =>
  484. array (
  485. 'pretty_version' => '3.0.3',
  486. 'version' => '3.0.3.0',
  487. 'aliases' =>
  488. array (
  489. ),
  490. 'reference' => '120b605dfeb996808c31b6477290a714d356e822',
  491. ),
  492. 'ralouphie/mimey' =>
  493. array (
  494. 'pretty_version' => '2.1.0',
  495. 'version' => '2.1.0.0',
  496. 'aliases' =>
  497. array (
  498. ),
  499. 'reference' => '8f74e6da73f9df7bd965e4e123f3d8fb9acb89ba',
  500. ),
  501. 'symfony/cache' =>
  502. array (
  503. 'pretty_version' => 'v5.4.19',
  504. 'version' => '5.4.19.0',
  505. 'aliases' =>
  506. array (
  507. ),
  508. 'reference' => 'e9147c89fdfdc5d5ef798bb7193f23726ad609f5',
  509. ),
  510. 'symfony/cache-contracts' =>
  511. array (
  512. 'pretty_version' => 'v2.5.2',
  513. 'version' => '2.5.2.0',
  514. 'aliases' =>
  515. array (
  516. ),
  517. 'reference' => '64be4a7acb83b6f2bf6de9a02cee6dad41277ebc',
  518. ),
  519. 'symfony/cache-implementation' =>
  520. array (
  521. 'provided' =>
  522. array (
  523. 0 => '1.0|2.0',
  524. ),
  525. ),
  526. 'symfony/class-loader' =>
  527. array (
  528. 'pretty_version' => 'v3.4.47',
  529. 'version' => '3.4.47.0',
  530. 'aliases' =>
  531. array (
  532. ),
  533. 'reference' => 'a22265a9f3511c0212bf79f54910ca5a77c0e92c',
  534. ),
  535. 'symfony/css-selector' =>
  536. array (
  537. 'pretty_version' => 'v5.4.19',
  538. 'version' => '5.4.19.0',
  539. 'aliases' =>
  540. array (
  541. ),
  542. 'reference' => 'f4a7d150f5b9e8f974f6f127d8167e420d11fc62',
  543. ),
  544. 'symfony/deprecation-contracts' =>
  545. array (
  546. 'pretty_version' => 'v2.5.2',
  547. 'version' => '2.5.2.0',
  548. 'aliases' =>
  549. array (
  550. ),
  551. 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66',
  552. ),
  553. 'symfony/event-dispatcher' =>
  554. array (
  555. 'pretty_version' => 'v5.4.19',
  556. 'version' => '5.4.19.0',
  557. 'aliases' =>
  558. array (
  559. ),
  560. 'reference' => 'abf49cc084c087d94b4cb939c3f3672971784e0c',
  561. ),
  562. 'symfony/event-dispatcher-contracts' =>
  563. array (
  564. 'pretty_version' => 'v2.5.2',
  565. 'version' => '2.5.2.0',
  566. 'aliases' =>
  567. array (
  568. ),
  569. 'reference' => 'f98b54df6ad059855739db6fcbc2d36995283fe1',
  570. ),
  571. 'symfony/event-dispatcher-implementation' =>
  572. array (
  573. 'provided' =>
  574. array (
  575. 0 => '2.0',
  576. ),
  577. ),
  578. 'symfony/filesystem' =>
  579. array (
  580. 'pretty_version' => 'v5.4.19',
  581. 'version' => '5.4.19.0',
  582. 'aliases' =>
  583. array (
  584. ),
  585. 'reference' => '648bfaca6a494f3e22378123bcee2894045dc9d8',
  586. ),
  587. 'symfony/http-foundation' =>
  588. array (
  589. 'pretty_version' => 'v5.4.20',
  590. 'version' => '5.4.20.0',
  591. 'aliases' =>
  592. array (
  593. ),
  594. 'reference' => 'd0435363362a47c14e9cf50663cb8ffbf491875a',
  595. ),
  596. 'symfony/options-resolver' =>
  597. array (
  598. 'pretty_version' => 'v3.4.47',
  599. 'version' => '3.4.47.0',
  600. 'aliases' =>
  601. array (
  602. ),
  603. 'reference' => 'c7efc97a47b2ebaabc19d5b6c6b50f5c37c92744',
  604. ),
  605. 'symfony/polyfill-ctype' =>
  606. array (
  607. 'pretty_version' => 'v1.27.0',
  608. 'version' => '1.27.0.0',
  609. 'aliases' =>
  610. array (
  611. ),
  612. 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a',
  613. ),
  614. 'symfony/polyfill-mbstring' =>
  615. array (
  616. 'pretty_version' => 'v1.27.0',
  617. 'version' => '1.27.0.0',
  618. 'aliases' =>
  619. array (
  620. ),
  621. 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534',
  622. ),
  623. 'symfony/polyfill-php73' =>
  624. array (
  625. 'pretty_version' => 'v1.27.0',
  626. 'version' => '1.27.0.0',
  627. 'aliases' =>
  628. array (
  629. ),
  630. 'reference' => '9e8ecb5f92152187c4799efd3c96b78ccab18ff9',
  631. ),
  632. 'symfony/polyfill-php80' =>
  633. array (
  634. 'pretty_version' => 'v1.27.0',
  635. 'version' => '1.27.0.0',
  636. 'aliases' =>
  637. array (
  638. ),
  639. 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936',
  640. ),
  641. 'symfony/process' =>
  642. array (
  643. 'pretty_version' => 'v5.4.19',
  644. 'version' => '5.4.19.0',
  645. 'aliases' =>
  646. array (
  647. ),
  648. 'reference' => 'c5ba874c9b636dbccf761e22ce750e88ec3f55e1',
  649. ),
  650. 'symfony/service-contracts' =>
  651. array (
  652. 'pretty_version' => 'v2.5.2',
  653. 'version' => '2.5.2.0',
  654. 'aliases' =>
  655. array (
  656. ),
  657. 'reference' => '4b426aac47d6427cc1a1d0f7e2ac724627f5966c',
  658. ),
  659. 'symfony/translation' =>
  660. array (
  661. 'pretty_version' => 'v5.4.19',
  662. 'version' => '5.4.19.0',
  663. 'aliases' =>
  664. array (
  665. ),
  666. 'reference' => '83d487b13b7fb4c0a6ad079f4e4c9b4525e1b695',
  667. ),
  668. 'symfony/translation-contracts' =>
  669. array (
  670. 'pretty_version' => 'v2.5.2',
  671. 'version' => '2.5.2.0',
  672. 'aliases' =>
  673. array (
  674. ),
  675. 'reference' => '136b19dd05cdf0709db6537d058bcab6dd6e2dbe',
  676. ),
  677. 'symfony/translation-implementation' =>
  678. array (
  679. 'provided' =>
  680. array (
  681. 0 => '2.3',
  682. ),
  683. ),
  684. 'symfony/var-exporter' =>
  685. array (
  686. 'pretty_version' => 'v5.4.19',
  687. 'version' => '5.4.19.0',
  688. 'aliases' =>
  689. array (
  690. ),
  691. 'reference' => '2a1d06fcf2b30829d6c01dae8e6e188424d1f8f6',
  692. ),
  693. 'topthink/framework' =>
  694. array (
  695. 'pretty_version' => 'v6.1.1',
  696. 'version' => '6.1.1.0',
  697. 'aliases' =>
  698. array (
  699. ),
  700. 'reference' => '2cb56f3e6f3c479fe90ea5f28d38d3b5ef6c4210',
  701. ),
  702. 'topthink/think-helper' =>
  703. array (
  704. 'pretty_version' => 'v3.1.6',
  705. 'version' => '3.1.6.0',
  706. 'aliases' =>
  707. array (
  708. ),
  709. 'reference' => '769acbe50a4274327162f9c68ec2e89a38eb2aff',
  710. ),
  711. 'topthink/think-migration' =>
  712. array (
  713. 'pretty_version' => 'v3.0.4',
  714. 'version' => '3.0.4.0',
  715. 'aliases' =>
  716. array (
  717. ),
  718. 'reference' => 'c5880669b277762d5ff935e551bc0d5c71de6811',
  719. ),
  720. 'topthink/think-orm' =>
  721. array (
  722. 'pretty_version' => 'v2.0.56',
  723. 'version' => '2.0.56.0',
  724. 'aliases' =>
  725. array (
  726. ),
  727. 'reference' => '75b8512736daaa056d511f42c15bed87c9f3605a',
  728. ),
  729. 'topthink/think-template' =>
  730. array (
  731. 'pretty_version' => 'v2.0.8',
  732. 'version' => '2.0.8.0',
  733. 'aliases' =>
  734. array (
  735. ),
  736. 'reference' => 'abfc293f74f9ef5127b5c416310a01fe42e59368',
  737. ),
  738. 'topthink/think-view' =>
  739. array (
  740. 'pretty_version' => 'v1.0.14',
  741. 'version' => '1.0.14.0',
  742. 'aliases' =>
  743. array (
  744. ),
  745. 'reference' => 'edce0ae2c9551ab65f9e94a222604b0dead3576d',
  746. ),
  747. 'voku/simple_html_dom' =>
  748. array (
  749. 'pretty_version' => '4.8.7',
  750. 'version' => '4.8.7.0',
  751. 'aliases' =>
  752. array (
  753. ),
  754. 'reference' => 'd9807c2b6124457eee2c30b3d1c067e0657713d4',
  755. ),
  756. 'yansongda/pay' =>
  757. array (
  758. 'pretty_version' => 'v2.10.5',
  759. 'version' => '2.10.5.0',
  760. 'aliases' =>
  761. array (
  762. ),
  763. 'reference' => 'f7d93ed784de4ca09d3386d28139c724ddd526fc',
  764. ),
  765. 'yansongda/supports' =>
  766. array (
  767. 'pretty_version' => 'v2.2.0',
  768. 'version' => '2.2.0.0',
  769. 'aliases' =>
  770. array (
  771. ),
  772. 'reference' => 'de9a8d38b0461ddf9c12f27390dad9a40c9b4e3b',
  773. ),
  774. 'zoujingli/ip2region' =>
  775. array (
  776. 'pretty_version' => 'v2.0.1',
  777. 'version' => '2.0.1.0',
  778. 'aliases' =>
  779. array (
  780. ),
  781. 'reference' => 'b377b1d9181a891b60027e4289efb61bca1d369e',
  782. ),
  783. 'zoujingli/think-library' =>
  784. array (
  785. 'pretty_version' => 'v6.1.6',
  786. 'version' => '6.1.6.0',
  787. 'aliases' =>
  788. array (
  789. ),
  790. 'reference' => 'f77960dd0912fa5127a43a4e5d77f7e151d2554d',
  791. ),
  792. 'zoujingli/thinkadmin' =>
  793. array (
  794. 'pretty_version' => 'dev-develop',
  795. 'version' => 'dev-develop',
  796. 'aliases' =>
  797. array (
  798. ),
  799. 'reference' => 'c80e03bd378ffbedb65ab5e8b2a6602ecbf0d367',
  800. ),
  801. 'zoujingli/wechat-developer' =>
  802. array (
  803. 'pretty_version' => 'v1.2.37',
  804. 'version' => '1.2.37.0',
  805. 'aliases' =>
  806. array (
  807. ),
  808. 'reference' => '1d453606d3f0f9626a6da7ba82c7b777265558f9',
  809. ),
  810. ),
  811. );
  812. private static $canGetVendors;
  813. private static $installedByVendor = array();
  814. public static function getInstalledPackages()
  815. {
  816. $packages = array();
  817. foreach (self::getInstalled() as $installed) {
  818. $packages[] = array_keys($installed['versions']);
  819. }
  820. if (1 === \count($packages)) {
  821. return $packages[0];
  822. }
  823. return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
  824. }
  825. public static function isInstalled($packageName)
  826. {
  827. foreach (self::getInstalled() as $installed) {
  828. if (isset($installed['versions'][$packageName])) {
  829. return true;
  830. }
  831. }
  832. return false;
  833. }
  834. public static function satisfies(VersionParser $parser, $packageName, $constraint)
  835. {
  836. $constraint = $parser->parseConstraints($constraint);
  837. $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
  838. return $provided->matches($constraint);
  839. }
  840. public static function getVersionRanges($packageName)
  841. {
  842. foreach (self::getInstalled() as $installed) {
  843. if (!isset($installed['versions'][$packageName])) {
  844. continue;
  845. }
  846. $ranges = array();
  847. if (isset($installed['versions'][$packageName]['pretty_version'])) {
  848. $ranges[] = $installed['versions'][$packageName]['pretty_version'];
  849. }
  850. if (array_key_exists('aliases', $installed['versions'][$packageName])) {
  851. $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
  852. }
  853. if (array_key_exists('replaced', $installed['versions'][$packageName])) {
  854. $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
  855. }
  856. if (array_key_exists('provided', $installed['versions'][$packageName])) {
  857. $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
  858. }
  859. return implode(' || ', $ranges);
  860. }
  861. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  862. }
  863. public static function getVersion($packageName)
  864. {
  865. foreach (self::getInstalled() as $installed) {
  866. if (!isset($installed['versions'][$packageName])) {
  867. continue;
  868. }
  869. if (!isset($installed['versions'][$packageName]['version'])) {
  870. return null;
  871. }
  872. return $installed['versions'][$packageName]['version'];
  873. }
  874. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  875. }
  876. public static function getPrettyVersion($packageName)
  877. {
  878. foreach (self::getInstalled() as $installed) {
  879. if (!isset($installed['versions'][$packageName])) {
  880. continue;
  881. }
  882. if (!isset($installed['versions'][$packageName]['pretty_version'])) {
  883. return null;
  884. }
  885. return $installed['versions'][$packageName]['pretty_version'];
  886. }
  887. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  888. }
  889. public static function getReference($packageName)
  890. {
  891. foreach (self::getInstalled() as $installed) {
  892. if (!isset($installed['versions'][$packageName])) {
  893. continue;
  894. }
  895. if (!isset($installed['versions'][$packageName]['reference'])) {
  896. return null;
  897. }
  898. return $installed['versions'][$packageName]['reference'];
  899. }
  900. throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
  901. }
  902. public static function getRootPackage()
  903. {
  904. $installed = self::getInstalled();
  905. return $installed[0]['root'];
  906. }
  907. public static function getRawData()
  908. {
  909. @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
  910. return self::$installed;
  911. }
  912. public static function getAllRawData()
  913. {
  914. return self::getInstalled();
  915. }
  916. public static function reload($data)
  917. {
  918. self::$installed = $data;
  919. self::$installedByVendor = array();
  920. }
  921. private static function getInstalled()
  922. {
  923. if (null === self::$canGetVendors) {
  924. self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
  925. }
  926. $installed = array();
  927. if (self::$canGetVendors) {
  928. foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
  929. if (isset(self::$installedByVendor[$vendorDir])) {
  930. $installed[] = self::$installedByVendor[$vendorDir];
  931. } elseif (is_file($vendorDir.'/composer/installed.php')) {
  932. $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
  933. }
  934. }
  935. }
  936. $installed[] = self::$installed;
  937. return $installed;
  938. }
  939. }