WooCommerce PayPal Payments - Version 1.0.2

Version Description

  • Fix - Purchases over 1.000 USD fail. #84
Download this release

Release Info

Developer automattic
Plugin Icon 128x128 WooCommerce PayPal Payments
Version 1.0.2
Comparing to
See all releases

Code changes from version 1.0.1 to 1.0.2

Files changed (132) hide show
  1. changelog.txt +3 -0
  2. modules/ppcp-api-client/src/Entity/class-amount.php +1 -1
  3. modules/ppcp-api-client/src/Entity/class-money.php +1 -1
  4. modules/ppcp-button/assets/js/hostedfields.js +0 -2
  5. modules/ppcp-button/assets/js/hostedfields.js.map +0 -1
  6. package-lock.json +5 -0
  7. readme.txt +4 -1
  8. vendor/autoload.php +1 -1
  9. vendor/composer/ClassLoader.php +1 -1
  10. vendor/composer/autoload_files.php +10 -0
  11. vendor/composer/autoload_psr4.php +2 -0
  12. vendor/composer/autoload_real.php +22 -4
  13. vendor/composer/autoload_static.php +18 -4
  14. vendor/composer/installed.json +142 -97
  15. vendor/dhii/collections-interface/.env.example +2 -0
  16. vendor/dhii/collections-interface/CHANGELOG.md +64 -0
  17. vendor/{wp-oop/transient-cache → dhii/collections-interface}/LICENSE +1 -1
  18. vendor/dhii/collections-interface/README.md +43 -0
  19. vendor/dhii/collections-interface/composer.json +42 -0
  20. vendor/dhii/{module-interface → collections-interface}/docker-compose.yml +6 -1
  21. vendor/dhii/{module-interface → collections-interface}/docker/Dockerfile_php +1 -1
  22. vendor/dhii/collections-interface/phpcs.xml.dist +48 -0
  23. vendor/dhii/collections-interface/phpunit.xml.dist +23 -0
  24. vendor/dhii/collections-interface/psalm.xml.dist +25 -0
  25. vendor/dhii/collections-interface/src/ClearableContainerInterface.php +18 -0
  26. vendor/dhii/collections-interface/src/ContainerFactoryInterface.php +27 -0
  27. vendor/dhii/collections-interface/src/ContainerInterface.php +16 -0
  28. vendor/dhii/collections-interface/src/CountableListInterface.php +21 -0
  29. vendor/dhii/collections-interface/src/CountableMapInterface.php +21 -0
  30. vendor/dhii/collections-interface/src/CountableSetInterface.php +21 -0
  31. vendor/dhii/collections-interface/src/HasCapableInterface.php +29 -0
  32. vendor/dhii/collections-interface/src/HasItemCapableInterface.php +30 -0
  33. vendor/dhii/collections-interface/src/MapFactoryInterface.php +27 -0
  34. vendor/dhii/collections-interface/src/MapInterface.php +21 -0
  35. vendor/dhii/collections-interface/src/MutableContainerInterface.php +42 -0
  36. vendor/dhii/collections-interface/src/SetFactoryInterface.php +30 -0
  37. vendor/dhii/collections-interface/src/SetInterface.php +21 -0
  38. vendor/dhii/collections-interface/src/WritableContainerFactoryInterface.php +20 -0
  39. vendor/dhii/collections-interface/src/WritableContainerInterface.php +58 -0
  40. vendor/dhii/collections-interface/src/WritableMapFactoryInterface.php +22 -0
  41. vendor/dhii/collections-interface/src/WritableMapInterface.php +15 -0
  42. vendor/dhii/collections-interface/src/WritableSetFactoryInterface.php +20 -0
  43. vendor/dhii/collections-interface/src/WritableSetInterface.php +54 -0
  44. vendor/dhii/containers/.codeclimate.yml +0 -21
  45. vendor/dhii/containers/.php_cs +0 -27
  46. vendor/dhii/containers/CHANGELOG.md +3 -0
  47. vendor/dhii/containers/composer.json +3 -3
  48. vendor/dhii/containers/docker/Dockerfile_php +2 -2
  49. vendor/dhii/containers/phpunit.xml +0 -35
  50. vendor/dhii/containers/src/AliasingContainer.php +84 -0
  51. vendor/dhii/containers/src/CachingContainer.php +10 -15
  52. vendor/dhii/containers/src/CompositeCachingServiceProvider.php +3 -3
  53. vendor/dhii/containers/src/CompositeContainer.php +10 -16
  54. vendor/dhii/containers/src/DataStructureBasedFactory.php +43 -0
  55. vendor/dhii/containers/src/DataStructureBasedFactoryInterface.php +26 -0
  56. vendor/dhii/containers/src/DelegatingContainer.php +14 -18
  57. vendor/dhii/containers/src/DeprefixingContainer.php +96 -0
  58. vendor/dhii/containers/src/Dictionary.php +115 -0
  59. vendor/dhii/containers/src/DictionaryFactory.php +21 -0
  60. vendor/dhii/containers/src/Exception/ContainerException.php +3 -16
  61. vendor/dhii/containers/src/Exception/NotFoundException.php +4 -17
  62. vendor/dhii/containers/src/HierarchyContainer.php +87 -0
  63. vendor/dhii/containers/src/MappingContainer.php +88 -0
  64. vendor/dhii/containers/src/MaskingContainer.php +100 -0
  65. vendor/dhii/containers/src/PathContainer.php +125 -0
  66. vendor/dhii/containers/src/PrefixingContainer.php +121 -0
  67. vendor/dhii/containers/src/SegmentingContainer.php +116 -0
  68. vendor/dhii/containers/test/functional/CompositeCachingServiceProviderTest.php +0 -119
  69. vendor/dhii/containers/test/functional/DelegatingContainerTest.php +0 -109
  70. vendor/dhii/containers/test/functional/Dhii/Container/FuncTest/CachingContainerTest.php +0 -88
  71. vendor/dhii/containers/test/functional/Dhii/Container/FuncTest/CompositeContainerTest.php +0 -130
  72. vendor/dhii/containers/test/functional/Exception/ContainerExceptionTest.php +0 -63
  73. vendor/dhii/containers/test/functional/Exception/NotFoundExceptionTest.php +0 -63
  74. vendor/dhii/containers/test/functional/ServiceProviderTest.php +0 -78
  75. vendor/dhii/containers/test/helpers/ComponentMockeryTrait.php +0 -267
  76. vendor/dhii/containers/test/unit/CompositeCachingServiceProviderTest.php +0 -136
  77. vendor/dhii/containers/test/unit/ProxyContainerTest.php +0 -112
  78. vendor/dhii/{module-interface → data-key-value-aware-interface}/.codeclimate.yml +0 -4
  79. vendor/dhii/{module-interface → data-key-value-aware-interface}/.php_cs +2 -2
  80. vendor/dhii/data-key-value-aware-interface/CHANGELOG.md +12 -0
  81. vendor/dhii/data-key-value-aware-interface/README.md +6 -0
  82. vendor/dhii/data-key-value-aware-interface/composer.json +27 -0
  83. vendor/dhii/{containers → data-key-value-aware-interface}/composer.lock +807 -742
  84. vendor/dhii/data-key-value-aware-interface/nbproject/project.properties +25 -0
  85. vendor/dhii/data-key-value-aware-interface/nbproject/project.xml +9 -0
  86. vendor/dhii/{module-interface → data-key-value-aware-interface}/phpunit.xml +1 -1
  87. vendor/dhii/data-key-value-aware-interface/src/KeyAwareInterface.php +22 -0
  88. vendor/dhii/data-key-value-aware-interface/src/KeyValueAwareInterface.php +16 -0
  89. vendor/dhii/data-key-value-aware-interface/src/ValueAwareInterface.php +20 -0
  90. vendor/dhii/{containers → data-key-value-aware-interface}/test/bootstrap.php +0 -0
  91. vendor/dhii/data-key-value-aware-interface/test/functional/KeyAwareInterfaceTest.php +41 -0
  92. vendor/dhii/data-key-value-aware-interface/test/functional/KeyValueAwareInterfaceTest.php +42 -0
  93. vendor/dhii/data-key-value-aware-interface/test/functional/ValueAwareInterfaceTest.php +41 -0
  94. vendor/dhii/module-interface/.env.example +0 -1
  95. vendor/dhii/module-interface/CHANGELOG.md +0 -16
  96. vendor/dhii/module-interface/README.md +14 -274
  97. vendor/dhii/module-interface/composer.json +14 -8
  98. vendor/dhii/module-interface/composer.lock +0 -1569
  99. vendor/dhii/module-interface/src/DependenciesAwareInterface.php +24 -0
  100. vendor/dhii/module-interface/src/Exception/ModuleExceptionInterface.php +3 -3
  101. vendor/dhii/module-interface/src/ModuleAwareInterface.php +2 -2
  102. vendor/dhii/module-interface/src/ModuleFactoryInterface.php +22 -0
  103. vendor/dhii/module-interface/src/ModuleInterface.php +21 -29
  104. vendor/dhii/module-interface/src/ModuleKeyAwareInterface.php +22 -0
  105. vendor/dhii/module-interface/test/bootstrap.php +0 -5
  106. vendor/dhii/module-interface/test/stubs/GetImplementingMockBuilderCapableTrait.php +0 -46
  107. vendor/dhii/module-interface/test/unit/Exception/ModuleExceptionInterfaceTest.php +0 -64
  108. vendor/dhii/module-interface/test/unit/ModuleAwareInterfaceTest.php +0 -46
  109. vendor/dhii/module-interface/test/unit/ModuleInterfaceTest.php +0 -46
  110. vendor/dhii/module-interface/travis.php.ini +1 -0
  111. vendor/psr/simple-cache/.editorconfig +0 -12
  112. vendor/psr/simple-cache/LICENSE.md +0 -21
  113. vendor/psr/simple-cache/README.md +0 -8
  114. vendor/psr/simple-cache/composer.json +0 -25
  115. vendor/psr/simple-cache/src/CacheException.php +0 -10
  116. vendor/psr/simple-cache/src/CacheInterface.php +0 -114
  117. vendor/psr/simple-cache/src/InvalidArgumentException.php +0 -13
  118. vendor/ralouphie/getallheaders/LICENSE +21 -0
  119. vendor/ralouphie/getallheaders/README.md +27 -0
  120. vendor/ralouphie/getallheaders/composer.json +26 -0
  121. vendor/ralouphie/getallheaders/src/getallheaders.php +46 -0
  122. vendor/wp-oop/transient-cache/CHANGELOG.md +0 -30
  123. vendor/wp-oop/transient-cache/README.md +0 -105
  124. vendor/wp-oop/transient-cache/composer.json +0 -37
  125. vendor/wp-oop/transient-cache/src/CachePool.php +0 -609
  126. vendor/wp-oop/transient-cache/src/CachePoolFactory.php +0 -46
  127. vendor/wp-oop/transient-cache/src/CachePoolFactoryInterface.php +0 -21
  128. vendor/wp-oop/transient-cache/src/Exception/CacheException.php +0 -14
  129. vendor/wp-oop/transient-cache/src/Exception/InvalidArgumentException.php +0 -14
  130. vendor/wp-oop/transient-cache/src/SilentPool.php +0 -154
  131. vendor/wp-oop/transient-cache/src/SilentPoolFactory.php +0 -33
  132. woocommerce-paypal-payments.php +1 -1
changelog.txt CHANGED
@@ -1,5 +1,8 @@
1
  *** Changelog ***
2
 
 
 
 
3
  = 1.0.1 - 2020-11-05 =
4
  * Fix - PayPal Smart buttons don't load when using a production/live account and `WP_Debug` is turned on/true. #66
5
  * Fix - [Card Processing] SCA/Visa Verification form loads underneath the Checkout blockUI element. #63
1
  *** Changelog ***
2
 
3
+ = 1.0.2 - 2020-11-09 =
4
+ * Fix - Purchases over 1.000 USD fail. #84
5
+
6
  = 1.0.1 - 2020-11-05 =
7
  * Fix - PayPal Smart buttons don't load when using a production/live account and `WP_Debug` is turned on/true. #66
8
  * Fix - [Card Processing] SCA/Visa Verification form loads underneath the Checkout blockUI element. #63
modules/ppcp-api-client/src/Entity/class-amount.php CHANGED
@@ -74,7 +74,7 @@ class Amount {
74
  public function to_array(): array {
75
  $amount = array(
76
  'currency_code' => $this->currency_code(),
77
- 'value' => number_format( $this->value(), 2 ),
78
  );
79
  if ( $this->breakdown() && count( $this->breakdown()->to_array() ) ) {
80
  $amount['breakdown'] = $this->breakdown()->to_array();
74
  public function to_array(): array {
75
  $amount = array(
76
  'currency_code' => $this->currency_code(),
77
+ 'value' => number_format( $this->value(), 2, '.', '' ),
78
  );
79
  if ( $this->breakdown() && count( $this->breakdown()->to_array() ) ) {
80
  $amount['breakdown'] = $this->breakdown()->to_array();
modules/ppcp-api-client/src/Entity/class-money.php CHANGED
@@ -65,7 +65,7 @@ class Money {
65
  public function to_array(): array {
66
  return array(
67
  'currency_code' => $this->currency_code(),
68
- 'value' => number_format( $this->value(), 2 ),
69
  );
70
  }
71
  }
65
  public function to_array(): array {
66
  return array(
67
  'currency_code' => $this->currency_code(),
68
+ 'value' => number_format( $this->value(), 2, '.', '' ),
69
  );
70
  }
71
  }
modules/ppcp-button/assets/js/hostedfields.js DELETED
@@ -1,2 +0,0 @@
1
- !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){e.exports=r.p+"css/hosted-fields.css"}]);
2
- //# sourceMappingURL=hostedfields.js.map
 
 
modules/ppcp-button/assets/js/hostedfields.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./resources/css/hosted-fields.scss"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,kBClFrDhC,EAAOD,QAAU,IAA0B","file":"js/hostedfields.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","module.exports = __webpack_public_path__ + \"css/hosted-fields.css\";"],"sourceRoot":""}
 
package-lock.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ {
2
+ "name": "woocommerce-paypal-payments",
3
+ "version": "1.0.2",
4
+ "lockfileVersion": 1
5
+ }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: woocommerce, paypal, payments, ecommerce, e-commerce, store, sales, sell,
4
  Requires at least: 5.3
5
  Tested up to: 5.5
6
  Requires PHP: 7.0
7
- Stable tag: 1.0.1
8
  License: GPLv2
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -58,6 +58,9 @@ Follow the steps below to connect the plugin to your PayPal account:
58
 
59
  == Changelog ==
60
 
 
 
 
61
  = 1.0.1 =
62
  * Fix - PayPal Smart buttons don't load when using a production/live account and `WP_Debug` is turned on/true. #66
63
  * Fix - [Card Processing] SCA/Visa Verification form loads underneath the Checkout blockUI element. #63
4
  Requires at least: 5.3
5
  Tested up to: 5.5
6
  Requires PHP: 7.0
7
+ Stable tag: 1.0.2
8
  License: GPLv2
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
58
 
59
  == Changelog ==
60
 
61
+ = 1.0.2 =
62
+ * Fix - Purchases over 1.000 USD fail. #84
63
+
64
  = 1.0.1 =
65
  * Fix - PayPal Smart buttons don't load when using a production/live account and `WP_Debug` is turned on/true. #66
66
  * Fix - [Card Processing] SCA/Visa Verification form loads underneath the Checkout blockUI element. #63
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit21689d596dda2cee10278dd72c8d9cfa::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit01caf726188ce4a8c830c9ea3872c0fc::getLoader();
vendor/composer/ClassLoader.php CHANGED
@@ -60,7 +60,7 @@ class ClassLoader
60
  public function getPrefixes()
61
  {
62
  if (!empty($this->prefixesPsr0)) {
63
- return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
64
  }
65
 
66
  return array();
60
  public function getPrefixes()
61
  {
62
  if (!empty($this->prefixesPsr0)) {
63
+ return call_user_func_array('array_merge', $this->prefixesPsr0);
64
  }
65
 
66
  return array();
vendor/composer/autoload_files.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_files.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
10
+ );
vendor/composer/autoload_psr4.php CHANGED
@@ -16,6 +16,8 @@ return array(
16
  'Dhii\\Factory\\' => array($vendorDir . '/dhii/factory-interface/src'),
17
  'Dhii\\Exception\\' => array($vendorDir . '/dhii/exception-interface/src'),
18
  'Dhii\\Data\\Container\\' => array($vendorDir . '/dhii/data-container-interface/src'),
 
19
  'Dhii\\Container\\' => array($vendorDir . '/dhii/containers/src'),
 
20
  'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
21
  );
16
  'Dhii\\Factory\\' => array($vendorDir . '/dhii/factory-interface/src'),
17
  'Dhii\\Exception\\' => array($vendorDir . '/dhii/exception-interface/src'),
18
  'Dhii\\Data\\Container\\' => array($vendorDir . '/dhii/data-container-interface/src'),
19
+ 'Dhii\\Data\\' => array($vendorDir . '/dhii/data-key-value-aware-interface/src'),
20
  'Dhii\\Container\\' => array($vendorDir . '/dhii/containers/src'),
21
+ 'Dhii\\Collection\\' => array($vendorDir . '/dhii/collections-interface/src'),
22
  'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
23
  );
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit21689d596dda2cee10278dd72c8d9cfa
6
  {
7
  private static $loader;
8
 
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit21689d596dda2cee10278dd72c8d9cfa
22
  return self::$loader;
23
  }
24
 
25
- spl_autoload_register(array('ComposerAutoloaderInit21689d596dda2cee10278dd72c8d9cfa', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
- spl_autoload_unregister(array('ComposerAutoloaderInit21689d596dda2cee10278dd72c8d9cfa', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
- call_user_func(\Composer\Autoload\ComposerStaticInit21689d596dda2cee10278dd72c8d9cfa::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
@@ -50,6 +50,24 @@ class ComposerAutoloaderInit21689d596dda2cee10278dd72c8d9cfa
50
 
51
  $loader->register(true);
52
 
 
 
 
 
 
 
 
 
 
53
  return $loader;
54
  }
55
  }
 
 
 
 
 
 
 
 
 
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit01caf726188ce4a8c830c9ea3872c0fc
6
  {
7
  private static $loader;
8
 
22
  return self::$loader;
23
  }
24
 
25
+ spl_autoload_register(array('ComposerAutoloaderInit01caf726188ce4a8c830c9ea3872c0fc', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
+ spl_autoload_unregister(array('ComposerAutoloaderInit01caf726188ce4a8c830c9ea3872c0fc', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
+ call_user_func(\Composer\Autoload\ComposerStaticInit01caf726188ce4a8c830c9ea3872c0fc::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
50
 
51
  $loader->register(true);
52
 
53
+ if ($useStaticLoader) {
54
+ $includeFiles = Composer\Autoload\ComposerStaticInit01caf726188ce4a8c830c9ea3872c0fc::$files;
55
+ } else {
56
+ $includeFiles = require __DIR__ . '/autoload_files.php';
57
+ }
58
+ foreach ($includeFiles as $fileIdentifier => $file) {
59
+ composerRequire01caf726188ce4a8c830c9ea3872c0fc($fileIdentifier, $file);
60
+ }
61
+
62
  return $loader;
63
  }
64
  }
65
+
66
+ function composerRequire01caf726188ce4a8c830c9ea3872c0fc($fileIdentifier, $file)
67
+ {
68
+ if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
69
+ require $file;
70
+
71
+ $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
72
+ }
73
+ }
vendor/composer/autoload_static.php CHANGED
@@ -4,8 +4,12 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit21689d596dda2cee10278dd72c8d9cfa
8
  {
 
 
 
 
9
  public static $prefixLengthsPsr4 = array (
10
  'P' =>
11
  array (
@@ -28,7 +32,9 @@ class ComposerStaticInit21689d596dda2cee10278dd72c8d9cfa
28
  'Dhii\\Factory\\' => 13,
29
  'Dhii\\Exception\\' => 15,
30
  'Dhii\\Data\\Container\\' => 20,
 
31
  'Dhii\\Container\\' => 15,
 
32
  ),
33
  'C' =>
34
  array (
@@ -77,10 +83,18 @@ class ComposerStaticInit21689d596dda2cee10278dd72c8d9cfa
77
  array (
78
  0 => __DIR__ . '/..' . '/dhii/data-container-interface/src',
79
  ),
 
 
 
 
80
  'Dhii\\Container\\' =>
81
  array (
82
  0 => __DIR__ . '/..' . '/dhii/containers/src',
83
  ),
 
 
 
 
84
  'Composer\\Installers\\' =>
85
  array (
86
  0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
@@ -238,9 +252,9 @@ class ComposerStaticInit21689d596dda2cee10278dd72c8d9cfa
238
  public static function getInitializer(ClassLoader $loader)
239
  {
240
  return \Closure::bind(function () use ($loader) {
241
- $loader->prefixLengthsPsr4 = ComposerStaticInit21689d596dda2cee10278dd72c8d9cfa::$prefixLengthsPsr4;
242
- $loader->prefixDirsPsr4 = ComposerStaticInit21689d596dda2cee10278dd72c8d9cfa::$prefixDirsPsr4;
243
- $loader->classMap = ComposerStaticInit21689d596dda2cee10278dd72c8d9cfa::$classMap;
244
 
245
  }, null, ClassLoader::class);
246
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit01caf726188ce4a8c830c9ea3872c0fc
8
  {
9
+ public static $files = array (
10
+ '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
11
+ );
12
+
13
  public static $prefixLengthsPsr4 = array (
14
  'P' =>
15
  array (
32
  'Dhii\\Factory\\' => 13,
33
  'Dhii\\Exception\\' => 15,
34
  'Dhii\\Data\\Container\\' => 20,
35
+ 'Dhii\\Data\\' => 10,
36
  'Dhii\\Container\\' => 15,
37
+ 'Dhii\\Collection\\' => 16,
38
  ),
39
  'C' =>
40
  array (
83
  array (
84
  0 => __DIR__ . '/..' . '/dhii/data-container-interface/src',
85
  ),
86
+ 'Dhii\\Data\\' =>
87
+ array (
88
+ 0 => __DIR__ . '/..' . '/dhii/data-key-value-aware-interface/src',
89
+ ),
90
  'Dhii\\Container\\' =>
91
  array (
92
  0 => __DIR__ . '/..' . '/dhii/containers/src',
93
  ),
94
+ 'Dhii\\Collection\\' =>
95
+ array (
96
+ 0 => __DIR__ . '/..' . '/dhii/collections-interface/src',
97
+ ),
98
  'Composer\\Installers\\' =>
99
  array (
100
  0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
252
  public static function getInitializer(ClassLoader $loader)
253
  {
254
  return \Closure::bind(function () use ($loader) {
255
+ $loader->prefixLengthsPsr4 = ComposerStaticInit01caf726188ce4a8c830c9ea3872c0fc::$prefixLengthsPsr4;
256
+ $loader->prefixDirsPsr4 = ComposerStaticInit01caf726188ce4a8c830c9ea3872c0fc::$prefixDirsPsr4;
257
+ $loader->classMap = ComposerStaticInit01caf726188ce4a8c830c9ea3872c0fc::$classMap;
258
 
259
  }, null, ClassLoader::class);
260
  }
vendor/composer/installed.json CHANGED
@@ -171,40 +171,93 @@
171
  "description": "Promoting container interoperability through standard service providers",
172
  "homepage": "https://github.com/container-interop/service-provider"
173
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
174
  {
175
  "name": "dhii/containers",
176
- "version": "dev-develop",
177
- "version_normalized": "dev-develop",
178
  "source": {
179
  "type": "git",
180
  "url": "https://github.com/Dhii/containers.git",
181
- "reference": "3dd6e407e86cf19f7a40989eeb802cf751082902"
182
  },
183
  "dist": {
184
  "type": "zip",
185
- "url": "https://api.github.com/repos/Dhii/containers/zipball/3dd6e407e86cf19f7a40989eeb802cf751082902",
186
- "reference": "3dd6e407e86cf19f7a40989eeb802cf751082902",
187
  "shasum": ""
188
  },
189
  "require": {
190
  "container-interop/service-provider": "^0.4",
191
- "dhii/data-container-interface": "^0.2",
192
- "php": "^7.0 | ^8.0"
193
  },
194
  "require-dev": {
195
  "gmazzap/andrew": "^1.1",
196
- "phpunit/phpunit": "^6",
197
  "psr/container": "^1.0",
198
  "slevomat/coding-standard": "~4.0"
199
  },
200
- "time": "2020-03-18T17:36:56+00:00",
201
  "type": "library",
202
  "extra": {
203
  "branch-alias": {
204
  "dev-develop": "0.1.x-dev"
205
  }
206
  },
207
- "installation-source": "source",
208
  "autoload": {
209
  "psr-4": {
210
  "Dhii\\Container\\": "src/"
@@ -283,6 +336,50 @@
283
  "description": "Interfaces for working with data containers",
284
  "abandoned": "dhii/collections-interface"
285
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  {
287
  "name": "dhii/exception-interface",
288
  "version": "v0.2",
@@ -387,35 +484,41 @@
387
  },
388
  {
389
  "name": "dhii/module-interface",
390
- "version": "dev-develop",
391
- "version_normalized": "dev-develop",
392
  "source": {
393
  "type": "git",
394
  "url": "https://github.com/Dhii/module-interface.git",
395
- "reference": "cb2eaaac0fa4bd4a82bc2b38c10e3a794ce32d52"
396
  },
397
  "dist": {
398
  "type": "zip",
399
- "url": "https://api.github.com/repos/Dhii/module-interface/zipball/cb2eaaac0fa4bd4a82bc2b38c10e3a794ce32d52",
400
- "reference": "cb2eaaac0fa4bd4a82bc2b38c10e3a794ce32d52",
401
  "shasum": ""
402
  },
403
  "require": {
404
- "container-interop/service-provider": "^0.4",
405
- "php": "^7.1",
406
- "psr/container": "^1.0"
 
407
  },
408
  "require-dev": {
409
- "phpunit/phpunit": "^6.0 | ^7.0"
 
 
 
 
 
410
  },
411
- "time": "2020-04-10T14:27:05+00:00",
412
  "type": "library",
413
  "extra": {
414
  "branch-alias": {
415
- "dev-develop": "0.2.x-dev"
416
  }
417
  },
418
- "installation-source": "source",
419
  "autoload": {
420
  "psr-4": {
421
  "Dhii\\Modular\\Module\\": "src"
@@ -679,91 +782,34 @@
679
  ]
680
  },
681
  {
682
- "name": "psr/simple-cache",
683
- "version": "1.0.1",
684
- "version_normalized": "1.0.1.0",
685
  "source": {
686
  "type": "git",
687
- "url": "https://github.com/php-fig/simple-cache.git",
688
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
689
  },
690
  "dist": {
691
  "type": "zip",
692
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
693
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
694
  "shasum": ""
695
  },
696
  "require": {
697
- "php": ">=5.3.0"
698
- },
699
- "time": "2017-10-23T01:57:42+00:00",
700
- "type": "library",
701
- "extra": {
702
- "branch-alias": {
703
- "dev-master": "1.0.x-dev"
704
- }
705
- },
706
- "installation-source": "dist",
707
- "autoload": {
708
- "psr-4": {
709
- "Psr\\SimpleCache\\": "src/"
710
- }
711
- },
712
- "notification-url": "https://packagist.org/downloads/",
713
- "license": [
714
- "MIT"
715
- ],
716
- "authors": [
717
- {
718
- "name": "PHP-FIG",
719
- "homepage": "http://www.php-fig.org/"
720
- }
721
- ],
722
- "description": "Common interfaces for simple caching",
723
- "keywords": [
724
- "cache",
725
- "caching",
726
- "psr",
727
- "psr-16",
728
- "simple-cache"
729
- ]
730
- },
731
- {
732
- "name": "wp-oop/transient-cache",
733
- "version": "v0.1.0-alpha3",
734
- "version_normalized": "0.1.0.0-alpha3",
735
- "source": {
736
- "type": "git",
737
- "url": "https://github.com/wp-oop/transient-cache.git",
738
- "reference": "9eb92e378ad82b29d9d597bc4f41734a57502291"
739
- },
740
- "dist": {
741
- "type": "zip",
742
- "url": "https://api.github.com/repos/wp-oop/transient-cache/zipball/9eb92e378ad82b29d9d597bc4f41734a57502291",
743
- "reference": "9eb92e378ad82b29d9d597bc4f41734a57502291",
744
- "shasum": ""
745
- },
746
- "require": {
747
- "php": "^7.1",
748
- "psr/simple-cache": "^1.0"
749
  },
750
  "require-dev": {
751
- "brain/monkey": "^2.3",
752
- "johnpbloch/wordpress-core": "^5.0",
753
- "phpunit/phpunit": "^7.1"
754
  },
755
- "time": "2020-07-08T10:18:00+00:00",
756
  "type": "library",
757
- "extra": {
758
- "branch-alias": {
759
- "dev-develop": "0.1.x-dev"
760
- }
761
- },
762
  "installation-source": "dist",
763
  "autoload": {
764
- "psr-4": {
765
- "WpOop\\TransientCache\\": "src"
766
- }
767
  },
768
  "notification-url": "https://packagist.org/downloads/",
769
  "license": [
@@ -771,11 +817,10 @@
771
  ],
772
  "authors": [
773
  {
774
- "name": "Anton Ukhanev",
775
- "email": "xedin.unknown@gmail.com",
776
- "role": "Developer"
777
  }
778
  ],
779
- "description": "A PSR-16 wrapper for WP transients."
780
  }
781
  ]
171
  "description": "Promoting container interoperability through standard service providers",
172
  "homepage": "https://github.com/container-interop/service-provider"
173
  },
174
+ {
175
+ "name": "dhii/collections-interface",
176
+ "version": "v0.3.0-alpha2",
177
+ "version_normalized": "0.3.0.0-alpha2",
178
+ "source": {
179
+ "type": "git",
180
+ "url": "https://github.com/Dhii/collections-interface.git",
181
+ "reference": "0fa5a14c407995cb0b9634ee42f127a91f24aafc"
182
+ },
183
+ "dist": {
184
+ "type": "zip",
185
+ "url": "https://api.github.com/repos/Dhii/collections-interface/zipball/0fa5a14c407995cb0b9634ee42f127a91f24aafc",
186
+ "reference": "0fa5a14c407995cb0b9634ee42f127a91f24aafc",
187
+ "shasum": ""
188
+ },
189
+ "require": {
190
+ "php": "^7.1",
191
+ "psr/container": "^1.0"
192
+ },
193
+ "require-dev": {
194
+ "phpunit/phpunit": "^7.0 | ^8.0",
195
+ "slevomat/coding-standard": "^6.0",
196
+ "vimeo/psalm": "^3.0"
197
+ },
198
+ "time": "2020-10-13T08:27:37+00:00",
199
+ "type": "library",
200
+ "extra": {
201
+ "branch-alias": {
202
+ "dev-develop": "0.3.x-dev"
203
+ }
204
+ },
205
+ "installation-source": "dist",
206
+ "autoload": {
207
+ "psr-4": {
208
+ "Dhii\\Collection\\": "src"
209
+ }
210
+ },
211
+ "notification-url": "https://packagist.org/downloads/",
212
+ "license": [
213
+ "MIT"
214
+ ],
215
+ "authors": [
216
+ {
217
+ "name": "Dhii Team",
218
+ "email": "development@dhii.co"
219
+ },
220
+ {
221
+ "name": "Anton Ukhanev",
222
+ "email": "xedin.unknown@gmail.com"
223
+ }
224
+ ],
225
+ "description": "A highly ISP-compliant collection of interfaces that represent maps and lists."
226
+ },
227
  {
228
  "name": "dhii/containers",
229
+ "version": "v0.1.0-alpha1",
230
+ "version_normalized": "0.1.0.0-alpha1",
231
  "source": {
232
  "type": "git",
233
  "url": "https://github.com/Dhii/containers.git",
234
+ "reference": "73eed5422e106006c81ca1fa8b7213c6be33efbc"
235
  },
236
  "dist": {
237
  "type": "zip",
238
+ "url": "https://api.github.com/repos/Dhii/containers/zipball/73eed5422e106006c81ca1fa8b7213c6be33efbc",
239
+ "reference": "73eed5422e106006c81ca1fa8b7213c6be33efbc",
240
  "shasum": ""
241
  },
242
  "require": {
243
  "container-interop/service-provider": "^0.4",
244
+ "dhii/collections-interface": "^0.3.0-alpha1",
245
+ "php": "^7.1 | ^8.0"
246
  },
247
  "require-dev": {
248
  "gmazzap/andrew": "^1.1",
249
+ "phpunit/phpunit": "^7.0",
250
  "psr/container": "^1.0",
251
  "slevomat/coding-standard": "~4.0"
252
  },
253
+ "time": "2020-09-14T18:27:47+00:00",
254
  "type": "library",
255
  "extra": {
256
  "branch-alias": {
257
  "dev-develop": "0.1.x-dev"
258
  }
259
  },
260
+ "installation-source": "dist",
261
  "autoload": {
262
  "psr-4": {
263
  "Dhii\\Container\\": "src/"
336
  "description": "Interfaces for working with data containers",
337
  "abandoned": "dhii/collections-interface"
338
  },
339
+ {
340
+ "name": "dhii/data-key-value-aware-interface",
341
+ "version": "v0.1",
342
+ "version_normalized": "0.1.0.0",
343
+ "source": {
344
+ "type": "git",
345
+ "url": "https://github.com/Dhii/data-key-value-aware-interface.git",
346
+ "reference": "220232bc9040fab78a6c039f5a4a5f9542317bdc"
347
+ },
348
+ "dist": {
349
+ "type": "zip",
350
+ "url": "https://api.github.com/repos/Dhii/data-key-value-aware-interface/zipball/220232bc9040fab78a6c039f5a4a5f9542317bdc",
351
+ "reference": "220232bc9040fab78a6c039f5a4a5f9542317bdc",
352
+ "shasum": ""
353
+ },
354
+ "require": {
355
+ "php": "^5.3 | ^7.0"
356
+ },
357
+ "require-dev": {
358
+ "codeclimate/php-test-reporter": "<=0.3.2",
359
+ "dhii/php-cs-fixer-config": "dev-php-5.3",
360
+ "phpunit/phpunit": "4.*",
361
+ "ptrofimov/xpmock": "^1.1"
362
+ },
363
+ "time": "2017-01-21T17:35:30+00:00",
364
+ "type": "library",
365
+ "installation-source": "dist",
366
+ "autoload": {
367
+ "psr-4": {
368
+ "Dhii\\Data\\": "src/"
369
+ }
370
+ },
371
+ "notification-url": "https://packagist.org/downloads/",
372
+ "license": [
373
+ "MIT"
374
+ ],
375
+ "authors": [
376
+ {
377
+ "name": "Dhii Team",
378
+ "email": "development@dhii.co"
379
+ }
380
+ ],
381
+ "description": "Interfaces that aim to increase interoperability of value objects"
382
+ },
383
  {
384
  "name": "dhii/exception-interface",
385
  "version": "v0.2",
484
  },
485
  {
486
  "name": "dhii/module-interface",
487
+ "version": "v0.1",
488
+ "version_normalized": "0.1.0.0",
489
  "source": {
490
  "type": "git",
491
  "url": "https://github.com/Dhii/module-interface.git",
492
+ "reference": "a4271f2040e54f81cb7c4d5b3f18cb4a7532c277"
493
  },
494
  "dist": {
495
  "type": "zip",
496
+ "url": "https://api.github.com/repos/Dhii/module-interface/zipball/a4271f2040e54f81cb7c4d5b3f18cb4a7532c277",
497
+ "reference": "a4271f2040e54f81cb7c4d5b3f18cb4a7532c277",
498
  "shasum": ""
499
  },
500
  "require": {
501
+ "dhii/data-key-value-aware-interface": "^0.1",
502
+ "dhii/exception-interface": "^0.1 | ^0.2",
503
+ "dhii/factory-interface": "^0.1-alpha1",
504
+ "php": "^5.3 | ^7.0"
505
  },
506
  "require-dev": {
507
+ "codeclimate/php-test-reporter": "<=0.3.2",
508
+ "dhii/php-cs-fixer-config": "dev-php-5.3",
509
+ "dhii/stringable-interface": "^0.1",
510
+ "phpunit/phpunit": "^4.8",
511
+ "psr/container": "^1.0",
512
+ "ptrofimov/xpmock": "^1.1"
513
  },
514
+ "time": "2019-11-05T18:25:12+00:00",
515
  "type": "library",
516
  "extra": {
517
  "branch-alias": {
518
+ "dev-develop": "0.1.x-dev"
519
  }
520
  },
521
+ "installation-source": "dist",
522
  "autoload": {
523
  "psr-4": {
524
  "Dhii\\Modular\\Module\\": "src"
782
  ]
783
  },
784
  {
785
+ "name": "ralouphie/getallheaders",
786
+ "version": "3.0.3",
787
+ "version_normalized": "3.0.3.0",
788
  "source": {
789
  "type": "git",
790
+ "url": "https://github.com/ralouphie/getallheaders.git",
791
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
792
  },
793
  "dist": {
794
  "type": "zip",
795
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
796
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
797
  "shasum": ""
798
  },
799
  "require": {
800
+ "php": ">=5.6"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
801
  },
802
  "require-dev": {
803
+ "php-coveralls/php-coveralls": "^2.1",
804
+ "phpunit/phpunit": "^5 || ^6.5"
 
805
  },
806
+ "time": "2019-03-08T08:55:37+00:00",
807
  "type": "library",
 
 
 
 
 
808
  "installation-source": "dist",
809
  "autoload": {
810
+ "files": [
811
+ "src/getallheaders.php"
812
+ ]
813
  },
814
  "notification-url": "https://packagist.org/downloads/",
815
  "license": [
817
  ],
818
  "authors": [
819
  {
820
+ "name": "Ralph Khattar",
821
+ "email": "ralph.khattar@gmail.com"
 
822
  }
823
  ],
824
+ "description": "A polyfill for getallheaders."
825
  }
826
  ]
vendor/dhii/collections-interface/.env.example ADDED
@@ -0,0 +1,2 @@
 
 
1
+ BASE_PATH=./
2
+ PROJECT_NAME=dhii_collections-interface
vendor/dhii/collections-interface/CHANGELOG.md ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Change log
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
+ and this project adheres to [Semantic Versioning](http://semver.org/).
6
+
7
+ ## [[*next-version*]] - YYYY-MM-DD
8
+
9
+ ## [0.3.0-alpha2] - 2020-10-13
10
+ ### Added
11
+ - `ClearableContainerInterface`.
12
+
13
+ ## [0.3.0-alpha1] - 2020-09-09
14
+ ### Removed
15
+ - Support for PHP 5.x.
16
+ - Obsolete dependencies, scripts and other info.
17
+ - `AddCapableInterface`, `SetCapableInterface`, and their descendants.
18
+
19
+ ### Changed
20
+ `MapFactoryInterface` now extends a new interface, leading to signature change.
21
+
22
+ ### Added
23
+ - Docker configuration.
24
+ - `ContainerFactoryInterface`.
25
+ - `SetFactoryInterface`.
26
+ - `HasCapableInteface` for ISP.
27
+ - `ContainerCapableInterface` as a bridge between `HasCapableInterface`
28
+ and PSR-11.
29
+ - `WritableMapInterface` and `WritableSetInterface`.
30
+ - `MutableContainerInterface`.
31
+ - `MutableContainerInterface#unset()` can now throw `NotFoundExceptionInterface`
32
+ when unsetting non-existing key.
33
+
34
+ ## [0.2] - 2019-05-10
35
+ Stable release.
36
+
37
+ ## [0.2-alpha5] - 2018-04-26
38
+ ### Added
39
+ - `MapFactoryInterface`.
40
+
41
+ ## [0.2-alpha4] - 2018-04-09
42
+ ### Fixed
43
+ - Problem #15, where `AddCapableInterface#$add()` didn't accept the item.
44
+
45
+ ## [0.2-alpha3] - 2018-04-06
46
+ ### Changed
47
+ - `CountableMapInterface` no longer extends `CountableSetInterface`, but still extends `CountableListInterface`.
48
+
49
+ ### Added
50
+ - `SetCapableMapInterface`.
51
+
52
+ ## [0.2-alpha2] - 2018-04-06
53
+ ### Changed
54
+ - `SetInterface` no longer extends `HasCapableInterface`, but extends new `HasItemCapableInterface`
55
+ - `MapInterface` no longer extends `SetInterface`, but is still traversable.
56
+
57
+ ### Added
58
+ - `HasItemCapableInterface`.
59
+ - `AddCapableInterface`.
60
+ - `AddCapableSetInterface`.
61
+ - `SetCapableInterface`.
62
+
63
+ ## [0.2-alpha1] - 2018-04-06
64
+ Initial version.
vendor/{wp-oop/transient-cache → dhii/collections-interface}/LICENSE RENAMED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2020 Inpsyde
2
 
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
  of this software and associated documentation files (the "Software"), to deal
1
+ Copyright (c) 2018 Dhii
2
 
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
  of this software and associated documentation files (the "Software"), to deal
vendor/dhii/collections-interface/README.md ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Dhii - Collections Interface
2
+
3
+ [![Build Status](https://travis-ci.org/Dhii/collections-interface.svg?branch=develop)](https://travis-ci.org/Dhii/collections-interface)
4
+ [![Code Climate](https://codeclimate.com/github/Dhii/collections-interface/badges/gpa.svg)](https://codeclimate.com/github/Dhii/collections-interface)
5
+ [![Test Coverage](https://codeclimate.com/github/Dhii/collections-interface/badges/coverage.svg)](https://codeclimate.com/github/Dhii/collections-interface/coverage)
6
+ [![Latest Stable Version](https://poser.pugx.org/dhii/collections-interface/version)](https://packagist.org/packages/dhii/collections-interface)
7
+
8
+ A highly [ISP][ISP]-compliant collection of interfaces that represent collections.
9
+
10
+ ## Interfaces
11
+ - [`CountableListInterface`][CountableListInterface]: A list that can be iterated and counted.
12
+ - [`HasItemCapableInterface`][HasItemCapableInterface]: Something that can be checked for the existence of an item.
13
+ - [`SetInterface`][SetInterface]: A list that can be checked for a value.
14
+ - [`CountableSetInterface`][CountableSetInterface]: A set that can be counted.
15
+ - [`MapInterface`][MapInterface]: An iterable container.
16
+ - [`CountableMapInterface`][CountableMapInterface]: A countable map.
17
+ - [`ContainerFactoryInterface`][]: A factory of `ContainerInterface` objects.
18
+ - [`MapFactoryInterface`][]: A factory of `MapInterface` objects.
19
+ - [`HasCapableInterface`][]: Something that can check for a given key.
20
+ - [`ContainerInterface`][]: A container implementing `HasCapableInterface`.
21
+ - [`WritableContainerInterface`][]: A container that can have mappings added and removed.
22
+ - [`WritableMapInterface`][]: A map that can have mappings added and removed.
23
+ - [`WritableSetInterface`][]: A set that can have items added and removed.
24
+ - [`ClearableContainerInterface`][]: A container that can have its members cleared.
25
+
26
+
27
+ [Dhii]: https://github.com/Dhii/dhii
28
+ [ISP]: https://en.wikipedia.org/wiki/Interface_segregation_principle
29
+
30
+ [CountableListInterface]: src/CountableListInterface.php
31
+ [SetInterface]: src/SetInterface.php
32
+ [CountableSetInterface]: src/CountableSetInterface.php
33
+ [MapInterface]: src/MapInterface.php
34
+ [CountableMapInterface]: src/CountableMapInterface.php
35
+ [HasItemCapableInterface]: src/HasItemCapableInterface.php
36
+ [`MapFactoryInterface`]: src/MapFactoryInterface.php
37
+ [`ContainerFactoryInterface`]: src/ContainerFactoryInterface.php
38
+ [`HasCapableInterface`]: src/HasCapableInterface.php
39
+ [`ContainerInterface`]: src/ContainerInterface.php
40
+ [`WritableContainerInterface`]: src/WritableContainerInterface.php
41
+ [`WritableMapInterface`]: src/WritableMapInterface.php
42
+ [`WritableSetInterface`]: src/WritableSetInterface.php
43
+ [`ClearableContainerInterface`]: src/ClearableContainerInterface.php
vendor/dhii/collections-interface/composer.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "dhii/collections-interface",
3
+ "description": "A highly ISP-compliant collection of interfaces that represent maps and lists.",
4
+ "type": "library",
5
+ "license": "MIT",
6
+ "authors": [
7
+ {
8
+ "name": "Dhii Team",
9
+ "email": "development@dhii.co"
10
+ },
11
+ {
12
+ "name": "Anton Ukhanev",
13
+ "email": "xedin.unknown@gmail.com"
14
+ }
15
+ ],
16
+ "minimum-stability": "dev",
17
+ "prefer-stable": true,
18
+ "require": {
19
+ "php": "^7.1",
20
+ "psr/container": "^1.0"
21
+ },
22
+ "require-dev": {
23
+ "phpunit/phpunit": "^7.0 | ^8.0",
24
+ "slevomat/coding-standard": "^6.0",
25
+ "vimeo/psalm": "^3.0"
26
+ },
27
+ "autoload": {
28
+ "psr-4": {
29
+ "Dhii\\Collection\\": "src"
30
+ }
31
+ },
32
+ "autoload-dev": {
33
+ "psr-4": {
34
+ "Dhii\\Collection\\UnitTest\\": "test/unit"
35
+ }
36
+ },
37
+ "extra": {
38
+ "branch-alias": {
39
+ "dev-develop": "0.3.x-dev"
40
+ }
41
+ }
42
+ }
vendor/dhii/{module-interface → collections-interface}/docker-compose.yml RENAMED
@@ -1,8 +1,13 @@
1
- version: '3.1'
2
  services:
3
  php:
 
4
  build:
5
  context: docker
6
  dockerfile: Dockerfile_php
7
  volumes:
8
  - ${BASE_PATH}:/srv/
 
 
 
 
1
+ version: '3.2'
2
  services:
3
  php:
4
+ container_name: "${PROJECT_NAME}_php"
5
  build:
6
  context: docker
7
  dockerfile: Dockerfile_php
8
  volumes:
9
  - ${BASE_PATH}:/srv/
10
+ - psalm_cache:/var/tmp/psalm
11
+
12
+ volumes:
13
+ psalm_cache:
vendor/dhii/{module-interface → collections-interface}/docker/Dockerfile_php RENAMED
@@ -3,4 +3,4 @@ FROM dockette/php:7.1
3
  RUN apt-get update \
4
  && apt-get -y install software-properties-common dirmngr apt-transport-https lsb-release ca-certificates \
5
  && add-apt-repository -y ppa:ondrej/php \
6
- && apt-get install -y php7.1-xdebug
3
  RUN apt-get update \
4
  && apt-get -y install software-properties-common dirmngr apt-transport-https lsb-release ca-certificates \
5
  && add-apt-repository -y ppa:ondrej/php \
6
+ && apt-get install -y php7.1-xdebug
vendor/dhii/collections-interface/phpcs.xml.dist ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <ruleset name="dhii/collection-interface"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/squizlabs/PHP_CodeSniffer/master/phpcs.xsd">
5
+
6
+ <file>./src</file>
7
+
8
+
9
+ <config name="installed_paths" value="../../slevomat/coding-standard"/>
10
+
11
+ <rule ref="PSR12"/>
12
+ <rule ref="SlevomatCodingStandard.TypeHints.ParameterTypeHint"/>
13
+ <rule ref="SlevomatCodingStandard.TypeHints.PropertyTypeHint"/>
14
+ <rule ref="SlevomatCodingStandard.TypeHints.ReturnTypeHint"/>
15
+ <rule ref="SlevomatCodingStandard.TypeHints.UselessConstantTypeHint"/>
16
+ <rule ref="SlevomatCodingStandard.TypeHints.DeclareStrictTypes">
17
+ <properties>
18
+ <property name="newlinesCountBetweenOpenTagAndDeclare" value="2"/>
19
+ <property name="newlinesCountAfterDeclare" value="2"/>
20
+ <property name="spacesCountAroundEqualsSign" value="0"/>
21
+ </properties>
22
+ </rule>
23
+ <rule ref="SlevomatCodingStandard.Classes.ClassStructure">
24
+ <properties>
25
+ <property name="groups" type="array">
26
+ <element value="uses"/>
27
+
28
+ <!-- Public constants are first but you don't care about the order of protected or private constants -->
29
+ <element value="public constants"/>
30
+ <element value="constants"/>
31
+
32
+ <!-- You don't care about the order among the properties. The same can be done with "properties" shortcut -->
33
+ <element value="public properties, protected properties, private properties, properties"/>
34
+
35
+ <!-- Constructor is first, then all public methods, then protected/private methods and magic methods are last -->
36
+ <element value="constructor"/>
37
+ <element value="all public methods"/>
38
+ <element value="methods"/>
39
+ <element value="magic methods"/>
40
+ </property>
41
+ </properties>
42
+ </rule>
43
+ <rule ref="SlevomatCodingStandard.ControlStructures.DisallowContinueWithoutIntegerOperandInSwitch"/>
44
+ <rule ref="SlevomatCodingStandard.ControlStructures.RequireNullCoalesceOperator"/>
45
+ <rule ref="SlevomatCodingStandard.PHP.DisallowDirectMagicInvokeCall"/>
46
+ <rule ref="SlevomatCodingStandard.Operators.DisallowEqualOperators"/>
47
+ <rule ref="SlevomatCodingStandard.Operators.RequireCombinedAssignmentOperator"/>
48
+ </ruleset>
vendor/dhii/collections-interface/phpunit.xml.dist ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <phpunit
3
+ colors="true"
4
+ bootstrap="test/bootstrap.php"
5
+ >
6
+ <php>
7
+ <ini name="display_errors" value="1" />
8
+ <ini name="display_startup_errors" value="1" />
9
+ </php>
10
+ <testsuites>
11
+ <testsuite name="unit">
12
+ <directory>./test/unit/</directory>
13
+ </testsuite>
14
+ <testsuite name="functional">
15
+ <directory>./test/functional/</directory>
16
+ </testsuite>
17
+ </testsuites>
18
+ <filter>
19
+ <whitelist processUncoveredFilesFromWhitelist="true">
20
+ <directory suffix=".php">src</directory>
21
+ </whitelist>
22
+ </filter>
23
+ </phpunit>
vendor/dhii/collections-interface/psalm.xml.dist ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <psalm
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xmlns="https://getpsalm.org/schema/config"
5
+ useDocblockTypes="true"
6
+ errorLevel="1"
7
+ strictBinaryOperands="false"
8
+ rememberPropertyAssignmentsAfterCall="true"
9
+ checkForThrowsDocblock="false"
10
+ throwExceptionOnError="0"
11
+ findUnusedCode="true"
12
+ ensureArrayStringOffsetsExist="true"
13
+ ensureArrayIntOffsetsExist="false"
14
+ xsi:noNamespaceSchemaLocation="https://getpsalm.org/schema/config"
15
+ cacheDirectory="/var/tmp/psalm"
16
+ >
17
+ <projectFiles>
18
+ <directory name="src"/>
19
+ </projectFiles>
20
+
21
+ <issueHandlers>
22
+ <InvalidThrow errorLevel="suppress"></InvalidThrow>
23
+ <UnusedClass errorLevel="suppress"></UnusedClass>
24
+ </issueHandlers>
25
+ </psalm>
vendor/dhii/collections-interface/src/ClearableContainerInterface.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Psr\Container\ContainerExceptionInterface;
8
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
9
+
10
+ interface ClearableContainerInterface extends PsrContainerInterface
11
+ {
12
+ /**
13
+ * Removes all members from this container.
14
+ *
15
+ * @throws ContainerExceptionInterface If problem removing.
16
+ */
17
+ public function clear(): void;
18
+ }
vendor/dhii/collections-interface/src/ContainerFactoryInterface.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Exception;
8
+ use Psr\Container\ContainerInterface;
9
+
10
+ /**
11
+ * Creates containers based on data maps.
12
+ */
13
+ interface ContainerFactoryInterface
14
+ {
15
+ /**
16
+ * Creates a container based on data.
17
+ *
18
+ * @param array<string, mixed> $data The data for the container.
19
+ *
20
+ * @return ContainerInterface The new container.
21
+ *
22
+ * @throws Exception If problem creating.
23
+ *
24
+ * @psalm-suppress PossiblyUnusedMethod
25
+ */
26
+ public function createContainerFromArray(array $data): ContainerInterface;
27
+ }
vendor/dhii/collections-interface/src/ContainerInterface.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Psr\Container\ContainerInterface as BaseContainerInterface;
8
+
9
+ /**
10
+ * Something that can retrieve and determine the existence of a value by key.
11
+ */
12
+ interface ContainerInterface extends
13
+ BaseContainerInterface,
14
+ HasCapableInterface
15
+ {
16
+ }
vendor/dhii/collections-interface/src/CountableListInterface.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Traversable;
8
+ use Countable;
9
+
10
+ /**
11
+ * A list that can be counted.
12
+ *
13
+ * @since 0.2
14
+ */
15
+ interface CountableListInterface extends
16
+ /* @since 0.2 */
17
+ Traversable,
18
+ /* @since 0.2 */
19
+ Countable
20
+ {
21
+ }
vendor/dhii/collections-interface/src/CountableMapInterface.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ /**
8
+ * A countable map.
9
+ *
10
+ * @since 0.2
11
+ *
12
+ * @psalm-suppress UnusedClass
13
+ */
14
+ interface CountableMapInterface extends
15
+ /* @since 0.2 */
16
+ CountableListInterface,
17
+ /* @since 0.2 */
18
+ MapInterface
19
+ {
20
+
21
+ }
vendor/dhii/collections-interface/src/CountableSetInterface.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ /**
8
+ * A countable list that can be checked for a key.
9
+ *
10
+ * @since 0.2
11
+ *
12
+ * @psalm-suppress UnusedClass
13
+ */
14
+ interface CountableSetInterface extends
15
+ /* @since 0.2 */
16
+ CountableListInterface,
17
+ /* @since 0.2 */
18
+ SetInterface
19
+ {
20
+
21
+ }
vendor/dhii/collections-interface/src/HasCapableInterface.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Psr\Container\ContainerExceptionInterface;
8
+
9
+ /**
10
+ * Something that can determine the existence of a key.
11
+ */
12
+ interface HasCapableInterface
13
+ {
14
+ /**
15
+ * Determines whether this instance has the specified key.
16
+ *
17
+ * @param string $key The key to check for.
18
+ *
19
+ * @return bool True if the key exists; false otherwise.
20
+ *
21
+ * @throws ContainerExceptionInterface If problem determining.
22
+ *
23
+ * @psalm-suppress PossiblyUnusedMethod
24
+ * @psalm-suppress InvalidThrow
25
+ * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint
26
+ * @phpcsSuppress SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint
27
+ */
28
+ public function has($key);
29
+ }
vendor/dhii/collections-interface/src/HasItemCapableInterface.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use RuntimeException;
8
+
9
+ /**
10
+ * Something that can check for the existence of an item.
11
+ *
12
+ * @since 0.2
13
+ */
14
+ interface HasItemCapableInterface
15
+ {
16
+ /**
17
+ * Checks whether this instance has the given item.
18
+ *
19
+ * @since 0.2
20
+ *
21
+ * @param mixed $item The item to check for.
22
+ *
23
+ * @return bool True if the item exists; false otherwise.
24
+ *
25
+ * @throws RuntimeException If the existence of the item could not be verified.
26
+ *
27
+ * @psalm-suppress PossiblyUnusedMethod
28
+ */
29
+ public function hasItem($item): bool;
30
+ }
vendor/dhii/collections-interface/src/MapFactoryInterface.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Exception;
8
+ use Psr\Container\ContainerInterface as BaseContainerInterface;
9
+
10
+ /**
11
+ * A factory that can create maps.
12
+ *
13
+ * @since 0.2
14
+ */
15
+ interface MapFactoryInterface extends ContainerFactoryInterface
16
+ {
17
+ /**
18
+ * Creates a map based on data in an array.
19
+ *
20
+ * @param array<string, mixed> $data The data to base the map on.
21
+ *
22
+ * @return MapInterface The new map.
23
+ *
24
+ * @throws Exception If problem creating.
25
+ */
26
+ public function createContainerFromArray(array $data): BaseContainerInterface;
27
+ }
vendor/dhii/collections-interface/src/MapInterface.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Traversable;
8
+
9
+ /**
10
+ * A traversable container.
11
+ *
12
+ * @since 0.2
13
+ */
14
+ interface MapInterface extends
15
+ /* @since 0.2 */
16
+ Traversable,
17
+ /* @since 0.2 */
18
+ ContainerInterface
19
+ {
20
+
21
+ }
vendor/dhii/collections-interface/src/MutableContainerInterface.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Psr\Container\ContainerExceptionInterface;
8
+ use Psr\Container\NotFoundExceptionInterface;
9
+
10
+ /**
11
+ * A container that can have mappings added and removed.
12
+ *
13
+ * @psalm-suppress UnusedClass
14
+ */
15
+ interface MutableContainerInterface extends ContainerInterface
16
+ {
17
+ /**
18
+ * Maps the given value to the specified key.
19
+ *
20
+ * @since [*next-version*]
21
+ *
22
+ * @param string $key The key to map the value to.
23
+ * @param mixed $value The value to map to the key.
24
+ *
25
+ * @throws ContainerExceptionInterface If problem mapping.
26
+ * @psalm-suppress InvalidThrow
27
+ */
28
+ public function set(string $key, $value): void;
29
+
30
+ /**
31
+ * Unmaps the value from the specified key.
32
+ *
33
+ * @since [*next-version*]
34
+ *
35
+ * @param string $key The key to unmap the value from.
36
+ *
37
+ * @throws NotFoundExceptionInterface If key not found.
38
+ * @throws ContainerExceptionInterface If problem unmapping.
39
+ * @psalm-suppress InvalidThrow
40
+ */
41
+ public function unset(string $key): void;
42
+ }
vendor/dhii/collections-interface/src/SetFactoryInterface.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Exception;
8
+
9
+ /**
10
+ * A factory that can create sets.
11
+ *
12
+ * @since [*next-version*]
13
+ */
14
+ interface SetFactoryInterface
15
+ {
16
+ /**
17
+ * Creates a set based on data in a list.
18
+ *
19
+ * @since [*next-version*]
20
+ *
21
+ * @param array<mixed> $list The list to base the set on.
22
+ *
23
+ * @return SetInterface The new set.
24
+ *
25
+ * @throws Exception If problem creating.
26
+ *
27
+ * @psalm-suppress PossiblyUnusedMethod
28
+ */
29
+ public function createSetFromList(array $list): SetInterface;
30
+ }
vendor/dhii/collections-interface/src/SetInterface.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Traversable;
8
+
9
+ /**
10
+ * A list that can be checked for a key.
11
+ *
12
+ * @since 0.2
13
+ */
14
+ interface SetInterface extends
15
+ /* @since 0.2 */
16
+ Traversable,
17
+ /* @since 0.2 */
18
+ HasItemCapableInterface
19
+ {
20
+
21
+ }
vendor/dhii/collections-interface/src/WritableContainerFactoryInterface.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Psr\Container\ContainerInterface;
8
+
9
+ /**
10
+ * A map that can create a writable container.
11
+ */
12
+ interface WritableContainerFactoryInterface extends ContainerFactoryInterface
13
+ {
14
+ /**
15
+ * @inheritDoc
16
+ *
17
+ * @return WritableContainerInterface The new container.
18
+ */
19
+ public function createContainerFromArray(array $data): ContainerInterface;
20
+ }
vendor/dhii/collections-interface/src/WritableContainerInterface.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Exception;
8
+
9
+ /**
10
+ * A container that can be written to.
11
+ */
12
+ interface WritableContainerInterface extends ContainerInterface
13
+ {
14
+ /**
15
+ * Creates a new instance with the specified mappings.
16
+ *
17
+ * @since [*next-version*]
18
+ *
19
+ * @param array<string, mixed> $mappings A map of keys to values.
20
+ *
21
+ * @return static A new instance of this class with only the specified key-value mappings.
22
+ *
23
+ * @throws Exception If problem creating.
24
+ *
25
+ * @psalm-suppress PossiblyUnusedMethod
26
+ */
27
+ public function withMappings(array $mappings): WritableContainerInterface;
28
+
29
+ /**
30
+ * Creates a new instance with the specified mappings added to existing ones.
31
+ *
32
+ * @since [*next-version*]
33
+ *
34
+ * @param array<string, mixed> $mappings A map of keys to values.
35
+ *
36
+ * @return static A new instance of this class with the specified key-value mappings added to existing ones.
37
+ *
38
+ * @throws Exception If problem creating.
39
+ *
40
+ * @psalm-suppress PossiblyUnusedMethod
41
+ */
42
+ public function withAddedMappings(array $mappings): WritableContainerInterface;
43
+
44
+ /**
45
+ * Creates a new instance with the specified keys not present.
46
+ *
47
+ * @since [*next-version*]
48
+ *
49
+ * @param array<string> $keys The keys to exclude.
50
+ *
51
+ * @return static A new instance of this class which does not contain the specified keys.
52
+ *
53
+ * @throws Exception If problem instantiating.
54
+ *
55
+ * @psalm-suppress PossiblyUnusedMethod
56
+ */
57
+ public function withoutKeys(array $keys): WritableContainerInterface;
58
+ }
vendor/dhii/collections-interface/src/WritableMapFactoryInterface.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Psr\Container\ContainerInterface as BaseContainerInterface;
8
+
9
+ /**
10
+ * Creates writable maps.
11
+ *
12
+ * @psalm-suppress UnusedClass
13
+ */
14
+ interface WritableMapFactoryInterface extends WritableContainerFactoryInterface, MapFactoryInterface
15
+ {
16
+ /**
17
+ * @inheritDoc
18
+ *
19
+ * @return WritableMapInterface The new map.
20
+ */
21
+ public function createContainerFromArray(array $data): BaseContainerInterface;
22
+ }
vendor/dhii/collections-interface/src/WritableMapInterface.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ /**
8
+ * A map that can have a value set for a key.
9
+ *
10
+ * @since [*next-version*]
11
+ */
12
+ interface WritableMapInterface extends MapInterface, WritableContainerInterface
13
+ {
14
+
15
+ }
vendor/dhii/collections-interface/src/WritableSetFactoryInterface.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ /**
8
+ * Creates writable sets.
9
+ *
10
+ * @psalm-suppress UnusedClass
11
+ */
12
+ interface WritableSetFactoryInterface extends SetFactoryInterface
13
+ {
14
+ /**
15
+ * @inheritDoc
16
+ *
17
+ * @return WritableSetInterface The new writable set.
18
+ */
19
+ public function createSetFromList(array $list): SetInterface;
20
+ }
vendor/dhii/collections-interface/src/WritableSetInterface.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace Dhii\Collection;
6
+
7
+ use Exception;
8
+
9
+ /**
10
+ * A set that can have items added.
11
+ *
12
+ * @psalm-suppress UnusedClass
13
+ */
14
+ interface WritableSetInterface extends SetInterface
15
+ {
16
+ /**
17
+ * Creates a new instance with the given items only.
18
+ *
19
+ * @param array|mixed[] $items A list of items for the set.
20
+ *
21
+ * @return static A new instance of this class with only the given items.
22
+ *
23
+ * @throws Exception If problem creating.
24
+ *
25
+ * @psalm-suppress PossiblyUnusedMethod
26
+ */
27
+ public function withItems(array $items);
28
+
29
+ /**
30
+ * Creates a new instance with the given items added to existing ones.
31
+ *
32
+ * @param array|mixed[] $items A list of items to add.
33
+ *
34
+ * @return static A new instance of this class with the given items added to existing ones.
35
+ *
36
+ * @throws Exception If problem creating.
37
+ *
38
+ * @psalm-suppress PossiblyUnusedMethod
39
+ */
40
+ public function withAddedItems(array $items): WritableSetInterface;
41
+
42
+ /**
43
+ * Creates a new instance with the given items not present.
44
+ *
45
+ * @param array|mixed[] $items A list of items to exclude.
46
+ *
47
+ * @return static An instance of this class without the given items.
48
+ *
49
+ * @throws Exception If problem creating.
50
+ *
51
+ * @psalm-suppress PossiblyUnusedMethod
52
+ */
53
+ public function withoutItems(array $items): WritableSetInterface;
54
+ }
vendor/dhii/containers/.codeclimate.yml DELETED
@@ -1,21 +0,0 @@
1
- ---
2
- engines:
3
- duplication:
4
- enabled: true
5
- config:
6
- languages:
7
- - php
8
- fixme:
9
- enabled: true
10
- phpmd:
11
- enabled: true
12
- config:
13
- file_extensions:
14
- - php
15
- rulesets: "phpmd.xml"
16
- ratings:
17
- paths:
18
- - "**.inc"
19
- - "**.php"
20
- exclude_paths:
21
- - test/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/.php_cs DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
-
3
- require_once __DIR__.DIRECTORY_SEPARATOR.'vendor/autoload.php';
4
- $config = Dhii\Configuration\PHPCSFixer\Config::create();
5
- $fixers = $config->getFixers();
6
-
7
- $toRemove = array();
8
- foreach ($toRemove as $_fixer) {
9
- if (($removeIndex = array_search($_fixer, $fixers)) === false) {
10
- continue;
11
- }
12
-
13
- unset($fixers[$removeIndex]);
14
- }
15
-
16
- $toAdd = array();
17
- foreach ($toAdd as $_fixer) {
18
- if (($removeIndex = array_search($_fixer, $fixers)) !== false) {
19
- continue;
20
- }
21
-
22
- $fixers[] = $_fixer;
23
- }
24
-
25
- $config->fixers($fixers);
26
- $config->getFinder()->in(__DIR__.DIRECTORY_SEPARATOR.'src');
27
- return $config;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/CHANGELOG.md CHANGED
@@ -5,3 +5,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
 
7
  ## [[*next-version*]] - YYYY-MM-DD
 
 
 
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
 
7
  ## [[*next-version*]] - YYYY-MM-DD
8
+
9
+ ## [0.1.0-alpha1] - 2020-09-14
10
+ Initial release.
vendor/dhii/containers/composer.json CHANGED
@@ -16,13 +16,13 @@
16
  "minimum-stability": "dev",
17
  "prefer-stable": true,
18
  "require": {
19
- "php": "^7.0 | ^8.0",
20
- "dhii/data-container-interface": "^0.2",
21
  "container-interop/service-provider": "^0.4"
22
  },
23
  "require-dev": {
24
  "slevomat/coding-standard": "~4.0",
25
- "phpunit/phpunit": "^6",
26
  "gmazzap/andrew": "^1.1",
27
  "psr/container": "^1.0"
28
  },
16
  "minimum-stability": "dev",
17
  "prefer-stable": true,
18
  "require": {
19
+ "php": "^7.1 | ^8.0",
20
+ "dhii/collections-interface": "^0.3.0-alpha1",
21
  "container-interop/service-provider": "^0.4"
22
  },
23
  "require-dev": {
24
  "slevomat/coding-standard": "~4.0",
25
+ "phpunit/phpunit": "^7.0",
26
  "gmazzap/andrew": "^1.1",
27
  "psr/container": "^1.0"
28
  },
vendor/dhii/containers/docker/Dockerfile_php CHANGED
@@ -1,6 +1,6 @@
1
- FROM dockette/php:7.0
2
 
3
  RUN apt-get update \
4
  && apt-get -y install software-properties-common dirmngr apt-transport-https lsb-release ca-certificates \
5
  && add-apt-repository -y ppa:ondrej/php \
6
- && apt-get install -y php7.0-xdebug
1
+ FROM dockette/php:7.1
2
 
3
  RUN apt-get update \
4
  && apt-get -y install software-properties-common dirmngr apt-transport-https lsb-release ca-certificates \
5
  && add-apt-repository -y ppa:ondrej/php \
6
+ && apt-get install -y php7.1-xdebug
vendor/dhii/containers/phpunit.xml DELETED
@@ -1,35 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <phpunit
3
- colors="true"
4
- bootstrap="test/bootstrap.php"
5
- >
6
- <php>
7
- <ini name="display_errors" value="1" />
8
- <ini name="display_startup_errors" value="1" />
9
- </php>
10
- <testsuites>
11
- <testsuite name="unit">
12
- <directory>./test/unit/</directory>
13
- </testsuite>
14
- <testsuite name="functional">
15
- <directory>./test/functional/</directory>
16
- </testsuite>
17
- </testsuites>
18
- <filter>
19
- <whitelist processUncoveredFilesFromWhitelist="true">
20
- <directory suffix=".php">src</directory>
21
- </whitelist>
22
- </filter>
23
- <logging>
24
- <log type="coverage-html" target="./test/coverage/html" lowUpperBound="35"
25
- highLowerBound="80"/>
26
- <log type="coverage-clover" target="./test/coverage/clover.xml"/>
27
- <log type="coverage-php" target="./test/coverage/serialized"/>
28
- <log type="coverage-text" target="php://stdout" showUncoveredFiles="false"/>
29
- <log type="json" target="./test/log/logfile.json"/>
30
- <log type="tap" target="./test/log/logfile.tap"/>
31
- <log type="junit" target="./test/log/logfile.xml"/>
32
- <log type="testdox-html" target="./test/log/testdox.html"/>
33
- <log type="testdox-text" target="./test/log/testdox.txt"/>
34
- </logging>
35
- </phpunit>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/src/AliasingContainer.php ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Container;
4
+
5
+ use Dhii\Collection\ContainerInterface;
6
+ use Dhii\Container\Util\StringTranslatingTrait;
7
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
8
+ use function array_key_exists;
9
+
10
+ /**
11
+ * A container implementation that wraps around an inner container to alias its keys, so consumers can use the aliases
12
+ * to fetch data from the inner container.
13
+ */
14
+ class AliasingContainer implements ContainerInterface
15
+ {
16
+ /* @since [*next-version*] */
17
+ use StringTranslatingTrait;
18
+
19
+ /**
20
+ * @since [*next-version*]
21
+ *
22
+ * @var PsrContainerInterface
23
+ */
24
+ protected $inner;
25
+
26
+ /**
27
+ * @since [*next-version*]
28
+ *
29
+ * @var array
30
+ */
31
+ protected $aliases;
32
+
33
+ /**
34
+ * Constructor.
35
+ *
36
+ * @since [*next-version*]
37
+ *
38
+ * @param PsrContainerInterface $inner The container whose keys to alias.
39
+ * @param array $aliases A mapping of aliases to their original container key counterparts.
40
+ */
41
+ public function __construct(PsrContainerInterface $inner, array $aliases)
42
+ {
43
+ $this->inner = $inner;
44
+ $this->aliases = $aliases;
45
+ }
46
+
47
+ /**
48
+ * @inheritdoc
49
+ *
50
+ * @since [*next-version*]
51
+ */
52
+ public function get($key)
53
+ {
54
+ return $this->inner->get($this->getInnerKey($key));
55
+ }
56
+
57
+ /**
58
+ * @inheritdoc
59
+ *
60
+ * @since [*next-version*]
61
+ */
62
+ public function has($key)
63
+ {
64
+ return $this->inner->has($this->getInnerKey($key));
65
+ }
66
+
67
+ /**
68
+ * Retrieves the key to use for the inner container.
69
+ *
70
+ * @since [*next-version*]
71
+ *
72
+ * @param string $key The outer key.
73
+ *
74
+ * @return string The inner key.
75
+ */
76
+ protected function getInnerKey($key)
77
+ {
78
+ if (array_key_exists($key, $this->aliases)) {
79
+ return $this->aliases[$key];
80
+ }
81
+
82
+ return $key;
83
+ }
84
+ }
vendor/dhii/containers/src/CachingContainer.php CHANGED
@@ -2,12 +2,12 @@
2
 
3
  namespace Dhii\Container;
4
 
 
5
  use Dhii\Container\Exception\ContainerException;
6
  use Dhii\Container\Exception\NotFoundException;
7
  use Dhii\Container\Util\StringTranslatingTrait;
8
- use Dhii\Data\Container\ContainerInterface;
9
  use Exception;
10
- use Psr\Container\ContainerInterface as BaseContainerInterface;
11
  use Psr\Container\NotFoundExceptionInterface;
12
 
13
  /**
@@ -24,14 +24,14 @@ class CachingContainer implements ContainerInterface
24
  */
25
  protected $cache;
26
  /**
27
- * @var BaseContainerInterface
28
  */
29
  protected $container;
30
 
31
  /**
32
- * @param BaseContainerInterface $container The container to cache entries from.
33
  */
34
- public function __construct(BaseContainerInterface $container)
35
  {
36
  $this->container = $container;
37
  $this->cache = [];
@@ -52,16 +52,13 @@ class CachingContainer implements ContainerInterface
52
  throw new NotFoundException(
53
  $this->__('Key "%1$s" not found in inner container', [$key]),
54
  0,
55
- $e,
56
- $this,
57
- $key
58
  );
59
  } catch (Exception $e) {
60
  throw new ContainerException(
61
  $this->__('Could not retrieve value for key "%1$s from inner container', [$key]),
62
  0,
63
- $e,
64
- $this
65
  );
66
  }
67
 
@@ -83,8 +80,7 @@ class CachingContainer implements ContainerInterface
83
  throw new ContainerException(
84
  $this->__('Could not check cache for key "%1$s"', [$key]),
85
  0,
86
- $e,
87
- $this
88
  );
89
  }
90
 
@@ -96,8 +92,7 @@ class CachingContainer implements ContainerInterface
96
  throw new ContainerException(
97
  $this->__('Could not check inner container for key "%1$s"', [$key]),
98
  0,
99
- $e,
100
- $this
101
  );
102
  }
103
 
@@ -153,4 +148,4 @@ class CachingContainer implements ContainerInterface
153
 
154
  return $result;
155
  }
156
- }
2
 
3
  namespace Dhii\Container;
4
 
5
+ use Dhii\Collection\ContainerInterface;
6
  use Dhii\Container\Exception\ContainerException;
7
  use Dhii\Container\Exception\NotFoundException;
8
  use Dhii\Container\Util\StringTranslatingTrait;
 
9
  use Exception;
10
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
11
  use Psr\Container\NotFoundExceptionInterface;
12
 
13
  /**
24
  */
25
  protected $cache;
26
  /**
27
+ * @var PsrContainerInterface
28
  */
29
  protected $container;
30
 
31
  /**
32
+ * @param PsrContainerInterface $container The container to cache entries from.
33
  */
34
+ public function __construct(PsrContainerInterface $container)
35
  {
36
  $this->container = $container;
37
  $this->cache = [];
52
  throw new NotFoundException(
53
  $this->__('Key "%1$s" not found in inner container', [$key]),
54
  0,
55
+ $e
 
 
56
  );
57
  } catch (Exception $e) {
58
  throw new ContainerException(
59
  $this->__('Could not retrieve value for key "%1$s from inner container', [$key]),
60
  0,
61
+ $e
 
62
  );
63
  }
64
 
80
  throw new ContainerException(
81
  $this->__('Could not check cache for key "%1$s"', [$key]),
82
  0,
83
+ $e
 
84
  );
85
  }
86
 
92
  throw new ContainerException(
93
  $this->__('Could not check inner container for key "%1$s"', [$key]),
94
  0,
95
+ $e
 
96
  );
97
  }
98
 
148
 
149
  return $result;
150
  }
151
+ }
vendor/dhii/containers/src/CompositeCachingServiceProvider.php CHANGED
@@ -3,7 +3,7 @@
3
  namespace Dhii\Container;
4
 
5
  use Interop\Container\ServiceProviderInterface;
6
- use Psr\Container\ContainerInterface;
7
 
8
  /**
9
  * A service provider that aggregates service definitions from other providers.
@@ -108,7 +108,7 @@ class CompositeCachingServiceProvider implements ServiceProviderInterface
108
 
109
  if (isset($defaults[$key])) {
110
  $default = $defaults[$key];
111
- $merged[$key] = function (ContainerInterface $c, $previous = null) use ($default, $extension) {
112
  assert(is_callable($default));
113
 
114
  $result = $default($c, $previous);
@@ -127,4 +127,4 @@ class CompositeCachingServiceProvider implements ServiceProviderInterface
127
 
128
  return $merged;
129
  }
130
- }
3
  namespace Dhii\Container;
4
 
5
  use Interop\Container\ServiceProviderInterface;
6
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
7
 
8
  /**
9
  * A service provider that aggregates service definitions from other providers.
108
 
109
  if (isset($defaults[$key])) {
110
  $default = $defaults[$key];
111
+ $merged[$key] = function (PsrContainerInterface $c, $previous = null) use ($default, $extension) {
112
  assert(is_callable($default));
113
 
114
  $result = $default($c, $previous);
127
 
128
  return $merged;
129
  }
130
+ }
vendor/dhii/containers/src/CompositeContainer.php CHANGED
@@ -2,13 +2,13 @@
2
 
3
  namespace Dhii\Container;
4
 
 
5
  use Dhii\Container\Exception\ContainerException;
6
  use Dhii\Container\Exception\NotFoundException;
7
  use Dhii\Container\Util\StringTranslatingTrait;
8
- use Dhii\Data\Container\ContainerInterface;
9
- use Dhii\Data\Container\Exception\NotFoundExceptionInterface;
10
  use Exception;
11
- use Psr\Container\ContainerInterface as BaseContainerInterface;
 
12
  use Traversable;
13
  use UnexpectedValueException;
14
 
@@ -17,12 +17,12 @@ class CompositeContainer implements ContainerInterface
17
  use StringTranslatingTrait;
18
 
19
  /**
20
- * @var array|BaseContainerInterface[]|Traversable
21
  */
22
  protected $containers;
23
 
24
  /**
25
- * @param BaseContainerInterface[]|Traversable $containers The list of containers.
26
  */
27
  public function __construct($containers)
28
  {
@@ -50,16 +50,13 @@ class CompositeContainer implements ContainerInterface
50
  throw new NotFoundException(
51
  $this->__('Failed to retrieve value for key "%1$s" from container at index "%2$s"', [$key, $index]),
52
  0,
53
- $e,
54
- $this,
55
- $key
56
  );
57
  } catch (Exception $e) {
58
  throw new ContainerException(
59
  $this->__('Failed check for key "%1$s" on container at index "%2$s"', [$key, $index]),
60
  0,
61
- $e,
62
- $this
63
  );
64
  }
65
  }
@@ -67,9 +64,7 @@ class CompositeContainer implements ContainerInterface
67
  throw new NotFoundException(
68
  $this->__('Key "%1$s" not found in any of the containers', [$key]),
69
  0,
70
- null,
71
- $this,
72
- $key
73
  );
74
  }
75
 
@@ -89,12 +84,11 @@ class CompositeContainer implements ContainerInterface
89
  throw new ContainerException(
90
  $this->__('Failed check for key "%1$s" on container at index "%2$s"', [$key, $index]),
91
  0,
92
- $e,
93
- $this
94
  );
95
  }
96
  }
97
 
98
  return false;
99
  }
100
- }
2
 
3
  namespace Dhii\Container;
4
 
5
+ use Dhii\Collection\ContainerInterface;
6
  use Dhii\Container\Exception\ContainerException;
7
  use Dhii\Container\Exception\NotFoundException;
8
  use Dhii\Container\Util\StringTranslatingTrait;
 
 
9
  use Exception;
10
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
11
+ use Psr\Container\NotFoundExceptionInterface;
12
  use Traversable;
13
  use UnexpectedValueException;
14
 
17
  use StringTranslatingTrait;
18
 
19
  /**
20
+ * @var array|PsrContainerInterface[]|Traversable
21
  */
22
  protected $containers;
23
 
24
  /**
25
+ * @param PsrContainerInterface[]|Traversable $containers The list of containers.
26
  */
27
  public function __construct($containers)
28
  {
50
  throw new NotFoundException(
51
  $this->__('Failed to retrieve value for key "%1$s" from container at index "%2$s"', [$key, $index]),
52
  0,
53
+ $e
 
 
54
  );
55
  } catch (Exception $e) {
56
  throw new ContainerException(
57
  $this->__('Failed check for key "%1$s" on container at index "%2$s"', [$key, $index]),
58
  0,
59
+ $e
 
60
  );
61
  }
62
  }
64
  throw new NotFoundException(
65
  $this->__('Key "%1$s" not found in any of the containers', [$key]),
66
  0,
67
+ null
 
 
68
  );
69
  }
70
 
84
  throw new ContainerException(
85
  $this->__('Failed check for key "%1$s" on container at index "%2$s"', [$key, $index]),
86
  0,
87
+ $e
 
88
  );
89
  }
90
  }
91
 
92
  return false;
93
  }
94
+ }
vendor/dhii/containers/src/DataStructureBasedFactory.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ declare(strict_types=1);
3
+
4
+ namespace Dhii\Container;
5
+
6
+ use Dhii\Collection\WritableMapFactoryInterface;
7
+ use Psr\Container\ContainerInterface;
8
+
9
+ /**
10
+ * @inheritDoc
11
+ */
12
+ class DataStructureBasedFactory implements DataStructureBasedFactoryInterface
13
+ {
14
+ /**
15
+ * @var WritableMapFactoryInterface
16
+ */
17
+ protected $containerFactory;
18
+
19
+ public function __construct(
20
+ WritableMapFactoryInterface $containerFactory
21
+ ) {
22
+ $this->containerFactory = $containerFactory;
23
+ }
24
+
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ public function createContainerFromArray(array $structure): ContainerInterface
29
+ {
30
+ $map = [];
31
+ foreach ($structure as $key => $value) {
32
+ if (is_array($value) || is_object($value)) {
33
+ $value = $this->createContainerFromArray($value);
34
+ }
35
+
36
+ $map[$key] = $value;
37
+ }
38
+
39
+ $container = $this->containerFactory->createContainerFromArray($map);
40
+
41
+ return $container;
42
+ }
43
+ }
vendor/dhii/containers/src/DataStructureBasedFactoryInterface.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ declare(strict_types=1);
3
+
4
+ namespace Dhii\Container;
5
+
6
+ use Dhii\Collection\WritableMapFactoryInterface;
7
+ use Dhii\Collection\WritableMapInterface;
8
+ use Exception;
9
+ use Psr\Container\ContainerInterface as BaseContainerInterface;
10
+
11
+ /**
12
+ * Creates a container hierarchy based on a traditional data structure.
13
+ */
14
+ interface DataStructureBasedFactoryInterface extends WritableMapFactoryInterface
15
+ {
16
+ /**
17
+ * Based on a traditional data structure, creates a container hierarchy.
18
+ *
19
+ * @param array $structure The traditional data structure representation.
20
+ *
21
+ * @return WritableMapInterface A hierarchy of writable maps that reflects the data structure.
22
+ *
23
+ * @throws Exception If problem creating.
24
+ */
25
+ public function createContainerFromArray(array $structure): BaseContainerInterface;
26
+ }
vendor/dhii/containers/src/DelegatingContainer.php CHANGED
@@ -2,12 +2,12 @@
2
 
3
  namespace Dhii\Container;
4
 
 
5
  use Dhii\Container\Exception\ContainerException;
6
  use Dhii\Container\Exception\NotFoundException;
7
  use Dhii\Container\Util\StringTranslatingTrait;
8
  use Interop\Container\ServiceProviderInterface;
9
- use Dhii\Data\Container\ContainerInterface;
10
- use Psr\Container\ContainerInterface as BaseContainerInterface;
11
  use UnexpectedValueException;
12
 
13
  class DelegatingContainer implements ContainerInterface
@@ -18,16 +18,17 @@ class DelegatingContainer implements ContainerInterface
18
  * @var ServiceProviderInterface
19
  */
20
  protected $provider;
 
21
  /**
22
- * @var ContainerInterface|null
23
  */
24
  protected $parent;
25
 
26
  /**
27
- * @param ServiceProviderInterface $provider
28
- * @param BaseContainerInterface|null $parent
29
  */
30
- public function __construct(ServiceProviderInterface $provider, BaseContainerInterface $parent = null)
31
  {
32
  $this->provider = $provider;
33
  $this->parent = $parent;
@@ -45,9 +46,7 @@ class DelegatingContainer implements ContainerInterface
45
  throw new NotFoundException(
46
  $this->__('Service not found for key "%1$s"', [$id]),
47
  0,
48
- null,
49
- $this,
50
- $id
51
  );
52
  }
53
 
@@ -59,8 +58,7 @@ class DelegatingContainer implements ContainerInterface
59
  throw new ContainerException(
60
  $this->__('Could not create service "%1$s"', [$id]),
61
  0,
62
- $e,
63
- $this
64
  );
65
  }
66
 
@@ -78,8 +76,7 @@ class DelegatingContainer implements ContainerInterface
78
  throw new ContainerException(
79
  $this->__('Could not extend service "%1$s"', [$id]),
80
  0,
81
- $e,
82
- $this
83
  );
84
  }
85
 
@@ -150,13 +147,12 @@ class DelegatingContainer implements ContainerInterface
150
  /**
151
  * Retrieves the container to be used for definitions and extensions.
152
  *
153
- * @return BaseContainerInterface The parent container, if set.
154
- * Otherwise, this instance.
155
  */
156
- protected function _getBaseContainer(): BaseContainerInterface
157
  {
158
- return $this->parent instanceof BaseContainerInterface
159
  ? $this->parent
160
  : $this;
161
  }
162
- }
2
 
3
  namespace Dhii\Container;
4
 
5
+ use Dhii\Collection\ContainerInterface;
6
  use Dhii\Container\Exception\ContainerException;
7
  use Dhii\Container\Exception\NotFoundException;
8
  use Dhii\Container\Util\StringTranslatingTrait;
9
  use Interop\Container\ServiceProviderInterface;
10
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
 
11
  use UnexpectedValueException;
12
 
13
  class DelegatingContainer implements ContainerInterface
18
  * @var ServiceProviderInterface
19
  */
20
  protected $provider;
21
+
22
  /**
23
+ * @var PsrContainerInterface|null
24
  */
25
  protected $parent;
26
 
27
  /**
28
+ * @param ServiceProviderInterface $provider
29
+ * @param PsrContainerInterface|null $parent
30
  */
31
+ public function __construct(ServiceProviderInterface $provider, PsrContainerInterface $parent = null)
32
  {
33
  $this->provider = $provider;
34
  $this->parent = $parent;
46
  throw new NotFoundException(
47
  $this->__('Service not found for key "%1$s"', [$id]),
48
  0,
49
+ null
 
 
50
  );
51
  }
52
 
58
  throw new ContainerException(
59
  $this->__('Could not create service "%1$s"', [$id]),
60
  0,
61
+ $e
 
62
  );
63
  }
64
 
76
  throw new ContainerException(
77
  $this->__('Could not extend service "%1$s"', [$id]),
78
  0,
79
+ $e
 
80
  );
81
  }
82
 
147
  /**
148
  * Retrieves the container to be used for definitions and extensions.
149
  *
150
+ * @return PsrContainerInterface The parent container, if set. Otherwise, this instance.
 
151
  */
152
+ protected function _getBaseContainer() : PsrContainerInterface
153
  {
154
+ return $this->parent instanceof PsrContainerInterface
155
  ? $this->parent
156
  : $this;
157
  }
158
+ }
vendor/dhii/containers/src/DeprefixingContainer.php ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Container;
4
+
5
+ use Dhii\Collection\ContainerInterface;
6
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
7
+ use Psr\Container\NotFoundExceptionInterface;
8
+
9
+ /**
10
+ * A container implementation that wraps around an inner container to automatically add prefixes to keys during
11
+ * fetching and look up, allowing consumers to omit them.
12
+ *
13
+ * @since [*next-version*]
14
+ */
15
+ class DeprefixingContainer implements ContainerInterface
16
+ {
17
+ /**
18
+ * @since [*next-version*]
19
+ *
20
+ * @var PsrContainerInterface
21
+ */
22
+ protected $inner;
23
+
24
+ /**
25
+ * @since [*next-version*]
26
+ *
27
+ * @var string
28
+ */
29
+ protected $prefix;
30
+
31
+ /**
32
+ * @since [*next-version*]
33
+ *
34
+ * @var bool
35
+ */
36
+ protected $strict;
37
+
38
+ /**
39
+ * Constructor.
40
+ *
41
+ * @since [*next-version*]
42
+ *
43
+ * @param PsrContainerInterface $container The container whose keys to deprefix.
44
+ * @param string $prefix The prefix to remove from the container's keys.
45
+ * @param bool $strict Whether or not to fallback to prefixed keys if an un-prefixed key does
46
+ * not exist in the inner container.
47
+ */
48
+ public function __construct(PsrContainerInterface $container, string $prefix, bool $strict = true)
49
+ {
50
+ $this->inner = $container;
51
+ $this->prefix = $prefix;
52
+ $this->strict = $strict;
53
+ }
54
+
55
+ /**
56
+ * @inheritdoc
57
+ *
58
+ * @since [*next-version*]
59
+ */
60
+ public function get($key)
61
+ {
62
+ try {
63
+ return $this->inner->get($this->getInnerKey($key));
64
+ } catch (NotFoundExceptionInterface $nfException) {
65
+ if ($this->strict || !$this->inner->has($key)) {
66
+ throw $nfException;
67
+ }
68
+ }
69
+
70
+ return $this->inner->get($key);
71
+ }
72
+
73
+ /**
74
+ * @inheritdoc
75
+ *
76
+ * @since [*next-version*]
77
+ */
78
+ public function has($key)
79
+ {
80
+ return $this->inner->has($this->getInnerKey($key)) || (!$this->strict && $this->inner->has($key));
81
+ }
82
+
83
+ /**
84
+ * Retrieves the key to use for the inner container.
85
+ *
86
+ * @since [*next-version*]
87
+ *
88
+ * @param string $key The outer key.
89
+ *
90
+ * @return string The inner key.
91
+ */
92
+ protected function getInnerKey($key)
93
+ {
94
+ return $this->prefix . $key;
95
+ }
96
+ }
vendor/dhii/containers/src/Dictionary.php ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Container;
4
+
5
+ use ArrayIterator;
6
+ use Dhii\Collection\WritableContainerInterface;
7
+ use Dhii\Collection\WritableMapInterface;
8
+ use Dhii\Container\Exception\NotFoundException;
9
+ use Dhii\Container\Util\StringTranslatingTrait;
10
+ use IteratorAggregate;
11
+ use RangeException;
12
+
13
+ /**
14
+ * A simple mutable dictionary, i.e. an enumerable key-value map.
15
+ */
16
+ class Dictionary implements
17
+ IteratorAggregate,
18
+ WritableMapInterface
19
+ {
20
+ use StringTranslatingTrait;
21
+
22
+ /** @var array */
23
+ protected $data;
24
+
25
+ /**
26
+ * @param array $data The key-value map of data.
27
+ */
28
+ public function __construct(array $data)
29
+ {
30
+ $this->data = $data;
31
+ }
32
+
33
+ /**
34
+ * {@inheritDoc}
35
+ */
36
+ public function get($key)
37
+ {
38
+ if (!array_key_exists($key, $this->data)) {
39
+ throw new NotFoundException(
40
+ $this->__('Dictionary does not have key "%1$s"', [$key]),
41
+ 0,
42
+ null
43
+ );
44
+ }
45
+
46
+ return $this->data[$key];
47
+ }
48
+
49
+ /**
50
+ * {@inheritDoc}
51
+ */
52
+ public function has($key)
53
+ {
54
+ $isHas = array_key_exists($key, $this->data);
55
+
56
+ return $isHas;
57
+ }
58
+
59
+ /**
60
+ * {@inheritDoc}
61
+ */
62
+ public function getIterator()
63
+ {
64
+ return new ArrayIterator($this->data);
65
+ }
66
+
67
+ /**
68
+ * @inheritDoc
69
+ */
70
+ public function withMappings(array $mappings): WritableContainerInterface
71
+ {
72
+ $dictionary = $this->cloneMe();
73
+ $dictionary->data = $mappings;
74
+
75
+ return $dictionary;
76
+ }
77
+
78
+ /**
79
+ * @inheritDoc
80
+ */
81
+ public function withAddedMappings(array $mappings): WritableContainerInterface
82
+ {
83
+ $dictionary = $this->cloneMe();
84
+ $dictionary->data = $mappings + $this->data;
85
+
86
+ return $dictionary;
87
+ }
88
+
89
+ /**
90
+ * @inheritDoc
91
+ */
92
+ public function withoutKeys(array $keys): WritableContainerInterface
93
+ {
94
+ $dictionary = $this->cloneMe();
95
+
96
+ foreach ($keys as $i => $key) {
97
+ if (!is_string($key)) {
98
+ throw new RangeException($this->__('Key at index %1$d is not a string', [$i]));
99
+ }
100
+ unset($dictionary->data[$key]);
101
+ }
102
+
103
+ return $dictionary;
104
+ }
105
+
106
+ /**
107
+ * Creates a copy of this instance
108
+ *
109
+ * @return Dictionary The new instance
110
+ */
111
+ protected function cloneMe(): Dictionary
112
+ {
113
+ return clone $this;
114
+ }
115
+ }
vendor/dhii/containers/src/DictionaryFactory.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ declare(strict_types=1);
3
+
4
+ namespace Dhii\Container;
5
+
6
+ use Dhii\Collection\WritableMapFactoryInterface;
7
+ use Psr\Container\ContainerInterface;
8
+
9
+ /**
10
+ * @inheritDoc
11
+ */
12
+ class DictionaryFactory implements WritableMapFactoryInterface
13
+ {
14
+ /**
15
+ * @inheritDoc
16
+ */
17
+ public function createContainerFromArray(array $data): ContainerInterface
18
+ {
19
+ return new Dictionary($data);
20
+ }
21
+ }
vendor/dhii/containers/src/Exception/ContainerException.php CHANGED
@@ -2,8 +2,8 @@
2
 
3
  namespace Dhii\Container\Exception;
4
 
5
- use Dhii\Data\Container\Exception\ContainerExceptionInterface;
6
  use Exception;
 
7
  use Psr\Container\ContainerInterface;
8
  use Throwable;
9
 
@@ -14,7 +14,6 @@ use Throwable;
14
  */
15
  class ContainerException extends Exception implements ContainerExceptionInterface
16
  {
17
-
18
  /**
19
  * @var ContainerInterface|null
20
  */
@@ -23,25 +22,13 @@ class ContainerException extends Exception implements ContainerExceptionInterfac
23
  /**
24
  * @param string $message The exception message.
25
  * @param int $code The exception code.
26
- * @param Throwable|null $previous The inner exception, if any,
27
- * @param ContainerInterface|null $container The container that caused the exception, if any,
28
  */
29
  public function __construct(
30
  string $message = "",
31
  int $code = 0,
32
- Throwable $previous = null,
33
- ContainerInterface $container = null
34
  ) {
35
  parent::__construct($message, $code, $previous);
36
- $this->container = $container;
37
- }
38
-
39
- /**
40
- * {@inheritDoc}
41
- */
42
- public function getContainer()
43
- {
44
- return $this->container;
45
  }
46
-
47
  }
2
 
3
  namespace Dhii\Container\Exception;
4
 
 
5
  use Exception;
6
+ use Psr\Container\ContainerExceptionInterface;
7
  use Psr\Container\ContainerInterface;
8
  use Throwable;
9
 
14
  */
15
  class ContainerException extends Exception implements ContainerExceptionInterface
16
  {
 
17
  /**
18
  * @var ContainerInterface|null
19
  */
22
  /**
23
  * @param string $message The exception message.
24
  * @param int $code The exception code.
25
+ * @param Throwable|null $previous The inner exception, if any.
 
26
  */
27
  public function __construct(
28
  string $message = "",
29
  int $code = 0,
30
+ Throwable $previous = null
 
31
  ) {
32
  parent::__construct($message, $code, $previous);
 
 
 
 
 
 
 
 
 
33
  }
 
34
  }
vendor/dhii/containers/src/Exception/NotFoundException.php CHANGED
@@ -2,8 +2,7 @@
2
 
3
  namespace Dhii\Container\Exception;
4
 
5
- use Dhii\Data\Container\Exception\NotFoundExceptionInterface;
6
- use Psr\Container\ContainerInterface;
7
  use Throwable;
8
 
9
  class NotFoundException extends ContainerException implements NotFoundExceptionInterface
@@ -16,20 +15,8 @@ class NotFoundException extends ContainerException implements NotFoundExceptionI
16
  public function __construct(
17
  $message = '',
18
  $code = 0,
19
- Throwable $previous = null,
20
- ContainerInterface $container = null,
21
- string $dataKey = null
22
  ) {
23
- parent::__construct($message, $code, $previous, $container);
24
- $this->dataKey = $dataKey;
25
  }
26
-
27
-
28
- /**
29
- * {@inheritdoc
30
- */
31
- public function getDataKey()
32
- {
33
- return $this->dataKey;
34
- }
35
- }
2
 
3
  namespace Dhii\Container\Exception;
4
 
5
+ use Psr\Container\NotFoundExceptionInterface;
 
6
  use Throwable;
7
 
8
  class NotFoundException extends ContainerException implements NotFoundExceptionInterface
15
  public function __construct(
16
  $message = '',
17
  $code = 0,
18
+ Throwable $previous = null
 
 
19
  ) {
20
+ parent::__construct($message, $code, $previous);
 
21
  }
22
+ }
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/src/HierarchyContainer.php ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Container;
4
+
5
+ use Dhii\Collection\ContainerInterface;
6
+ use Dhii\Container\Exception\NotFoundException;
7
+ use stdClass;
8
+
9
+ /**
10
+ * A container implementation that provides access to hierarchical data in the form a container tree.
11
+ *
12
+ * This implementation dynamically transforms hierarchical data into a tree of containers, on-demand. The transformation
13
+ * is performed "in-place", converting internal array and object values into containers without producing a copy or
14
+ * internal cache, making this implementation very memory-friendly.
15
+ *
16
+ * **Example usage:**
17
+ *
18
+ * ```php
19
+ * $data = [
20
+ * 'config' => [
21
+ * 'db' => [
22
+ * 'host' => 'localhost',
23
+ * 'port' => 3306,
24
+ * ],
25
+ * ]
26
+ * ];
27
+ *
28
+ * $container = new HierarchicalContainer($data);
29
+ * $container->get('config')->get('db')->get('host'); // "localhost"
30
+ * ```
31
+ *
32
+ * @since [*next-version*]
33
+ * @see PathContainer For an implementation that compliments this one by allowing container trees to be accessed using
34
+ * path-like keys.
35
+ * @see SegmentingContainer For an implementation that achieves a similar effect but for flat hierarchies.
36
+ */
37
+ class HierarchyContainer implements ContainerInterface
38
+ {
39
+ /**
40
+ * @since [*next-version*]
41
+ *
42
+ * @var array
43
+ */
44
+ protected $data;
45
+
46
+ /**
47
+ * Constructor.
48
+ *
49
+ * @since [*next-version*]
50
+ *
51
+ * @param array $data The hierarchical data for which to create the container tree.
52
+ */
53
+ public function __construct(array $data)
54
+ {
55
+ $this->data = $data;
56
+ }
57
+
58
+ /**
59
+ * @inheritDoc
60
+ *
61
+ * @since [*next-version*]
62
+ */
63
+ public function get($key)
64
+ {
65
+ if (!array_key_exists($key, $this->data)) {
66
+ throw new NotFoundException("Key '{$key}' does not exist", 0, null, $this, $key);
67
+ }
68
+
69
+ $value = $this->data[$key];
70
+
71
+ if (is_array($value) || $value instanceof stdClass) {
72
+ $value = $this->data[$key] = new HierarchyContainer($value);
73
+ }
74
+
75
+ return $value;
76
+ }
77
+
78
+ /**
79
+ * @inheritDoc
80
+ *
81
+ * @since [*next-version*]
82
+ */
83
+ public function has($key)
84
+ {
85
+ return array_key_exists($key, $this->data);
86
+ }
87
+ }
vendor/dhii/containers/src/MappingContainer.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Container;
4
+
5
+ use Dhii\Collection\ContainerInterface;
6
+ use Dhii\Container\Util\StringTranslatingTrait;
7
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
8
+
9
+ /**
10
+ * A container implementation that can map results from another container using a callback.
11
+ *
12
+ * **Example usage**:
13
+ *
14
+ * ```php
15
+ * $container = new Container([
16
+ * 'first' => 'Paul',
17
+ * 'second' => 'JC',
18
+ * 'third' => 'Alex',
19
+ * ]);
20
+ *
21
+ * $mContainer = new MappingContainer($container, function ($name) {
22
+ * return $name . ' Denton';
23
+ * });
24
+ *
25
+ * $mContainer->get('first'); // "Paul Denton"
26
+ * $mContainer->get('second'); // "JC Denton"
27
+ *
28
+ * // We don't talk about Alex
29
+ * ```
30
+ *
31
+ * @since [*next-version*]
32
+ */
33
+ class MappingContainer implements ContainerInterface
34
+ {
35
+ /* @since [*next-version*] */
36
+ use StringTranslatingTrait;
37
+
38
+ /**
39
+ * @since [*next-version*]
40
+ *
41
+ * @var callable
42
+ */
43
+ protected $callback;
44
+
45
+ /**
46
+ * @since [*next-version*]
47
+ *
48
+ * @var PsrContainerInterface
49
+ */
50
+ protected $inner;
51
+
52
+ /**
53
+ * Constructor.
54
+ *
55
+ * @since [*next-version*]
56
+ *
57
+ * @param PsrContainerInterface|null $inner The container instance to decorate.
58
+ * @param callable $callback The callback to invoke on get. It will be passed 3 parameters:
59
+ * * The inner container's value for the key being fetched.
60
+ * * The key being fetched.
61
+ * * A reference to this container instance.
62
+ */
63
+ public function __construct(PsrContainerInterface $inner, callable $callback)
64
+ {
65
+ $this->callback = $callback;
66
+ $this->inner = $inner;
67
+ }
68
+
69
+ /**
70
+ * @inheritdoc
71
+ *
72
+ * @since [*next-version*]
73
+ */
74
+ public function get($key)
75
+ {
76
+ return ($this->callback)($this->inner->get($key), $key, $this);
77
+ }
78
+
79
+ /**
80
+ * @inheritdoc
81
+ *
82
+ * @since [*next-version*]
83
+ */
84
+ public function has($key)
85
+ {
86
+ return $this->inner->has($key);
87
+ }
88
+ }
vendor/dhii/containers/src/MaskingContainer.php ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Container;
4
+
5
+ use Dhii\Collection\ContainerInterface;
6
+ use Dhii\Container\Exception\NotFoundException;
7
+ use Dhii\Container\Util\StringTranslatingTrait;
8
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
9
+ use function array_key_exists;
10
+
11
+ /**
12
+ * An implementation of a container that wraps around another to selectively expose or mask certain keys.
13
+ *
14
+ * @since [*next-version*]
15
+ */
16
+ class MaskingContainer implements ContainerInterface
17
+ {
18
+ /* @since [*next-version*] */
19
+ use StringTranslatingTrait;
20
+
21
+ /**
22
+ * @var PsrContainerInterface
23
+ */
24
+ protected $inner;
25
+
26
+ /**
27
+ * @var bool[]
28
+ */
29
+ protected $mask;
30
+
31
+ /**
32
+ * @var bool
33
+ */
34
+ protected $defMask;
35
+
36
+ /**
37
+ * Constructor.
38
+ *
39
+ * @since [*next-version*]
40
+ *
41
+ * @param PsrContainerInterface $inner The container whose entries to mask.
42
+ * @param bool $defaultMask The default mask. If true, all inner keys are exposed. If false, all
43
+ * inner keys are hidden. Any keys specified in the $mask parameter will
44
+ * naturally override this setting.
45
+ * @param bool[] $mask A mapping of keys to booleans, such that `true` exposes the mapped key
46
+ * and `false` hides the mapped key.
47
+ */
48
+ public function __construct(PsrContainerInterface $inner, $defaultMask, array $mask)
49
+ {
50
+ $this->inner = $inner;
51
+ $this->defMask = $defaultMask;
52
+ $this->mask = $mask;
53
+ }
54
+
55
+ /**
56
+ * @inheritdoc
57
+ *
58
+ * @since [*next-version*]
59
+ */
60
+ public function get($key)
61
+ {
62
+ if (!$this->isExposed($key)) {
63
+ throw new NotFoundException(
64
+ $this->__('Inner key "%1$s" is not exposed', [$key]),
65
+ 0,
66
+ null,
67
+ $this,
68
+ $key
69
+ );
70
+ }
71
+
72
+ return $this->inner->get($key);
73
+ }
74
+
75
+ /**
76
+ * @inheritdoc
77
+ *
78
+ * @since [*next-version*]
79
+ */
80
+ public function has($key)
81
+ {
82
+ return $this->isExposed($key) && $this->inner->has($key);
83
+ }
84
+
85
+ /**
86
+ * Checks if a key is exposed through the mask.
87
+ *
88
+ * @since [*next-version*]
89
+ *
90
+ * @param string $key The key to check.
91
+ *
92
+ * @return bool True if the key is exposed, false if the key is hidden.
93
+ */
94
+ protected function isExposed($key)
95
+ {
96
+ return array_key_exists($key, $this->mask)
97
+ ? $this->mask[$key] !== false
98
+ : $this->defMask;
99
+ }
100
+ }
vendor/dhii/containers/src/PathContainer.php ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Container;
4
+
5
+ use Dhii\Collection\ContainerInterface;
6
+ use Dhii\Container\Exception\NotFoundException;
7
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
8
+ use Psr\Container\NotFoundExceptionInterface;
9
+
10
+ /**
11
+ * A container implementation that decorates a hierarchy of {@link ContainerInterface} instances to allow path-like
12
+ * access to deep containers or data.
13
+ *
14
+ * **Example usage**
15
+ *
16
+ * Consider the below hierarchy of containers:
17
+ *
18
+ * ```php
19
+ * $container = new Container([
20
+ * 'config' => new Container([
21
+ * 'db' => new Container([
22
+ * 'host' => 'localhost',
23
+ * 'port' => 3306
24
+ * ])
25
+ * ])
26
+ * ]);
27
+ * ```
28
+ *
29
+ * A {@link PathContainer} can decorate the `$container` to substitute this:
30
+ *
31
+ * ```php
32
+ * $host = $container->get('config')->get('db')->get('port');
33
+ * ```
34
+ *
35
+ * With this:
36
+ *
37
+ * ```php
38
+ * $pContainer = new PathContainer($container, '.');
39
+ * $pContainer->get('config.db.port');
40
+ * ```
41
+ *
42
+ * Note that this implementation DOES NOT create containers for hierarchical _values_. Each segment in a given path
43
+ * must correspond to a child {@link ContainerInterface} instance.
44
+ *
45
+ * @since [*next-version*]
46
+ * @see SegmentingContainer For an implementation that achieves the opposite effect.
47
+ */
48
+ class PathContainer implements ContainerInterface
49
+ {
50
+ /**
51
+ * @since [*next-version*]
52
+ *
53
+ * @var PsrContainerInterface
54
+ */
55
+ protected $inner;
56
+
57
+ /**
58
+ * @since [*next-version*]
59
+ *
60
+ * @var string
61
+ */
62
+ protected $delimiter;
63
+
64
+ /**
65
+ * Constructor.
66
+ *
67
+ * @since [*next-version*]
68
+ *
69
+ * @param PsrContainerInterface $inner The container instance to decorate.
70
+ * @param string $delimiter The path delimiter to use.
71
+ */
72
+ public function __construct(PsrContainerInterface $inner, string $delimiter = '/')
73
+ {
74
+ $this->inner = $inner;
75
+ $this->delimiter = $delimiter;
76
+ }
77
+
78
+ /**
79
+ * @inheritDoc
80
+ *
81
+ * @since [*next-version*]
82
+ */
83
+ public function get($key)
84
+ {
85
+ $tKey = (strpos($key, $this->delimiter) === 0)
86
+ ? substr($key, strlen($this->delimiter))
87
+ : $key;
88
+ $path = array_filter(explode($this->delimiter, $tKey));
89
+
90
+ if (empty($path)) {
91
+ throw new NotFoundException("The path is empty");
92
+ }
93
+
94
+ $current = $this->inner;
95
+ $head = $path[0];
96
+
97
+ while (!empty($path)) {
98
+ if (!($current instanceof PsrContainerInterface)) {
99
+ $tail = implode($this->delimiter, $path);
100
+ throw new NotFoundException("Key '{$head}' does not exist at path '{$tail}'", 0, null, $this, $head);
101
+ }
102
+
103
+ $head = array_shift($path);
104
+ $current = $current->get($head);
105
+ }
106
+
107
+ return $current;
108
+ }
109
+
110
+ /**
111
+ * @inheritDoc
112
+ *
113
+ * @since [*next-version*]
114
+ */
115
+ public function has($key)
116
+ {
117
+ try {
118
+ $this->get($key);
119
+
120
+ return true;
121
+ } catch (NotFoundExceptionInterface $exception) {
122
+ return false;
123
+ }
124
+ }
125
+ }
vendor/dhii/containers/src/PrefixingContainer.php ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Container;
4
+
5
+ use Dhii\Collection\ContainerInterface;
6
+ use Dhii\Container\Exception\NotFoundException;
7
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
8
+ use Psr\Container\NotFoundExceptionInterface;
9
+
10
+ /**
11
+ * A container implementation that wraps around an inner container and prefixes its keys, requiring consumers to
12
+ * include them when fetching or looking up data.
13
+ *
14
+ * @since [*next-version*]
15
+ */
16
+ class PrefixingContainer implements ContainerInterface
17
+ {
18
+ /**
19
+ * @since [*next-version*]
20
+ *
21
+ * @var PsrContainerInterface
22
+ */
23
+ protected $inner;
24
+
25
+ /**
26
+ * @since [*next-version*]
27
+ *
28
+ * @var string
29
+ */
30
+ protected $prefix;
31
+
32
+ /**
33
+ * @since [*next-version*]
34
+ *
35
+ * @var bool
36
+ */
37
+ protected $strict;
38
+
39
+ /**
40
+ * Constructor.
41
+ *
42
+ * @since [*next-version*]
43
+ *
44
+ * @param PsrContainerInterface $container The container whose keys to prefix.
45
+ * @param string $prefix The prefix to apply to the container's keys.
46
+ * @param bool $strict Whether or not to fallback to un-prefixed keys if a prefixed key does not
47
+ * exist in the inner container.
48
+ */
49
+ public function __construct(PsrContainerInterface $container, string $prefix, bool $strict = true)
50
+ {
51
+ $this->inner = $container;
52
+ $this->prefix = $prefix;
53
+ $this->strict = $strict;
54
+ }
55
+
56
+ /**
57
+ * @inheritdoc
58
+ *
59
+ * @since [*next-version*]
60
+ */
61
+ public function get($key)
62
+ {
63
+ if (!$this->isPrefixed($key) && $this->strict) {
64
+ throw new NotFoundException(sprintf('Key "%s" does not exist', $key), 0, null, $this, $key);
65
+ }
66
+
67
+ try {
68
+ return $this->inner->get($this->unprefix($key));
69
+ } catch (NotFoundExceptionInterface $nfException) {
70
+ if ($this->strict) {
71
+ throw $nfException;
72
+ }
73
+ }
74
+
75
+ return $this->inner->get($key);
76
+ }
77
+
78
+ /**
79
+ * @inheritdoc
80
+ *
81
+ * @since [*next-version*]
82
+ */
83
+ public function has($key)
84
+ {
85
+ if (!$this->isPrefixed($key) && $this->strict) {
86
+ return false;
87
+ }
88
+
89
+ return $this->inner->has($this->unprefix($key)) || (!$this->strict && $this->inner->has($key));
90
+ }
91
+
92
+ /**
93
+ * Retrieves the key to use for the inner container.
94
+ *
95
+ * @since [*next-version*]
96
+ *
97
+ * @param string $key The outer key.
98
+ *
99
+ * @return string The inner key.
100
+ */
101
+ protected function unprefix($key)
102
+ {
103
+ return $this->isPrefixed($key)
104
+ ? substr($key, strlen($this->prefix))
105
+ : $key;
106
+ }
107
+
108
+ /**
109
+ * Checks if the key is prefixed.
110
+ *
111
+ * @since [*next-version*]
112
+ *
113
+ * @param string $key The key to check.
114
+ *
115
+ * @return bool True if the key is prefixed, false if not.
116
+ */
117
+ protected function isPrefixed($key)
118
+ {
119
+ return strlen($this->prefix) > 0 && strpos($key, $this->prefix) === 0;
120
+ }
121
+ }
vendor/dhii/containers/src/SegmentingContainer.php ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Container;
4
+
5
+ use Dhii\Collection\ContainerInterface;
6
+ use Psr\Container\ContainerInterface as PsrContainerInterface;
7
+ use function array_filter;
8
+ use function ltrim;
9
+
10
+ /**
11
+ * This container implementation decorates another to provide nested container access even when the decorated
12
+ * container's internal data is flat.
13
+ *
14
+ * Segmenting containers are intended to be used with keys that contain segments, i.e. keys that use a delimiter to
15
+ * indicate hierarchy. For example: "some/test/key" or "some.deep.config.value". The delimiter can be configured during
16
+ * construction of a segmenting container.
17
+ *
18
+ * A segmenting container can yield 2 different kinds of results when {@link SegmentingContainer::get()} is called:
19
+ *
20
+ * **Values**
21
+ *
22
+ * If the inner container has a value for the given key, that value is returned.
23
+ *
24
+ * **Segments**
25
+ *
26
+ * If the inner container has no value for the given key, a new {@link SegmentingContainer} instance is returned. This
27
+ * segmenting container will be aware of the key that resulted in its creation, and will automatically prepend that key
28
+ * to parameter keys given in `get()`.
29
+ *
30
+ * **Example usage:**
31
+ *
32
+ * Consider the below data and a regular `$container` that provides access to it:
33
+ *
34
+ * ```php
35
+ * $data = [
36
+ * 'config.db.host' => 'localhost',
37
+ * 'config.db.post' => '3306',
38
+ * ];
39
+ * ```
40
+ *
41
+ * A segmenting container can be created that provides access to the "host" and "port":
42
+ *
43
+ * ```php
44
+ * $segmented = new SegmentingContainer($container, '.');
45
+ * $dbConfig = $config->get('config')->get('db');
46
+ * $dbConfig->get("host"); // "localhost"
47
+ * $dbConfig->get("port"); // 3306
48
+ * ```
49
+ *
50
+ * @since [*next-version*]
51
+ * @see PathContainer For an implementation that achieves the opposite effect.
52
+ */
53
+ class SegmentingContainer implements ContainerInterface
54
+ {
55
+ /**
56
+ * @var PsrContainerInterface
57
+ */
58
+ protected $inner;
59
+
60
+ /**
61
+ * @var string
62
+ */
63
+ protected $root;
64
+
65
+ /**
66
+ * @var string
67
+ */
68
+ protected $delimiter;
69
+
70
+ /**
71
+ * Constructor.
72
+ *
73
+ * @since [*next-version*]
74
+ *
75
+ * @param PsrContainerInterface $inner The container to decorate.
76
+ * @param string $delimiter The path delimiter.
77
+ */
78
+ public function __construct($inner, $delimiter = '/')
79
+ {
80
+ $this->inner = $inner;
81
+ $this->root = '';
82
+ $this->delimiter = $delimiter;
83
+ }
84
+
85
+ /**
86
+ * @inheritdoc
87
+ *
88
+ * @since [*next-version*]
89
+ */
90
+ public function get($key)
91
+ {
92
+ $tKey = ltrim($key, $this->delimiter);
93
+ $tRoot = rtrim($this->root, $this->delimiter);
94
+ // Implode to glue together the key and root, and array_filter to ignore them if they're empty
95
+ $fullKey = implode($this->delimiter, array_filter([$tRoot, $tKey]));
96
+
97
+ if ($this->inner->has($fullKey)) {
98
+ return $this->inner->get($fullKey);
99
+ }
100
+
101
+ $instance = clone $this;
102
+ $instance->root = $fullKey;
103
+
104
+ return $instance;
105
+ }
106
+
107
+ /**
108
+ * @inheritdoc
109
+ *
110
+ * @since [*next-version*]
111
+ */
112
+ public function has($key)
113
+ {
114
+ return $this->inner->has($key);
115
+ }
116
+ }
vendor/dhii/containers/test/functional/CompositeCachingServiceProviderTest.php DELETED
@@ -1,119 +0,0 @@
1
- <?php
2
-
3
- namespace Dhii\Container\FuncTest;
4
-
5
- use Dhii\Container\CompositeCachingServiceProvider as TestSubject;
6
- use Dhii\Container\TestHelpers\ComponentMockeryTrait;
7
- use Exception;
8
- use Interop\Container\ServiceProviderInterface;
9
- use PHPUnit\Framework\TestCase;
10
-
11
- class CompositeCachingServiceProviderTest extends TestCase
12
- {
13
- use ComponentMockeryTrait;
14
-
15
- /**
16
- * @param ServiceProviderInterface[] $providers
17
- *
18
- * @return TestSubject
19
- */
20
- public function createSubject(array $providers)
21
- {
22
- return new TestSubject($providers);
23
- }
24
-
25
- /**
26
- * Tests that `getFactories()` returns factories correctly overridden.
27
- *
28
- * @throws Exception If problem testing.
29
- */
30
- public function testGetFactories()
31
- {
32
- {
33
- $srv1 = uniqid('srv1');
34
- $f1 = function () use ($srv1) { return $srv1; };
35
- $srv2 = uniqid('srv2');
36
- $f2 = function () use ($srv2) { return $srv2; };
37
- $srv3 = uniqid('srv3');
38
- $f3 = function () use ($srv3) { return $srv3; };
39
- $srv4 = uniqid('srv4');
40
- $f4 = function () use ($srv4) { return $srv4; };
41
-
42
- $provider1 = $this->createServiceProvider([
43
- 'one' => $f1,
44
- 'two' => $f2,
45
- ],[]);
46
- $provider2 = $this->createServiceProvider([
47
- 'two' => $f3,
48
- 'three' => $f4,
49
- ],[]);
50
-
51
- $subject = $this->createSubject([$provider1, $provider2]);
52
- }
53
-
54
- {
55
- $result = $subject->getFactories();
56
- }
57
-
58
- {
59
- $this->assertCount(3, $result, 'Wrong number of factories');
60
- $this->assertArrayHasKey('one', $result, 'Factory missing');
61
- $this->assertArrayHasKey('two', $result, 'Factory missing');
62
- $this->assertArrayHasKey('three', $result, 'Factory missing');
63
-
64
- $this->assertEquals($srv1, $result['one'](), 'Wrong factory');
65
- $this->assertEquals($srv3, $result['two'](), 'Wrong factory');
66
- $this->assertEquals($srv4, $result['three'](), 'Wrong factory');
67
- }
68
- }
69
-
70
- /**
71
- * Tests that `getExtensions()` returns extensions correctly nested.
72
- *
73
- * @throws Exception If problem testing.
74
- */
75
- public function testGetExtensions()
76
- {
77
- {
78
- $combination = function (string $a, string $b) {
79
- return sprintf('%1$s-%2$s', $a, $b);
80
- };
81
- $srv1 = uniqid('srv1');
82
- $f1 = function () use ($srv1) { return $srv1; };
83
- $srv2 = uniqid('srv2');
84
- $f2 = function () use ($srv2) { return $srv2; };
85
- $srv3 = uniqid('srv3');
86
- $f3 = function ($container, $previous) use ($srv3, $combination) { return $combination($previous, $srv3); };
87
- $srv4 = uniqid('srv4');
88
- $f4 = function () use ($srv4) { return $srv4; };
89
-
90
- $provider1 = $this->createServiceProvider([], [
91
- 'one' => $f1,
92
- 'two' => $f2,
93
- ]);
94
- $provider2 = $this->createServiceProvider([], [
95
- 'two' => $f3,
96
- 'three' => $f4,
97
- ]);
98
-
99
- $container = $this->createContainer([]);
100
-
101
- $subject = $this->createSubject([$provider1, $provider2]);
102
- }
103
-
104
- {
105
- $result = $subject->getExtensions();
106
- }
107
-
108
- {
109
- $this->assertCount(3, $result, 'Wrong number of factories');
110
- $this->assertArrayHasKey('one', $result, 'Factory missing');
111
- $this->assertArrayHasKey('two', $result, 'Factory missing');
112
- $this->assertArrayHasKey('three', $result, 'Factory missing');
113
-
114
- $this->assertEquals($srv1, $result['one']($container, $srv1), 'Wrong factory');
115
- $this->assertEquals($combination($srv2, $srv3), $result['two']($container, $srv2), 'Wrong factory');
116
- $this->assertEquals($srv4, $result['three']($container, $srv4), 'Wrong factory');
117
- }
118
- }
119
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/test/functional/DelegatingContainerTest.php DELETED
@@ -1,109 +0,0 @@
1
- <?php
2
-
3
- namespace Dhii\Container\FuncTest;
4
-
5
- use Dhii\Container\DelegatingContainer as TestSubject;
6
- use Dhii\Container\TestHelpers\ComponentMockeryTrait;
7
- use Exception;
8
- use PHPUnit\Framework\MockObject\MockObject;
9
- use PHPUnit\Framework\TestCase;
10
- use Psr\Container\ContainerInterface;
11
-
12
- class DelegatingContainerTest extends TestCase
13
- {
14
- use ComponentMockeryTrait;
15
-
16
- /**
17
- * Creates a new instance of the test subject.
18
- *
19
- * @param array $dependencies A list of constructor args.
20
- * @param array|null $methods The names of methods to mock in the subject.
21
- * @return MockObject|TestSubject The new instance.
22
- * @throws Exception If problem creating.
23
- */
24
- protected function createSubject(array $dependencies = [], array $methods = null)
25
- {
26
- return $this->createMockBuilder(TestSubject::class, $methods, $dependencies)
27
- ->getMock();
28
- }
29
-
30
- /**
31
- * Tests that the subject is able to retrieve an extended service.
32
- *
33
- * The service definition and extension must both receive the parent container.
34
- *
35
- * @throws Exception If problem testing.
36
- */
37
- public function testGet()
38
- {
39
- {
40
- $serviceName = uniqid('service');
41
- $parent = $this->createContainer([]);
42
- $service = 1;
43
- $definition = $this->createCallable(function (ContainerInterface $container) use ($service) {
44
- return $service;
45
- });
46
- $extension = $this->createCallable(function (ContainerInterface $container, $previous) {
47
- return $previous + 1;
48
- });
49
- $provider = $this->createServiceProvider([
50
- $serviceName => $definition,
51
- ], [
52
- $serviceName => $extension,
53
- ]);
54
- $subject = $this->createSubject([$provider, $parent]);
55
-
56
- $definition->expects($this->exactly(1))
57
- ->method('__invoke')
58
- ->with($parent);
59
- $extension->expects($this->exactly(1))
60
- ->method('__invoke')
61
- ->with($parent, $service);
62
- }
63
-
64
- {
65
- $result = $subject->get($serviceName);
66
- }
67
-
68
- {
69
- $this->assertEquals(2, $result, 'Wrong result retrieved');
70
- }
71
- }
72
-
73
- public function testHasTrue()
74
- {
75
- {
76
- $serviceName = uniqid('service');
77
- $provider = $this->createServiceProvider([
78
- $serviceName => function (ContainerInterface $container) {
79
- return 1;
80
- }
81
- ], []);
82
- $subject = $this->createSubject([$provider]);
83
- }
84
-
85
- {
86
- $result = $subject->has($serviceName);
87
- }
88
-
89
- {
90
- $this->assertTrue($result, 'Wrongly determined having');
91
- }
92
- }
93
-
94
- public function testHasFalse()
95
- {
96
- {
97
- $provider = $this->createServiceProvider([], []);
98
- $subject = $this->createSubject([$provider]);
99
- }
100
-
101
- {
102
- $result = $subject->has(uniqid('service'));
103
- }
104
-
105
- {
106
- $this->assertFalse($result, 'Wrongly determined not having');
107
- }
108
- }
109
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/test/functional/Dhii/Container/FuncTest/CachingContainerTest.php DELETED
@@ -1,88 +0,0 @@
1
- <?php
2
-
3
- namespace Dhii\Container\FuncTest;
4
-
5
- use Dhii\Container\CachingContainer as TestSubject;
6
- use Dhii\Container\TestHelpers\ComponentMockeryTrait;
7
- use Exception;
8
- use PHPUnit\Framework\MockObject\MockObject;
9
- use PHPUnit\Framework\TestCase;
10
-
11
- class CachingContainerTest extends TestCase
12
- {
13
- use ComponentMockeryTrait;
14
-
15
- /**
16
- * Creates a new instance of the test subject.
17
- *
18
- * @param array $dependencies A list of constructor args.
19
- * @param array|null $methods The names of methods to mock in the subject.
20
- * @return MockObject|TestSubject The new instance.
21
- * @throws Exception If problem creating.
22
- */
23
- protected function createSubject(array $dependencies, array $methods = null)
24
- {
25
- return $this->createMockBuilder(TestSubject::class, $methods, $dependencies)
26
- ->getMock();
27
- }
28
-
29
- /**
30
- * Tests that the subject can correctly retrieve a value from the inner container.
31
- *
32
- * The value must be the _same thing_ no matter how many times it is retrieved.
33
- * The subject must only ask the inner container once for the value.
34
- *
35
- * @throws Exception If problem testing.
36
- */
37
- public function testGet()
38
- {
39
- {
40
- $key = uniqid('key');
41
- $value = (object) [];
42
- $container = $this->createContainer([
43
- $key => $value,
44
- ]);
45
- $subject = $this->createSubject([$container]);
46
-
47
- $container->expects($this->exactly(1))
48
- ->method('get')
49
- ->with($key);
50
- }
51
-
52
- {
53
- $operations = rand(2, 9);
54
- $result = null;
55
-
56
- for ($i = 0; $i < $operations; $i++) {
57
- $result = $subject->get($key);
58
- }
59
- }
60
-
61
- {
62
- $this->assertSame($value, $result, 'Wrong value retrieved');
63
- }
64
- }
65
-
66
- /**
67
- * Tests that the subject correctly determines having keys.
68
- *
69
- * Subject must report having a key only if the inner container has that key.
70
- *
71
- * @depends testGet
72
- */
73
- public function testHas()
74
- {
75
- {
76
- $key = uniqid('key');
77
- $container = $this->createContainer([
78
- $key => uniqid('value'),
79
- ]);
80
- $subject = $this->createSubject([$container]);
81
- }
82
-
83
- {
84
- $this->assertTrue($subject->has($key), 'Wrong determined having');
85
- $this->assertFalse($subject->has(uniqid('non-existing-key')), 'Wrong determined not having');
86
- }
87
- }
88
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/test/functional/Dhii/Container/FuncTest/CompositeContainerTest.php DELETED
@@ -1,130 +0,0 @@
1
- <?php
2
-
3
- namespace Dhii\Container\FuncTest;
4
-
5
- use Dhii\Container\CompositeContainer as TestSubject;
6
- use Dhii\Container\TestHelpers\ComponentMockeryTrait;
7
- use Exception;
8
- use PHPUnit\Framework\MockObject\MockObject;
9
- use PHPUnit\Framework\TestCase;
10
-
11
- class CompositeContainerTest extends TestCase
12
- {
13
- use ComponentMockeryTrait;
14
-
15
-
16
- /**
17
- * Creates a new instance of the test subject.
18
- *
19
- * @param array $dependencies A list of constructor args.
20
- * @param array|null $methods The names of methods to mock in the subject.
21
- * @return MockObject|TestSubject The new instance.
22
- * @throws Exception If problem creating.
23
- */
24
- protected function createSubject(array $dependencies, array $methods = null)
25
- {
26
- return $this->createMockBuilder(TestSubject::class, $methods, $dependencies)
27
- ->getMock();
28
- }
29
-
30
- /**
31
- * Tests if subject can correctly retrieve a value by key from a list of containers.
32
- *
33
- * @throws Exception If problem testing.
34
- */
35
- public function testGet()
36
- {
37
- {
38
- $key = uniqid('key');
39
- $value = uniqid('value');
40
- $containers = [
41
- $this->createContainer([
42
-
43
- ]),
44
- $this->createContainer([
45
- uniqid('service1') => uniqid('value'),
46
- ]),
47
- $this->createContainer([
48
- uniqid('service2') => uniqid('value'),
49
- $key => $value,
50
- uniqid('service3') => uniqid('value'),
51
- ]),
52
- ];
53
- $subject = $this->createSubject([$containers]);
54
- }
55
-
56
- {
57
- $result = $subject->get($key);
58
- }
59
-
60
- {
61
- $this->assertEquals($value, $result, 'Wrong value retrieved');
62
- }
63
- }
64
-
65
- /**
66
- * Tests that the subject can correctly determine having an existing key.
67
- *
68
- * @throws Exception If problem testing.
69
- */
70
- public function testHasTrue()
71
- {
72
- {
73
- $key = uniqid('key');
74
- $containers = [
75
- $this->createContainer([
76
-
77
- ]),
78
- $this->createContainer([
79
- uniqid('service1') => uniqid('value'),
80
- ]),
81
- $this->createContainer([
82
- uniqid('service2') => uniqid('value'),
83
- $key => uniqid('value'),
84
- uniqid('service3') => uniqid('value'),
85
- ]),
86
- ];
87
- $subject = $this->createSubject([$containers]);
88
- }
89
-
90
- {
91
- $result = $subject->has($key);
92
- }
93
-
94
- {
95
- $this->assertTrue($result, 'Incorrectly determined having');
96
- }
97
- }
98
-
99
- /**
100
- * Tests that the subject can correctly determine not having a non-existing key.
101
- *
102
- * @throws Exception If problem testing.
103
- */
104
- public function testHasFalse()
105
- {
106
- {
107
- $containers = [
108
- $this->createContainer([
109
-
110
- ]),
111
- $this->createContainer([
112
- uniqid('service1') => uniqid('value'),
113
- ]),
114
- $this->createContainer([
115
- uniqid('service2') => uniqid('value'),
116
- uniqid('service3') => uniqid('value'),
117
- ]),
118
- ];
119
- $subject = $this->createSubject([$containers]);
120
- }
121
-
122
- {
123
- $result = $subject->has(uniqid('non-existing-service'));
124
- }
125
-
126
- {
127
- $this->assertFalse($result, 'Incorrectly determined not having');
128
- }
129
- }
130
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/test/functional/Exception/ContainerExceptionTest.php DELETED
@@ -1,63 +0,0 @@
1
- <?php declare(strict_types = 1);
2
-
3
- namespace Dhii\Di\FuncTest\Exception;
4
-
5
- use Dhii\Container\Exception\ContainerException as TestSubject;
6
- use Dhii\Container\TestHelpers\ComponentMockeryTrait;
7
- use Exception;
8
- use PHPUnit\Framework\MockObject\MockObject;
9
- use PHPUnit\Framework\TestCase;
10
-
11
- /**
12
- * Tests {@see TestSubject}.
13
- *
14
- * @package Dhii\Wp\Containers
15
- */
16
- class ContainerExceptionTest extends TestCase
17
- {
18
-
19
- use ComponentMockeryTrait;
20
-
21
- /**
22
- * Creates a new instance of the test subject.
23
- *
24
- * @param array $dependencies A list of constructor args.
25
- * @param array|null $methods The names of methods to mock in the subject.
26
- * @return MockObject|TestSubject The new instance.
27
- * @throws Exception If problem creating.
28
- */
29
- protected function createSubject(array $dependencies, $methods = null)
30
- {
31
- return $this->createMockBuilder(TestSubject::class, $methods, $dependencies)
32
- ->getMock();
33
- }
34
-
35
- /**
36
- * Tests that the instance is created correctly, and getters work as expected.`
37
- *
38
- * @throws Exception If problem testing.
39
- */
40
- public function testConstructorAndGetContainer()
41
- {
42
- {
43
- $message = uniqid('message');
44
- $code = rand(1, 99);
45
- $prev = new Exception(uniqid('inner-message'));
46
- $container = $this->createContainer([]);
47
-
48
- $subject = $this->createSubject([$message, $code, $prev, $container], null);
49
- }
50
-
51
- {
52
- try {
53
- throw $subject;
54
- } catch (TestSubject $e) {
55
- $this->assertSame($message, $e->getMessage(), 'Wrong message');
56
- $this->assertSame($code, $e->getCode(), 'Wrong code');
57
- $this->assertSame($prev, $e->getPrevious(), 'Wrong previous exception');
58
- $this->assertSame($container, $e->getContainer(), 'Wrong container');
59
- }
60
- }
61
- }
62
-
63
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/test/functional/Exception/NotFoundExceptionTest.php DELETED
@@ -1,63 +0,0 @@
1
- <?php declare(strict_types = 1);
2
-
3
- namespace Dhii\Di\FuncTest\Exception;
4
-
5
- use Dhii\Container\Exception\NotFoundException as TestSubject;
6
- use Dhii\Container\TestHelpers\ComponentMockeryTrait;
7
- use Exception;
8
- use PHPUnit\Framework\TestCase;
9
-
10
- /**
11
- * Tests {@see TestSubject}.
12
- *
13
- * @package Dhii\Wp\Containers
14
- */
15
- class NotFoundExceptionTest extends TestCase
16
- {
17
-
18
- use ComponentMockeryTrait;
19
-
20
- /**
21
- * Creates a new instance of the test subject.
22
- *
23
- * @param array $dependencies A list of constructor args.
24
- * @return MockObject|TestSubject The new instance.
25
- * @throws Exception If problem creating.
26
- */
27
- protected function createSubject(array $dependencies, array $methods = null)
28
- {
29
- return $this->createMockBuilder(TestSubject::class, $methods, $dependencies)
30
- ->getMock();
31
- }
32
-
33
- /**
34
- * Tests that the instance is created correctly, and getters work as expected.`
35
- *
36
- * @throws Exception If problem testing.
37
- */
38
- public function testConstructorAndGetContainerAndDataKey()
39
- {
40
- {
41
- $message = uniqid('message');
42
- $code = rand(1, 99);
43
- $prev = new Exception(uniqid('inner-message'));
44
- $container = $this->createContainer([]);
45
- $dataKey = uniqid('data-key');
46
-
47
- $subject = $this->createSubject([$message, $code, $prev, $container, $dataKey], null);
48
- }
49
-
50
- {
51
- try {
52
- throw $subject;
53
- } catch (TestSubject $e) {
54
- $this->assertSame($message, $e->getMessage(), 'Wrong message');
55
- $this->assertSame($code, $e->getCode(), 'Wrong code');
56
- $this->assertSame($prev, $e->getPrevious(), 'Wrong previous exception');
57
- $this->assertSame($container, $e->getContainer(), 'Wrong container');
58
- $this->assertSame($dataKey, $e->getDataKey(), 'Wrong data key');
59
- }
60
- }
61
- }
62
-
63
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/test/functional/ServiceProviderTest.php DELETED
@@ -1,78 +0,0 @@
1
- <?php
2
-
3
- namespace Dhii\Container\FuncTest;
4
-
5
- use Dhii\Container\ServiceProvider as TestSubject;
6
- use Dhii\Container\TestHelpers\ComponentMockeryTrait;
7
- use Exception;
8
- use PHPUnit\Framework\TestCase;
9
- use ReflectionClass;
10
-
11
- class ServiceProviderTest extends TestCase
12
- {
13
- use ComponentMockeryTrait;
14
-
15
- /**
16
- * Creates a new instance of the test subject.
17
- *
18
- * @param array $dependencies
19
- *
20
- * @return TestSubject The new instance.
21
- *
22
- * @throws Exception If problem creating.
23
- */
24
- protected function createSubject(array $dependencies)
25
- {
26
- $reflection = new ReflectionClass(TestSubject::class);
27
- $subject = $reflection->newInstanceArgs($dependencies);
28
- /* @var $subject TestSubject */
29
-
30
- return $subject;
31
- }
32
-
33
- /**
34
- * Tests that the extensions passed are correctly retrieved.
35
- *
36
- * @throws Exception If problem testing.
37
- */
38
- public function testGetExtensions()
39
- {
40
- $extensions = [
41
- 'one' => function () {},
42
- 'two' => function () {},
43
- ];
44
- $subject = $this->createSubject([[], $extensions]);
45
-
46
- $this->assertEquals(
47
- $extensions,
48
- $subject->getExtensions(),
49
- 'Wrong extensions retrieved',
50
- 0.0,
51
- 10,
52
- true
53
- );
54
- }
55
-
56
- /**
57
- * Tests that the factories passed are correctly retrieved.
58
- *
59
- * @throws Exception If problem testing.
60
- */
61
- public function testGetFactories()
62
- {
63
- $factories = [
64
- 'three' => function () {},
65
- 'four' => function () {},
66
- ];
67
- $subject = $this->createSubject([$factories, []]);
68
-
69
- $this->assertEquals(
70
- $factories,
71
- $subject->getFactories(),
72
- 'Wrong factories retrieved',
73
- 0.0,
74
- 10,
75
- true
76
- );
77
- }
78
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/test/helpers/ComponentMockeryTrait.php DELETED
@@ -1,267 +0,0 @@
1
- <?php
2
-
3
-
4
- namespace Dhii\Container\TestHelpers;
5
-
6
- use Andrew\Proxy;
7
- use Dhii\Data\Container\Exception\NotFoundExceptionInterface;
8
- use Exception;
9
- use Interop\Container\ServiceProviderInterface;
10
- use PHPUnit\Framework\MockObject\MockBuilder;
11
- use PHPUnit\Framework\MockObject\MockObject;
12
- use Psr\Container\ContainerInterface;
13
- use Throwable;
14
-
15
- trait ComponentMockeryTrait
16
- {
17
- /**
18
- * Creates a new instance of the test subject mock.
19
- *
20
- * @param string $className The name of the class to mock.
21
- * @param array|null $methods The methods to mock.
22
- * Use `null` to not mock anything. Use empty array to mock everything.
23
- * @param array|null $dependencies The parameters for the subject constructor.
24
- * Use `null` to disable the original constructor.
25
- *
26
- * @return MockBuilder The new builder.
27
- *
28
- * @throws Exception If problem creating.
29
- */
30
- protected function createMockBuilder(string $className, $methods = [], $dependencies = null)
31
- {
32
- $builder = $this->getMockBuilder($className);
33
-
34
- $builder->setMethods($methods);
35
-
36
- if ($dependencies !== null) {
37
- $builder->enableOriginalConstructor();
38
- $builder->setConstructorArgs($dependencies);
39
- } else {
40
- $builder->disableOriginalConstructor();
41
- }
42
-
43
- return $builder;
44
- }
45
-
46
- /**
47
- * Creates a new abstract class that extends the specified class while implementing the specified interfaces.
48
- *
49
- * @param string $className Name of the class to extend.
50
- * @param array $interfaceNames List of interface names to implement.
51
- *
52
- * @return string The name of the new class.
53
- *
54
- * @throws Exception If problem creating.
55
- * @throws Throwable If problem running.
56
- */
57
- protected function createImplementingClass(
58
- string $className,
59
- array $interfaceNames = []
60
- ) {
61
- $newClassName = uniqid(sprintf('%1$s_', $className));
62
- $implements = count($interfaceNames)
63
- ? 'implements ' . implode(', ', $interfaceNames)
64
- : '';
65
- $class = <<<PHP
66
- abstract class $newClassName extends $className $implements {}
67
- PHP;
68
- eval($class);
69
-
70
- return $newClassName;
71
- }
72
-
73
- /**
74
- * Creates a new Dhii Container - Not Found exception.
75
- *
76
- * @param string $message Error message.
77
- * @param Throwable|null $previous Inner exception.
78
- * @param ContainerInterface|null $container The container, if any.
79
- * @param string|null $dataKey The data key, if any.
80
- *
81
- * @return MockObject|NotFoundExceptionInterface The new exception.
82
- *
83
- * @throws Exception If problem creating.
84
- * @throws Throwable If problem running.
85
- */
86
- protected function createNotFoundException(
87
- string $message,
88
- Throwable $previous = null,
89
- ContainerInterface $container = null,
90
- string $dataKey = null
91
- ) {
92
- $eClass = $this->createImplementingClass('Exception', [NotFoundExceptionInterface::class]);
93
- $e = $this->createMockBuilder(
94
- $eClass,
95
- ['getContainer', 'getDataKey'],
96
- [
97
- $message,
98
- 0,
99
- $previous,
100
- ]
101
- )->getMock();
102
- $e->method('getContainer')
103
- ->willReturn($container);
104
- $e->method('getDataKey')
105
- ->willReturn($dataKey);
106
-
107
- return $e;
108
- }
109
-
110
- /**
111
- * @return callable|MockObject
112
- *
113
- * @throws Exception If problem creating.
114
- */
115
- protected function createCallable(callable $callable): callable
116
- {
117
- static $className = null;
118
-
119
- if (!$className) {
120
- $className = uniqid('MockInvocable');
121
- }
122
-
123
- if (!interface_exists($className)) {
124
- $class = <<<EOL
125
- interface $className
126
- {
127
- public function __invoke();
128
- }
129
- EOL;
130
- eval($class);
131
- }
132
-
133
- $mock = $this->getMockBuilder($className)
134
- ->setMethods(['__invoke'])
135
- ->getMock();
136
-
137
- $mock->method('__invoke')
138
- ->willReturnCallback($callable);
139
-
140
- assert(is_callable($mock));
141
-
142
- return $mock;
143
- }
144
-
145
- /**
146
- * Creates a new mock container.
147
- *
148
- * @param array $services The map of service name to service value.
149
- *
150
- * @return ContainerInterface|MockObject
151
- *
152
- * @throws Exception If problem creating.
153
- */
154
- protected function createContainer(array $services = [])
155
- {
156
- $mock = $this->getMockBuilder(ContainerInterface::class)
157
- ->setMethods(['has', 'get'])
158
- ->getMock();
159
- assert($mock instanceof ContainerInterface);
160
-
161
- $mock->method('get')
162
- ->willReturnCallback(function ($key) use ($services, $mock) {
163
- if (!isset($services[$key])) {
164
- throw $this->createNotFoundException(
165
- sprintf('No entry found for key "%1$s"', $key),
166
- null,
167
- $mock,
168
- $key
169
- );
170
-
171
- throw $e;
172
- }
173
-
174
- return $services[$key];
175
- });
176
-
177
- $mock->method('has')
178
- ->willReturnCallback(function ($key) use ($services, $mock) {
179
- if (!isset($services[$key])) {
180
- return false;
181
- }
182
-
183
- return true;
184
- });
185
-
186
- return $mock;
187
- }
188
-
189
- protected function createServiceProvider(array $factories, array $extensions): ServiceProviderInterface
190
- {
191
- $provider = new class($factories, $extensions) implements ServiceProviderInterface {
192
- /**
193
- * @var array
194
- */
195
- protected $factories;
196
- /**
197
- * @var array
198
- */
199
- protected $extensions;
200
-
201
- public function __construct(array $factories, array $extensions)
202
- {
203
- $this->factories = $factories;
204
- $this->extensions = $extensions;
205
- }
206
-
207
- public function getFactories()
208
- {
209
- return $this->factories;
210
- }
211
-
212
- public function getExtensions()
213
- {
214
- return $this->extensions;
215
- }
216
- };
217
-
218
- return $provider;
219
- }
220
-
221
- /**
222
- * Creates an array.
223
- *
224
- * @param int $length The length of the array.
225
- * @param callable $valueGenerator This generates the values. Called for each index.
226
- * @param callable|null $keyGenerator This generates the keys. Called for each index.
227
- * Default: a generator that returns the index. Useful for numeric arrays.
228
- *
229
- * @return array The array of specified length, with generated keys and values.
230
- */
231
- public function createArray(int $length, callable $valueGenerator, callable $keyGenerator = null)
232
- {
233
- $result = [];
234
- $keyGenerator = $keyGenerator ?? function (int $index) {
235
- return $index;
236
- };
237
-
238
- for ($i=0; $i<$length-1; $i++) {
239
- $key = $keyGenerator($i);
240
- $value = $valueGenerator($i);
241
- $result[$key] = $value;
242
- }
243
-
244
- return $result;
245
- }
246
-
247
- /**
248
- * Creates a proxy that allows public access to the object's protected members.
249
- *
250
- * @param object $object The object to proxy.
251
- *
252
- * @return Proxy the new proxy.
253
- */
254
- protected function proxy($object): Proxy
255
- {
256
- return new Proxy($object);
257
- }
258
-
259
- /**
260
- * Requiring PHPUnit TestCase's method.
261
- *
262
- * @param string $className Name of the class to get a builder for.
263
- *
264
- * @return MockBuilder The mock builder.
265
- */
266
- abstract function getMockBuilder($className);
267
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/test/unit/CompositeCachingServiceProviderTest.php DELETED
@@ -1,136 +0,0 @@
1
- <?php
2
-
3
- namespace Dhii\Container\UnitTest;
4
-
5
- use Dhii\Container\TestHelpers\ComponentMockeryTrait;
6
- use Dhii\Container\CompositeCachingServiceProvider as TestSubject;
7
- use Exception;
8
- use PHPUnit\Framework\MockObject\MockObject;
9
- use PHPUnit\Framework\TestCase;
10
-
11
- class CompositeCachingServiceProviderTest extends TestCase
12
- {
13
- use ComponentMockeryTrait;
14
-
15
- /**
16
- * Creates a new instance of the test subject mock.
17
- *
18
- * @param array|null $methods The methods to mock.
19
- * Use `null` to not mock anything. Use empty array to mock everything.
20
- * @param array|null $dependencies The parameters for the subject constructor.
21
- * Use `null` to disable the original constructor.
22
- *
23
- * @return MockObject|TestSubject
24
- *
25
- * @throws Exception If problem creating.
26
- */
27
- protected function createSubject($methods = [], $dependencies = null)
28
- {
29
- $mock = $this->createMockBuilder(TestSubject::class, $methods, $dependencies)
30
- ->getMock();
31
-
32
- return $mock;
33
- }
34
-
35
- /**
36
- * Tests whether extensions get correctly merged.
37
- *
38
- * Extensions are merged correctly if new extensions are added "inside" old
39
- * extensions, without overriding them, such that both the old and the
40
- * new extensions get run, in that order, passing down the result of the old
41
- * extension to the new.
42
- *
43
- * @throws Exception If problem testing.
44
- */
45
- public function testMergeExtensions()
46
- {
47
- {
48
- $container = $this->createContainer([]);
49
- $prev1 = uniqid('prev1');
50
- $prev2 = uniqid('prev2');
51
- $prev3 = uniqid('prev3');
52
- $prev4 = uniqid('prev3');
53
- $func1 = $this->createCallable(function () use ($prev1) {
54
- return $prev1;
55
- });
56
- $func2 = $this->createCallable(function () use ($prev2) {
57
- return $prev2;
58
- });
59
- $func3 = $this->createCallable(function () use ($prev3) {
60
- return $prev3;
61
- });
62
- $func4 = $this->createCallable(function () use ($prev4) {
63
- return $prev4;
64
- });
65
-
66
- $defaults = [
67
- 'one' => $func1,
68
- 'two' => $func2,
69
- ];
70
-
71
- $extensions = [
72
- 'two' => $func3,
73
- 'three' => $func4,
74
- ];
75
-
76
- $subject = $this->createSubject(['_mergeFactories']);
77
- $_subject = $this->proxy($subject);
78
-
79
- $subject->expects($this->exactly(1))
80
- ->method('_mergeFactories')
81
- ->willReturnCallback(function ($a, $b) {
82
- return array_merge($a, $b);
83
- });
84
-
85
- $func1->expects($this->exactly(1))
86
- ->method('__invoke')
87
- ->with($container, $prev1);
88
- $func2->expects($this->exactly(1))
89
- ->method('__invoke')
90
- ->with($container, $prev2);
91
- $func3->expects($this->exactly(1))
92
- ->method('__invoke')
93
- ->with($container, $prev2);
94
- $func4->expects($this->exactly(1))
95
- ->method('__invoke')
96
- ->with($container, $prev4);
97
-
98
- }
99
-
100
- {
101
- $result = $_subject->_mergeExtensions($defaults, $extensions);
102
- }
103
-
104
- {
105
- // Checking structure of result
106
- $this->assertCount(3, $result);
107
- $this->assertArrayHasKey('one', $result);
108
- $this->assertArrayHasKey('two', $result);
109
- $this->assertArrayHasKey('three', $result);
110
-
111
- // Checking first (simple) extension
112
- $this->assertInternalType('callable', $result['one']);
113
- $this->assertEquals(
114
- $prev1,
115
- $result['one']($container, $prev1),
116
- 'Simple extension must return passed value'
117
- );
118
-
119
- // Checking second (compound) extension
120
- $this->assertInternalType('callable', $result['two']);
121
- $this->assertEquals(
122
- $prev3,
123
- $result['two']($container, $prev2),
124
- 'Compound extension must return inner-most value'
125
- );
126
-
127
- // Checking third (simple) extension
128
- $this->assertInternalType('callable', $result['three']);
129
- $this->assertEquals(
130
- $prev4,
131
- $result['three']($container, $prev4),
132
- 'Simple extension must return passed value'
133
- );
134
- }
135
- }
136
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/containers/test/unit/ProxyContainerTest.php DELETED
@@ -1,112 +0,0 @@
1
- <?php
2
-
3
- namespace Dhii\Container\UnitTest;
4
-
5
- use Dhii\Container\ProxyContainer as TestSubject;
6
- use Dhii\Container\TestHelpers\ComponentMockeryTrait;
7
- use Dhii\Data\Container\ContainerInterface;
8
- use PHPUnit\Framework\MockObject\MockObject;
9
- use PHPUnit\Framework\TestCase;
10
- use Psr\Container\ContainerExceptionInterface;
11
- use Psr\Container\NotFoundExceptionInterface;
12
-
13
- class ProxyContainerTest extends TestCase
14
- {
15
- use ComponentMockeryTrait;
16
-
17
- /**
18
- * @return TestSubject&MockObject
19
- */
20
- protected function createInstance(): TestSubject
21
- {
22
- $mock = $this->getMockBuilder(TestSubject::class)
23
- ->setMethods(null)
24
- ->getMock();
25
-
26
- return $mock;
27
- }
28
-
29
- /**
30
- * @param array $services
31
- *
32
- * @return ContainerInterface
33
- */
34
- // protected function createContainer(array $services): ContainerInterface
35
- // {
36
- // $mock = $this->getMockBuilder(ContainerInterface::class)
37
- // ->setMethods(['get', 'has'])
38
- // ->getMock();
39
- //
40
- // $mock->method('has')
41
- // ->will($this->returnCallback(function ($key) use ($services) {
42
- // return array_key_exists($key, $services);
43
- // }));
44
- // $mock->method('get')
45
- // ->will($this->returnCallback(function ($key) use ($services) {
46
- // if (!array_key_exists($key, $services)) {
47
- // throw new NotFoundException();
48
- // }
49
- //
50
- // return $services[$key];
51
- // }));
52
- //
53
- // return $mock;
54
- // }
55
-
56
- /**
57
- * Tests that calls and return values are being proxied correctly.
58
- */
59
- public function testProxy()
60
- {
61
- {
62
- $nonExistingKey = uniqid('not-here');
63
- $key = uniqid('key');
64
- $value = uniqid('value');
65
- $services = [
66
- $key => $value,
67
- ];
68
- $container = $this->createContainer($services);
69
- $subject = $this->createInstance();
70
- }
71
-
72
- {
73
- $subject->setInnerContainer($container);
74
- $this->assertTrue($subject->has($key));
75
- $this->assertEquals($value, $subject->get($key));
76
-
77
- $this->assertFalse($subject->has($nonExistingKey));
78
- $this->expectException(NotFoundExceptionInterface::class);
79
- $subject->get($nonExistingKey);
80
- }
81
- }
82
-
83
- /**
84
- * Tests that the subject reacts correctly when the inner container is missing.
85
- */
86
- public function testHasMissingContainer()
87
- {
88
- {
89
- $subject = $this->createInstance();
90
- }
91
-
92
- {
93
- $this->expectException(ContainerExceptionInterface::class);
94
- $subject->has(uniqid('not-there'));
95
- }
96
- }
97
-
98
- /**
99
- * Tests that the subject reacts correctly when the inner container is missing.
100
- */
101
- public function testGetMissingContainer()
102
- {
103
- {
104
- $subject = $this->createInstance();
105
- }
106
-
107
- {
108
- $this->expectException(ContainerExceptionInterface::class);
109
- $subject->get(uniqid('not-there'));
110
- }
111
- }
112
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/{module-interface → data-key-value-aware-interface}/.codeclimate.yml RENAMED
@@ -9,10 +9,6 @@ engines:
9
  enabled: true
10
  phpmd:
11
  enabled: true
12
- config:
13
- file_extensions:
14
- - php
15
- rulesets: "phpmd.xml"
16
  ratings:
17
  paths:
18
  - "**.inc"
9
  enabled: true
10
  phpmd:
11
  enabled: true
 
 
 
 
12
  ratings:
13
  paths:
14
  - "**.inc"
vendor/dhii/{module-interface → data-key-value-aware-interface}/.php_cs RENAMED
@@ -9,7 +9,7 @@ foreach ($toRemove as $_fixer) {
9
  if (($removeIndex = array_search($_fixer, $fixers)) === false) {
10
  continue;
11
  }
12
-
13
  unset($fixers[$removeIndex]);
14
  }
15
 
@@ -18,7 +18,7 @@ foreach ($toAdd as $_fixer) {
18
  if (($removeIndex = array_search($_fixer, $fixers)) !== false) {
19
  continue;
20
  }
21
-
22
  $fixers[] = $_fixer;
23
  }
24
 
9
  if (($removeIndex = array_search($_fixer, $fixers)) === false) {
10
  continue;
11
  }
12
+
13
  unset($fixers[$removeIndex]);
14
  }
15
 
18
  if (($removeIndex = array_search($_fixer, $fixers)) !== false) {
19
  continue;
20
  }
21
+
22
  $fixers[] = $_fixer;
23
  }
24
 
vendor/dhii/data-key-value-aware-interface/CHANGELOG.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Change log
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
+ and this project adheres to [Semantic Versioning](http://semver.org/).
6
+
7
+ ## [0.1] - 2017-01-21
8
+ Initial release, of the interop interfaces.
9
+
10
+ ### Added
11
+ - Interop interfaces.
12
+ - Tests
vendor/dhii/data-key-value-aware-interface/README.md ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ ## Key/Value Aware Interface ##
2
+ [![Build Status](https://travis-ci.org/Dhii/data-key-value-aware-interface.svg?branch=master)](https://travis-ci.org/Dhii/data-key-value-aware-interface)
3
+ [![Code Climate](https://codeclimate.com/github/Dhii/data-key-value-aware-interface/badges/gpa.svg)](https://codeclimate.com/github/Dhii/data-key-value-aware-interface)
4
+ [![Test Coverage](https://codeclimate.com/github/Dhii/data-key-value-aware-interface/badges/coverage.svg)](https://codeclimate.com/github/Dhii/data-key-value-aware-interface/coverage)
5
+
6
+ Increase interoperability of value objects by depending on this package.
vendor/dhii/data-key-value-aware-interface/composer.json ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "dhii/data-key-value-aware-interface",
3
+ "description": "Interfaces that aim to increase interoperability of value objects",
4
+ "type": "library",
5
+ "license": "MIT",
6
+ "authors": [
7
+ {
8
+ "name": "Dhii Team",
9
+ "email": "development@dhii.co"
10
+ }
11
+ ],
12
+ "minimum-stability": "dev",
13
+ "require": {
14
+ "php": "^5.3 | ^7.0"
15
+ },
16
+ "require-dev": {
17
+ "dhii/php-cs-fixer-config": "dev-php-5.3",
18
+ "phpunit/phpunit": "4.*",
19
+ "codeclimate/php-test-reporter": "<=0.3.2",
20
+ "ptrofimov/xpmock": "^1.1"
21
+ },
22
+ "autoload": {
23
+ "psr-4": {
24
+ "Dhii\\Data\\": "src/"
25
+ }
26
+ }
27
+ }
vendor/dhii/{containers → data-key-value-aware-interface}/composer.lock RENAMED
@@ -1,129 +1,50 @@
1
  {
2
  "_readme": [
3
  "This file locks the dependencies of your project to a known state",
4
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5
  "This file is @generated automatically"
6
  ],
7
- "content-hash": "51bcbb49f5c231b1ed812a75fd7a0a51",
8
- "packages": [
9
- {
10
- "name": "container-interop/service-provider",
11
- "version": "v0.4.0",
12
- "source": {
13
- "type": "git",
14
- "url": "https://github.com/container-interop/service-provider.git",
15
- "reference": "4969b9e49460690b7430b3f1a87cab07be61418a"
16
- },
17
- "dist": {
18
- "type": "zip",
19
- "url": "https://api.github.com/repos/container-interop/service-provider/zipball/4969b9e49460690b7430b3f1a87cab07be61418a",
20
- "reference": "4969b9e49460690b7430b3f1a87cab07be61418a",
21
- "shasum": ""
22
- },
23
- "require": {
24
- "psr/container": "^1.0"
25
- },
26
- "type": "library",
27
- "autoload": {
28
- "psr-4": {
29
- "Interop\\Container\\": "src/"
30
- }
31
- },
32
- "notification-url": "https://packagist.org/downloads/",
33
- "license": [
34
- "MIT"
35
- ],
36
- "description": "Promoting container interoperability through standard service providers",
37
- "homepage": "https://github.com/container-interop/service-provider",
38
- "time": "2017-09-20T14:13:36+00:00"
39
- },
40
  {
41
- "name": "dhii/data-container-interface",
42
- "version": "v0.2-alpha3",
43
  "source": {
44
  "type": "git",
45
- "url": "https://github.com/Dhii/data-container-interface.git",
46
- "reference": "b9767d34214fa4d73f10989fca4ad54196a7b7f3"
47
  },
48
  "dist": {
49
  "type": "zip",
50
- "url": "https://api.github.com/repos/Dhii/data-container-interface/zipball/b9767d34214fa4d73f10989fca4ad54196a7b7f3",
51
- "reference": "b9767d34214fa4d73f10989fca4ad54196a7b7f3",
52
  "shasum": ""
53
  },
54
  "require": {
55
- "dhii/exception-interface": "^0.1 | ^0.2",
56
- "dhii/factory-interface": "^0.1-alpha1",
57
- "php": "^5.3 | ^7.0",
58
- "psr/container": "^1.0"
59
  },
60
  "require-dev": {
61
- "codeclimate/php-test-reporter": "<=0.3.2",
62
- "dhii/php-cs-fixer-config": "dev-php-5.3",
63
- "dhii/stringable-interface": "^0.1",
64
- "phpunit/phpunit": "^4.8",
65
- "ptrofimov/xpmock": "^1.1"
66
- },
67
- "suggest": {
68
- "dhii/stringable-interface": "To be able to pass Stringables as keys"
69
- },
70
- "type": "library",
71
- "extra": {
72
- "branch-alias": {
73
- "dev-develop": "0.2.x-dev"
74
- }
75
- },
76
- "autoload": {
77
- "psr-4": {
78
- "Dhii\\Data\\Container\\": "src"
79
- }
80
  },
81
- "notification-url": "https://packagist.org/downloads/",
82
- "license": [
83
- "MIT"
84
- ],
85
- "authors": [
86
- {
87
- "name": "Dhii Team",
88
- "email": "development@dhii.co"
89
- }
90
  ],
91
- "description": "Interfaces for working with data containers",
92
- "time": "2018-04-26T09:50:30+00:00"
93
- },
94
- {
95
- "name": "dhii/exception-interface",
96
- "version": "v0.2",
97
- "source": {
98
- "type": "git",
99
- "url": "https://github.com/Dhii/exception-interface.git",
100
- "reference": "b69feebf7cb2879cd43977a03342e2393b73f7fb"
101
- },
102
- "dist": {
103
- "type": "zip",
104
- "url": "https://api.github.com/repos/Dhii/exception-interface/zipball/b69feebf7cb2879cd43977a03342e2393b73f7fb",
105
- "reference": "b69feebf7cb2879cd43977a03342e2393b73f7fb",
106
- "shasum": ""
107
- },
108
- "require": {
109
- "dhii/stringable-interface": "^0.1",
110
- "php": "^5.3 | ^7.0"
111
- },
112
- "require-dev": {
113
- "codeclimate/php-test-reporter": "<=0.3.2",
114
- "dhii/php-cs-fixer-config": "dev-php-5.3",
115
- "phpunit/phpunit": "^4.8",
116
- "ptrofimov/xpmock": "^1.1"
117
- },
118
  "type": "library",
119
  "extra": {
120
  "branch-alias": {
121
- "dev-develop": "0.2.x-dev"
122
  }
123
  },
124
  "autoload": {
125
- "psr-4": {
126
- "Dhii\\Exception\\": "src"
 
127
  }
128
  },
129
  "notification-url": "https://packagist.org/downloads/",
@@ -132,90 +53,44 @@
132
  ],
133
  "authors": [
134
  {
135
- "name": "Dhii Team",
136
- "email": "development@dhii.co"
137
- }
138
- ],
139
- "description": "Interfaces for most common exceptions",
140
- "time": "2018-08-29T10:42:04+00:00"
141
- },
142
- {
143
- "name": "dhii/factory-interface",
144
- "version": "v0.1",
145
- "source": {
146
- "type": "git",
147
- "url": "https://github.com/Dhii/factory-interface.git",
148
- "reference": "b8d217aec8838e64ccaa770cb03dc164bf6f0515"
149
- },
150
- "dist": {
151
- "type": "zip",
152
- "url": "https://api.github.com/repos/Dhii/factory-interface/zipball/b8d217aec8838e64ccaa770cb03dc164bf6f0515",
153
- "reference": "b8d217aec8838e64ccaa770cb03dc164bf6f0515",
154
- "shasum": ""
155
- },
156
- "require": {
157
- "dhii/exception-interface": "^0.1|^0.2",
158
- "php": "^5.3 | ^7.0"
159
- },
160
- "require-dev": {
161
- "codeclimate/php-test-reporter": "<=0.3.2",
162
- "dhii/php-cs-fixer-config": "dev-php-5.3",
163
- "dhii/stringable-interface": "^0.1",
164
- "phpunit/phpunit": "^4.8",
165
- "psr/container": "^1.0",
166
- "ptrofimov/xpmock": "^1.1"
167
- },
168
- "type": "library",
169
- "extra": {
170
- "branch-alias": {
171
- "dev-develop": "0.1.x-dev"
172
  }
173
- },
174
- "autoload": {
175
- "psr-4": {
176
- "Dhii\\Factory\\": "src"
177
- }
178
- },
179
- "notification-url": "https://packagist.org/downloads/",
180
- "license": [
181
- "MIT"
182
  ],
183
- "authors": [
184
- {
185
- "name": "Dhii Team",
186
- "email": "development@dhii.co"
187
- }
188
  ],
189
- "description": "Interfaces for working with factories.",
190
- "time": "2018-08-29T11:15:09+00:00"
191
  },
192
  {
193
- "name": "dhii/stringable-interface",
194
- "version": "v0.1",
195
  "source": {
196
  "type": "git",
197
- "url": "https://github.com/Dhii/stringable-interface.git",
198
- "reference": "b6653905eef2ebf377749feb80a6d18abbe913ef"
199
  },
200
  "dist": {
201
  "type": "zip",
202
- "url": "https://api.github.com/repos/Dhii/stringable-interface/zipball/b6653905eef2ebf377749feb80a6d18abbe913ef",
203
- "reference": "b6653905eef2ebf377749feb80a6d18abbe913ef",
204
  "shasum": ""
205
  },
206
  "require": {
 
207
  "php": "^5.3 | ^7.0"
208
  },
209
  "require-dev": {
210
- "codeclimate/php-test-reporter": "<=0.3.2",
211
- "dhii/php-cs-fixer-config": "dev-php-5.3",
212
- "phpunit/phpunit": "^4.8",
213
- "ptrofimov/xpmock": "^1.1"
214
  },
215
  "type": "library",
216
  "autoload": {
217
  "psr-4": {
218
- "Dhii\\Util\\String\\": "src/"
219
  }
220
  },
221
  "notification-url": "https://packagist.org/downloads/",
@@ -228,72 +103,21 @@
228
  "email": "development@dhii.co"
229
  }
230
  ],
231
- "description": "Interoperability interface for objects that can be cast to string",
232
- "time": "2017-01-23T15:08:20+00:00"
233
  },
234
- {
235
- "name": "psr/container",
236
- "version": "1.0.0",
237
- "source": {
238
- "type": "git",
239
- "url": "https://github.com/php-fig/container.git",
240
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
241
- },
242
- "dist": {
243
- "type": "zip",
244
- "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
245
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
246
- "shasum": ""
247
- },
248
- "require": {
249
- "php": ">=5.3.0"
250
- },
251
- "type": "library",
252
- "extra": {
253
- "branch-alias": {
254
- "dev-master": "1.0.x-dev"
255
- }
256
- },
257
- "autoload": {
258
- "psr-4": {
259
- "Psr\\Container\\": "src/"
260
- }
261
- },
262
- "notification-url": "https://packagist.org/downloads/",
263
- "license": [
264
- "MIT"
265
- ],
266
- "authors": [
267
- {
268
- "name": "PHP-FIG",
269
- "homepage": "http://www.php-fig.org/"
270
- }
271
- ],
272
- "description": "Common Container Interface (PHP FIG PSR-11)",
273
- "homepage": "https://github.com/php-fig/container",
274
- "keywords": [
275
- "PSR-11",
276
- "container",
277
- "container-interface",
278
- "container-interop",
279
- "psr"
280
- ],
281
- "time": "2017-02-14T16:28:37+00:00"
282
- }
283
- ],
284
- "packages-dev": [
285
  {
286
  "name": "doctrine/instantiator",
287
- "version": "1.0.5",
288
  "source": {
289
  "type": "git",
290
  "url": "https://github.com/doctrine/instantiator.git",
291
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
292
  },
293
  "dist": {
294
  "type": "zip",
295
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
296
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
297
  "shasum": ""
298
  },
299
  "require": {
@@ -334,37 +158,47 @@
334
  "constructor",
335
  "instantiate"
336
  ],
337
- "time": "2015-06-14T21:17:01+00:00"
338
  },
339
  {
340
- "name": "gmazzap/andrew",
341
- "version": "1.1.0",
342
  "source": {
343
  "type": "git",
344
- "url": "https://github.com/Giuseppe-Mazzapica/Andrew.git",
345
- "reference": "5ab634023e275464ff919278b84b9389f2ec012f"
346
  },
347
  "dist": {
348
  "type": "zip",
349
- "url": "https://api.github.com/repos/Giuseppe-Mazzapica/Andrew/zipball/5ab634023e275464ff919278b84b9389f2ec012f",
350
- "reference": "5ab634023e275464ff919278b84b9389f2ec012f",
351
  "shasum": ""
352
  },
353
  "require": {
354
- "php": ">=5.4"
 
 
 
 
 
 
 
 
355
  },
356
- "require-dev": {
357
- "phpunit/phpunit": "~4.4"
358
  },
359
- "type": "library",
360
- "extra": {
361
- "branch-alias": {
362
- "dev-master": "1.x-dev"
363
- }
364
  },
 
 
 
 
365
  "autoload": {
366
  "psr-4": {
367
- "Andrew\\": "src/"
368
  }
369
  },
370
  "notification-url": "https://packagist.org/downloads/",
@@ -373,179 +207,125 @@
373
  ],
374
  "authors": [
375
  {
376
- "name": "Giuseppe Mazzapica",
377
- "email": "giuseppe.mazzapica@gmail.com",
378
- "homepage": "http://gm.zoomlab.it",
379
- "role": "Developer"
 
 
380
  }
381
  ],
382
- "description": "Proxy objects to access (dynamic and static) private properties and methods.",
383
- "homepage": "https://github.com/Giuseppe-Mazzapica/Andrew",
384
- "keywords": [
385
- "proxy objects",
386
- "unit tests"
387
- ],
388
- "time": "2016-09-15T17:29:10+00:00"
389
  },
390
  {
391
- "name": "myclabs/deep-copy",
392
- "version": "1.7.0",
393
  "source": {
394
  "type": "git",
395
- "url": "https://github.com/myclabs/DeepCopy.git",
396
- "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
397
  },
398
  "dist": {
399
  "type": "zip",
400
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
401
- "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
402
  "shasum": ""
403
  },
404
  "require": {
405
- "php": "^5.6 || ^7.0"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
406
  },
407
  "require-dev": {
408
- "doctrine/collections": "^1.0",
409
- "doctrine/common": "^2.6",
410
- "phpunit/phpunit": "^4.1"
411
- },
412
- "type": "library",
413
- "autoload": {
414
- "psr-4": {
415
- "DeepCopy\\": "src/DeepCopy/"
416
- },
417
- "files": [
418
- "src/DeepCopy/deep_copy.php"
419
- ]
420
- },
421
- "notification-url": "https://packagist.org/downloads/",
422
- "license": [
423
- "MIT"
424
- ],
425
- "description": "Create deep copies (clones) of your objects",
426
- "keywords": [
427
- "clone",
428
- "copy",
429
- "duplicate",
430
- "object",
431
- "object graph"
432
- ],
433
- "time": "2017-10-19T19:58:43+00:00"
434
- },
435
- {
436
- "name": "phar-io/manifest",
437
- "version": "1.0.1",
438
- "source": {
439
- "type": "git",
440
- "url": "https://github.com/phar-io/manifest.git",
441
- "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0"
442
- },
443
- "dist": {
444
- "type": "zip",
445
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0",
446
- "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0",
447
- "shasum": ""
448
  },
449
- "require": {
450
- "ext-dom": "*",
451
- "ext-phar": "*",
452
- "phar-io/version": "^1.0.1",
453
- "php": "^5.6 || ^7.0"
454
  },
455
  "type": "library",
456
  "extra": {
457
  "branch-alias": {
458
- "dev-master": "1.0.x-dev"
459
  }
460
  },
461
  "autoload": {
462
- "classmap": [
463
- "src/"
464
- ]
465
- },
466
- "notification-url": "https://packagist.org/downloads/",
467
- "license": [
468
- "BSD-3-Clause"
469
- ],
470
- "authors": [
471
- {
472
- "name": "Arne Blankerts",
473
- "email": "arne@blankerts.de",
474
- "role": "Developer"
475
- },
476
- {
477
- "name": "Sebastian Heuer",
478
- "email": "sebastian@phpeople.de",
479
- "role": "Developer"
480
- },
481
- {
482
- "name": "Sebastian Bergmann",
483
- "email": "sebastian@phpunit.de",
484
- "role": "Developer"
485
  }
486
- ],
487
- "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
488
- "time": "2017-03-05T18:14:27+00:00"
489
- },
490
- {
491
- "name": "phar-io/version",
492
- "version": "1.0.1",
493
- "source": {
494
- "type": "git",
495
- "url": "https://github.com/phar-io/version.git",
496
- "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df"
497
- },
498
- "dist": {
499
- "type": "zip",
500
- "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df",
501
- "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df",
502
- "shasum": ""
503
- },
504
- "require": {
505
- "php": "^5.6 || ^7.0"
506
- },
507
- "type": "library",
508
- "autoload": {
509
- "classmap": [
510
- "src/"
511
- ]
512
  },
513
  "notification-url": "https://packagist.org/downloads/",
514
  "license": [
515
- "BSD-3-Clause"
516
  ],
517
  "authors": [
518
  {
519
- "name": "Arne Blankerts",
520
- "email": "arne@blankerts.de",
521
- "role": "Developer"
522
  },
523
  {
524
- "name": "Sebastian Heuer",
525
- "email": "sebastian@phpeople.de",
526
- "role": "Developer"
527
- },
528
- {
529
- "name": "Sebastian Bergmann",
530
- "email": "sebastian@phpunit.de",
531
- "role": "Developer"
532
  }
533
  ],
534
- "description": "Library for handling version information and constraints",
535
- "time": "2017-03-05T17:38:23+00:00"
 
 
 
 
 
 
 
 
 
 
 
536
  },
537
  {
538
  "name": "phpdocumentor/reflection-common",
539
- "version": "1.0.1",
540
  "source": {
541
  "type": "git",
542
  "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
543
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
544
  },
545
  "dist": {
546
  "type": "zip",
547
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
548
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
549
  "shasum": ""
550
  },
551
  "require": {
@@ -586,39 +366,33 @@
586
  "reflection",
587
  "static analysis"
588
  ],
589
- "time": "2017-09-11T18:02:19+00:00"
590
  },
591
  {
592
  "name": "phpdocumentor/reflection-docblock",
593
- "version": "4.3.1",
594
  "source": {
595
  "type": "git",
596
  "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
597
- "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c"
598
  },
599
  "dist": {
600
  "type": "zip",
601
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
602
- "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
603
  "shasum": ""
604
  },
605
  "require": {
606
- "php": "^7.0",
607
- "phpdocumentor/reflection-common": "^1.0.0",
608
- "phpdocumentor/type-resolver": "^0.4.0",
609
  "webmozart/assert": "^1.0"
610
  },
611
  "require-dev": {
612
- "doctrine/instantiator": "~1.0.5",
613
- "mockery/mockery": "^1.0",
614
- "phpunit/phpunit": "^6.4"
615
  },
616
  "type": "library",
617
- "extra": {
618
- "branch-alias": {
619
- "dev-master": "4.x-dev"
620
- }
621
- },
622
  "autoload": {
623
  "psr-4": {
624
  "phpDocumentor\\Reflection\\": [
@@ -637,24 +411,24 @@
637
  }
638
  ],
639
  "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
640
- "time": "2019-04-30T17:48:53+00:00"
641
  },
642
  {
643
  "name": "phpdocumentor/type-resolver",
644
- "version": "0.4.0",
645
  "source": {
646
  "type": "git",
647
  "url": "https://github.com/phpDocumentor/TypeResolver.git",
648
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
649
  },
650
  "dist": {
651
  "type": "zip",
652
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
653
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
654
  "shasum": ""
655
  },
656
  "require": {
657
- "php": "^5.5 || ^7.0",
658
  "phpdocumentor/reflection-common": "^1.0"
659
  },
660
  "require-dev": {
@@ -684,37 +458,37 @@
684
  "email": "me@mikevanriel.com"
685
  }
686
  ],
687
- "time": "2017-07-14T14:27:02+00:00"
688
  },
689
  {
690
  "name": "phpspec/prophecy",
691
- "version": "1.8.0",
692
  "source": {
693
  "type": "git",
694
  "url": "https://github.com/phpspec/prophecy.git",
695
- "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06"
696
  },
697
  "dist": {
698
  "type": "zip",
699
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
700
- "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
701
  "shasum": ""
702
  },
703
  "require": {
704
  "doctrine/instantiator": "^1.0.2",
705
  "php": "^5.3|^7.0",
706
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
707
- "sebastian/comparator": "^1.1|^2.0|^3.0",
708
- "sebastian/recursion-context": "^1.0|^2.0|^3.0"
709
  },
710
  "require-dev": {
711
- "phpspec/phpspec": "^2.5|^3.2",
712
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
713
  },
714
  "type": "library",
715
  "extra": {
716
  "branch-alias": {
717
- "dev-master": "1.8.x-dev"
718
  }
719
  },
720
  "autoload": {
@@ -747,44 +521,43 @@
747
  "spy",
748
  "stub"
749
  ],
750
- "time": "2018-08-05T17:53:17+00:00"
751
  },
752
  {
753
  "name": "phpunit/php-code-coverage",
754
- "version": "5.3.2",
755
  "source": {
756
  "type": "git",
757
  "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
758
- "reference": "c89677919c5dd6d3b3852f230a663118762218ac"
759
  },
760
  "dist": {
761
  "type": "zip",
762
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac",
763
- "reference": "c89677919c5dd6d3b3852f230a663118762218ac",
764
  "shasum": ""
765
  },
766
  "require": {
767
- "ext-dom": "*",
768
- "ext-xmlwriter": "*",
769
- "php": "^7.0",
770
- "phpunit/php-file-iterator": "^1.4.2",
771
- "phpunit/php-text-template": "^1.2.1",
772
- "phpunit/php-token-stream": "^2.0.1",
773
- "sebastian/code-unit-reverse-lookup": "^1.0.1",
774
- "sebastian/environment": "^3.0",
775
- "sebastian/version": "^2.0.1",
776
- "theseer/tokenizer": "^1.1"
777
  },
778
  "require-dev": {
779
- "phpunit/phpunit": "^6.0"
 
780
  },
781
  "suggest": {
782
- "ext-xdebug": "^2.5.5"
 
 
783
  },
784
  "type": "library",
785
  "extra": {
786
  "branch-alias": {
787
- "dev-master": "5.3.x-dev"
788
  }
789
  },
790
  "autoload": {
@@ -799,7 +572,7 @@
799
  "authors": [
800
  {
801
  "name": "Sebastian Bergmann",
802
- "email": "sebastian@phpunit.de",
803
  "role": "lead"
804
  }
805
  ],
@@ -810,20 +583,20 @@
810
  "testing",
811
  "xunit"
812
  ],
813
- "time": "2018-04-06T15:36:58+00:00"
814
  },
815
  {
816
  "name": "phpunit/php-file-iterator",
817
- "version": "1.4.5",
818
  "source": {
819
  "type": "git",
820
  "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
821
- "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
822
  },
823
  "dist": {
824
  "type": "zip",
825
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
826
- "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
827
  "shasum": ""
828
  },
829
  "require": {
@@ -857,7 +630,7 @@
857
  "filesystem",
858
  "iterator"
859
  ],
860
- "time": "2017-11-27T13:52:08+00:00"
861
  },
862
  {
863
  "name": "phpunit/php-text-template",
@@ -898,34 +671,29 @@
898
  "keywords": [
899
  "template"
900
  ],
901
- "time": "2015-06-21T13:50:34+00:00"
902
  },
903
  {
904
  "name": "phpunit/php-timer",
905
- "version": "1.0.9",
906
  "source": {
907
  "type": "git",
908
  "url": "https://github.com/sebastianbergmann/php-timer.git",
909
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
910
  },
911
  "dist": {
912
  "type": "zip",
913
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
914
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
915
  "shasum": ""
916
  },
917
  "require": {
918
- "php": "^5.3.3 || ^7.0"
919
  },
920
  "require-dev": {
921
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
922
  },
923
  "type": "library",
924
- "extra": {
925
- "branch-alias": {
926
- "dev-master": "1.0-dev"
927
- }
928
- },
929
  "autoload": {
930
  "classmap": [
931
  "src/"
@@ -947,33 +715,33 @@
947
  "keywords": [
948
  "timer"
949
  ],
950
- "time": "2017-02-26T11:10:40+00:00"
951
  },
952
  {
953
  "name": "phpunit/php-token-stream",
954
- "version": "2.0.2",
955
  "source": {
956
  "type": "git",
957
  "url": "https://github.com/sebastianbergmann/php-token-stream.git",
958
- "reference": "791198a2c6254db10131eecfe8c06670700904db"
959
  },
960
  "dist": {
961
  "type": "zip",
962
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
963
- "reference": "791198a2c6254db10131eecfe8c06670700904db",
964
  "shasum": ""
965
  },
966
  "require": {
967
  "ext-tokenizer": "*",
968
- "php": "^7.0"
969
  },
970
  "require-dev": {
971
- "phpunit/phpunit": "^6.2.4"
972
  },
973
  "type": "library",
974
  "extra": {
975
  "branch-alias": {
976
- "dev-master": "2.0-dev"
977
  }
978
  },
979
  "autoload": {
@@ -996,57 +764,45 @@
996
  "keywords": [
997
  "tokenizer"
998
  ],
999
- "time": "2017-11-27T05:48:46+00:00"
1000
  },
1001
  {
1002
  "name": "phpunit/phpunit",
1003
- "version": "6.5.14",
1004
  "source": {
1005
  "type": "git",
1006
  "url": "https://github.com/sebastianbergmann/phpunit.git",
1007
- "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7"
1008
  },
1009
  "dist": {
1010
  "type": "zip",
1011
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bac23fe7ff13dbdb461481f706f0e9fe746334b7",
1012
- "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7",
1013
  "shasum": ""
1014
  },
1015
  "require": {
1016
  "ext-dom": "*",
1017
  "ext-json": "*",
1018
- "ext-libxml": "*",
1019
- "ext-mbstring": "*",
1020
- "ext-xml": "*",
1021
- "myclabs/deep-copy": "^1.6.1",
1022
- "phar-io/manifest": "^1.0.1",
1023
- "phar-io/version": "^1.0",
1024
- "php": "^7.0",
1025
- "phpspec/prophecy": "^1.7",
1026
- "phpunit/php-code-coverage": "^5.3",
1027
- "phpunit/php-file-iterator": "^1.4.3",
1028
- "phpunit/php-text-template": "^1.2.1",
1029
- "phpunit/php-timer": "^1.0.9",
1030
- "phpunit/phpunit-mock-objects": "^5.0.9",
1031
- "sebastian/comparator": "^2.1",
1032
- "sebastian/diff": "^2.0",
1033
- "sebastian/environment": "^3.1",
1034
- "sebastian/exporter": "^3.1",
1035
- "sebastian/global-state": "^2.0",
1036
- "sebastian/object-enumerator": "^3.0.3",
1037
- "sebastian/resource-operations": "^1.0",
1038
- "sebastian/version": "^2.0.1"
1039
- },
1040
- "conflict": {
1041
- "phpdocumentor/reflection-docblock": "3.0.2",
1042
- "phpunit/dbunit": "<3.0"
1043
- },
1044
- "require-dev": {
1045
- "ext-pdo": "*"
1046
  },
1047
  "suggest": {
1048
- "ext-xdebug": "*",
1049
- "phpunit/php-invoker": "^1.1"
1050
  },
1051
  "bin": [
1052
  "phpunit"
@@ -1054,7 +810,7 @@
1054
  "type": "library",
1055
  "extra": {
1056
  "branch-alias": {
1057
- "dev-master": "6.5.x-dev"
1058
  }
1059
  },
1060
  "autoload": {
@@ -1080,33 +836,30 @@
1080
  "testing",
1081
  "xunit"
1082
  ],
1083
- "time": "2019-02-01T05:22:47+00:00"
1084
  },
1085
  {
1086
  "name": "phpunit/phpunit-mock-objects",
1087
- "version": "5.0.10",
1088
  "source": {
1089
  "type": "git",
1090
  "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1091
- "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f"
1092
  },
1093
  "dist": {
1094
  "type": "zip",
1095
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f",
1096
- "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f",
1097
  "shasum": ""
1098
  },
1099
  "require": {
1100
- "doctrine/instantiator": "^1.0.5",
1101
- "php": "^7.0",
1102
- "phpunit/php-text-template": "^1.2.1",
1103
- "sebastian/exporter": "^3.1"
1104
- },
1105
- "conflict": {
1106
- "phpunit/phpunit": "<6.0"
1107
  },
1108
  "require-dev": {
1109
- "phpunit/phpunit": "^6.5.11"
1110
  },
1111
  "suggest": {
1112
  "ext-soap": "*"
@@ -1114,7 +867,7 @@
1114
  "type": "library",
1115
  "extra": {
1116
  "branch-alias": {
1117
- "dev-master": "5.0.x-dev"
1118
  }
1119
  },
1120
  "autoload": {
@@ -1129,7 +882,7 @@
1129
  "authors": [
1130
  {
1131
  "name": "Sebastian Bergmann",
1132
- "email": "sebastian@phpunit.de",
1133
  "role": "lead"
1134
  }
1135
  ],
@@ -1139,28 +892,24 @@
1139
  "mock",
1140
  "xunit"
1141
  ],
1142
- "abandoned": true,
1143
- "time": "2018-08-09T05:50:03+00:00"
1144
  },
1145
  {
1146
- "name": "sebastian/code-unit-reverse-lookup",
1147
- "version": "1.0.1",
1148
  "source": {
1149
  "type": "git",
1150
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
1151
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
1152
  },
1153
  "dist": {
1154
  "type": "zip",
1155
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1156
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1157
  "shasum": ""
1158
  },
1159
  "require": {
1160
- "php": "^5.6 || ^7.0"
1161
- },
1162
- "require-dev": {
1163
- "phpunit/phpunit": "^5.7 || ^6.0"
1164
  },
1165
  "type": "library",
1166
  "extra": {
@@ -1169,50 +918,146 @@
1169
  }
1170
  },
1171
  "autoload": {
1172
- "classmap": [
1173
- "src/"
1174
- ]
1175
  },
1176
  "notification-url": "https://packagist.org/downloads/",
1177
  "license": [
1178
- "BSD-3-Clause"
1179
  ],
1180
  "authors": [
1181
  {
1182
- "name": "Sebastian Bergmann",
1183
- "email": "sebastian@phpunit.de"
1184
  }
1185
  ],
1186
- "description": "Looks up which function or method a line of code belongs to",
1187
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
1188
- "time": "2017-03-04T06:30:41+00:00"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1189
  },
1190
  {
1191
  "name": "sebastian/comparator",
1192
- "version": "2.1.3",
1193
  "source": {
1194
  "type": "git",
1195
  "url": "https://github.com/sebastianbergmann/comparator.git",
1196
- "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9"
1197
  },
1198
  "dist": {
1199
  "type": "zip",
1200
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9",
1201
- "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9",
1202
  "shasum": ""
1203
  },
1204
  "require": {
1205
- "php": "^7.0",
1206
- "sebastian/diff": "^2.0 || ^3.0",
1207
- "sebastian/exporter": "^3.1"
1208
  },
1209
  "require-dev": {
1210
- "phpunit/phpunit": "^6.4"
1211
  },
1212
  "type": "library",
1213
  "extra": {
1214
  "branch-alias": {
1215
- "dev-master": "2.1.x-dev"
1216
  }
1217
  },
1218
  "autoload": {
@@ -1243,38 +1088,38 @@
1243
  }
1244
  ],
1245
  "description": "Provides the functionality to compare PHP values for equality",
1246
- "homepage": "https://github.com/sebastianbergmann/comparator",
1247
  "keywords": [
1248
  "comparator",
1249
  "compare",
1250
  "equality"
1251
  ],
1252
- "time": "2018-02-01T13:46:46+00:00"
1253
  },
1254
  {
1255
  "name": "sebastian/diff",
1256
- "version": "2.0.1",
1257
  "source": {
1258
  "type": "git",
1259
  "url": "https://github.com/sebastianbergmann/diff.git",
1260
- "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd"
1261
  },
1262
  "dist": {
1263
  "type": "zip",
1264
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
1265
- "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
1266
  "shasum": ""
1267
  },
1268
  "require": {
1269
- "php": "^7.0"
1270
  },
1271
  "require-dev": {
1272
- "phpunit/phpunit": "^6.2"
1273
  },
1274
  "type": "library",
1275
  "extra": {
1276
  "branch-alias": {
1277
- "dev-master": "2.0-dev"
1278
  }
1279
  },
1280
  "autoload": {
@@ -1301,32 +1146,32 @@
1301
  "keywords": [
1302
  "diff"
1303
  ],
1304
- "time": "2017-08-03T08:09:46+00:00"
1305
  },
1306
  {
1307
  "name": "sebastian/environment",
1308
- "version": "3.1.0",
1309
  "source": {
1310
  "type": "git",
1311
  "url": "https://github.com/sebastianbergmann/environment.git",
1312
- "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
1313
  },
1314
  "dist": {
1315
  "type": "zip",
1316
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
1317
- "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
1318
  "shasum": ""
1319
  },
1320
  "require": {
1321
- "php": "^7.0"
1322
  },
1323
  "require-dev": {
1324
- "phpunit/phpunit": "^6.1"
1325
  },
1326
  "type": "library",
1327
  "extra": {
1328
  "branch-alias": {
1329
- "dev-master": "3.1.x-dev"
1330
  }
1331
  },
1332
  "autoload": {
@@ -1351,34 +1196,34 @@
1351
  "environment",
1352
  "hhvm"
1353
  ],
1354
- "time": "2017-07-01T08:51:00+00:00"
1355
  },
1356
  {
1357
  "name": "sebastian/exporter",
1358
- "version": "3.1.0",
1359
  "source": {
1360
  "type": "git",
1361
  "url": "https://github.com/sebastianbergmann/exporter.git",
1362
- "reference": "234199f4528de6d12aaa58b612e98f7d36adb937"
1363
  },
1364
  "dist": {
1365
  "type": "zip",
1366
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937",
1367
- "reference": "234199f4528de6d12aaa58b612e98f7d36adb937",
1368
  "shasum": ""
1369
  },
1370
  "require": {
1371
- "php": "^7.0",
1372
- "sebastian/recursion-context": "^3.0"
1373
  },
1374
  "require-dev": {
1375
  "ext-mbstring": "*",
1376
- "phpunit/phpunit": "^6.0"
1377
  },
1378
  "type": "library",
1379
  "extra": {
1380
  "branch-alias": {
1381
- "dev-master": "3.1.x-dev"
1382
  }
1383
  },
1384
  "autoload": {
@@ -1418,27 +1263,27 @@
1418
  "export",
1419
  "exporter"
1420
  ],
1421
- "time": "2017-04-03T13:19:02+00:00"
1422
  },
1423
  {
1424
  "name": "sebastian/global-state",
1425
- "version": "2.0.0",
1426
  "source": {
1427
  "type": "git",
1428
  "url": "https://github.com/sebastianbergmann/global-state.git",
1429
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
1430
  },
1431
  "dist": {
1432
  "type": "zip",
1433
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
1434
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
1435
  "shasum": ""
1436
  },
1437
  "require": {
1438
- "php": "^7.0"
1439
  },
1440
  "require-dev": {
1441
- "phpunit/phpunit": "^6.0"
1442
  },
1443
  "suggest": {
1444
  "ext-uopz": "*"
@@ -1446,7 +1291,7 @@
1446
  "type": "library",
1447
  "extra": {
1448
  "branch-alias": {
1449
- "dev-master": "2.0-dev"
1450
  }
1451
  },
1452
  "autoload": {
@@ -1469,34 +1314,32 @@
1469
  "keywords": [
1470
  "global state"
1471
  ],
1472
- "time": "2017-04-27T15:39:26+00:00"
1473
  },
1474
  {
1475
- "name": "sebastian/object-enumerator",
1476
- "version": "3.0.3",
1477
  "source": {
1478
  "type": "git",
1479
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
1480
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
1481
  },
1482
  "dist": {
1483
  "type": "zip",
1484
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
1485
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
1486
  "shasum": ""
1487
  },
1488
  "require": {
1489
- "php": "^7.0",
1490
- "sebastian/object-reflector": "^1.1.1",
1491
- "sebastian/recursion-context": "^3.0"
1492
  },
1493
  "require-dev": {
1494
- "phpunit/phpunit": "^6.0"
1495
  },
1496
  "type": "library",
1497
  "extra": {
1498
  "branch-alias": {
1499
- "dev-master": "3.0.x-dev"
1500
  }
1501
  },
1502
  "autoload": {
@@ -1509,315 +1352,422 @@
1509
  "BSD-3-Clause"
1510
  ],
1511
  "authors": [
 
 
 
 
1512
  {
1513
  "name": "Sebastian Bergmann",
1514
  "email": "sebastian@phpunit.de"
 
 
 
 
1515
  }
1516
  ],
1517
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
1518
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
1519
- "time": "2017-08-03T12:35:26+00:00"
1520
  },
1521
  {
1522
- "name": "sebastian/object-reflector",
1523
- "version": "1.1.1",
1524
  "source": {
1525
  "type": "git",
1526
- "url": "https://github.com/sebastianbergmann/object-reflector.git",
1527
- "reference": "773f97c67f28de00d397be301821b06708fca0be"
1528
  },
1529
  "dist": {
1530
  "type": "zip",
1531
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
1532
- "reference": "773f97c67f28de00d397be301821b06708fca0be",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1533
  "shasum": ""
1534
  },
1535
  "require": {
1536
- "php": "^7.0"
 
1537
  },
1538
  "require-dev": {
1539
- "phpunit/phpunit": "^6.0"
 
 
 
1540
  },
1541
  "type": "library",
1542
  "extra": {
1543
  "branch-alias": {
1544
- "dev-master": "1.1-dev"
1545
  }
1546
  },
1547
  "autoload": {
1548
- "classmap": [
1549
- "src/"
 
 
 
1550
  ]
1551
  },
1552
  "notification-url": "https://packagist.org/downloads/",
1553
  "license": [
1554
- "BSD-3-Clause"
1555
  ],
1556
  "authors": [
1557
  {
1558
- "name": "Sebastian Bergmann",
1559
- "email": "sebastian@phpunit.de"
 
 
 
 
1560
  }
1561
  ],
1562
- "description": "Allows reflection of object attributes, including inherited and non-public ones",
1563
- "homepage": "https://github.com/sebastianbergmann/object-reflector/",
1564
- "time": "2017-03-29T09:07:27+00:00"
1565
  },
1566
  {
1567
- "name": "sebastian/recursion-context",
1568
- "version": "3.0.0",
1569
  "source": {
1570
  "type": "git",
1571
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
1572
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
1573
  },
1574
  "dist": {
1575
  "type": "zip",
1576
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
1577
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
1578
  "shasum": ""
1579
  },
1580
  "require": {
1581
- "php": "^7.0"
 
 
1582
  },
1583
  "require-dev": {
1584
- "phpunit/phpunit": "^6.0"
 
 
 
 
 
 
 
 
 
 
 
1585
  },
1586
  "type": "library",
1587
  "extra": {
1588
  "branch-alias": {
1589
- "dev-master": "3.0.x-dev"
1590
  }
1591
  },
1592
  "autoload": {
1593
- "classmap": [
1594
- "src/"
 
 
 
1595
  ]
1596
  },
1597
  "notification-url": "https://packagist.org/downloads/",
1598
  "license": [
1599
- "BSD-3-Clause"
1600
  ],
1601
  "authors": [
1602
  {
1603
- "name": "Jeff Welch",
1604
- "email": "whatthejeff@gmail.com"
1605
- },
1606
- {
1607
- "name": "Sebastian Bergmann",
1608
- "email": "sebastian@phpunit.de"
1609
  },
1610
  {
1611
- "name": "Adam Harvey",
1612
- "email": "aharvey@php.net"
1613
  }
1614
  ],
1615
- "description": "Provides functionality to recursively process PHP variables",
1616
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1617
- "time": "2017-03-03T06:23:57+00:00"
1618
  },
1619
  {
1620
- "name": "sebastian/resource-operations",
1621
- "version": "1.0.0",
1622
  "source": {
1623
  "type": "git",
1624
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
1625
- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
1626
  },
1627
  "dist": {
1628
  "type": "zip",
1629
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1630
- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1631
  "shasum": ""
1632
  },
1633
  "require": {
1634
- "php": ">=5.6.0"
 
 
 
 
 
 
 
1635
  },
1636
  "type": "library",
1637
  "extra": {
1638
  "branch-alias": {
1639
- "dev-master": "1.0.x-dev"
1640
  }
1641
  },
1642
  "autoload": {
1643
- "classmap": [
1644
- "src/"
 
 
 
1645
  ]
1646
  },
1647
  "notification-url": "https://packagist.org/downloads/",
1648
  "license": [
1649
- "BSD-3-Clause"
1650
  ],
1651
  "authors": [
1652
  {
1653
- "name": "Sebastian Bergmann",
1654
- "email": "sebastian@phpunit.de"
 
 
 
 
1655
  }
1656
  ],
1657
- "description": "Provides a list of PHP built-in functions that operate on resources",
1658
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
1659
- "time": "2015-07-28T20:34:47+00:00"
1660
  },
1661
  {
1662
- "name": "sebastian/version",
1663
- "version": "2.0.1",
1664
  "source": {
1665
  "type": "git",
1666
- "url": "https://github.com/sebastianbergmann/version.git",
1667
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
1668
  },
1669
  "dist": {
1670
  "type": "zip",
1671
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
1672
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
1673
  "shasum": ""
1674
  },
1675
  "require": {
1676
- "php": ">=5.6"
 
 
 
 
 
 
 
 
 
 
 
1677
  },
1678
  "type": "library",
1679
  "extra": {
1680
  "branch-alias": {
1681
- "dev-master": "2.0.x-dev"
1682
  }
1683
  },
1684
  "autoload": {
1685
- "classmap": [
1686
- "src/"
 
 
 
1687
  ]
1688
  },
1689
  "notification-url": "https://packagist.org/downloads/",
1690
  "license": [
1691
- "BSD-3-Clause"
1692
  ],
1693
  "authors": [
1694
  {
1695
- "name": "Sebastian Bergmann",
1696
- "email": "sebastian@phpunit.de",
1697
- "role": "lead"
 
 
 
1698
  }
1699
  ],
1700
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
1701
- "homepage": "https://github.com/sebastianbergmann/version",
1702
- "time": "2016-10-03T07:35:21+00:00"
1703
  },
1704
  {
1705
- "name": "slevomat/coding-standard",
1706
- "version": "4.0.0",
1707
  "source": {
1708
  "type": "git",
1709
- "url": "https://github.com/slevomat/coding-standard.git",
1710
- "reference": "bab653d0f7f2e3ed13796f7803067d252f00a25a"
1711
  },
1712
  "dist": {
1713
  "type": "zip",
1714
- "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/bab653d0f7f2e3ed13796f7803067d252f00a25a",
1715
- "reference": "bab653d0f7f2e3ed13796f7803067d252f00a25a",
1716
  "shasum": ""
1717
  },
1718
  "require": {
1719
- "php": "^7.0",
1720
- "squizlabs/php_codesniffer": "^3.0.1"
1721
  },
1722
- "require-dev": {
1723
- "jakub-onderka/php-parallel-lint": "0.9.2",
1724
- "phing/phing": "2.16",
1725
- "phpstan/phpstan": "0.8.4",
1726
- "phpunit/phpunit": "6.3.0"
1727
  },
1728
- "type": "phpcodesniffer-standard",
1729
  "autoload": {
1730
  "psr-4": {
1731
- "SlevomatCodingStandard\\": "SlevomatCodingStandard"
1732
- }
 
 
 
1733
  },
1734
  "notification-url": "https://packagist.org/downloads/",
1735
  "license": [
1736
  "MIT"
1737
  ],
1738
- "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.",
1739
- "time": "2017-09-15T17:47:36+00:00"
 
 
 
 
 
 
 
 
 
 
 
1740
  },
1741
  {
1742
- "name": "squizlabs/php_codesniffer",
1743
- "version": "3.4.2",
1744
  "source": {
1745
  "type": "git",
1746
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
1747
- "reference": "b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8"
1748
  },
1749
  "dist": {
1750
  "type": "zip",
1751
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8",
1752
- "reference": "b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8",
1753
  "shasum": ""
1754
  },
1755
  "require": {
1756
- "ext-simplexml": "*",
1757
- "ext-tokenizer": "*",
1758
- "ext-xmlwriter": "*",
1759
- "php": ">=5.4.0"
1760
- },
1761
- "require-dev": {
1762
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
1763
  },
1764
- "bin": [
1765
- "bin/phpcs",
1766
- "bin/phpcbf"
1767
- ],
1768
  "type": "library",
1769
  "extra": {
1770
  "branch-alias": {
1771
- "dev-master": "3.x-dev"
1772
  }
1773
  },
 
 
 
 
 
 
 
 
1774
  "notification-url": "https://packagist.org/downloads/",
1775
  "license": [
1776
- "BSD-3-Clause"
1777
  ],
1778
  "authors": [
1779
  {
1780
- "name": "Greg Sherwood",
1781
- "role": "lead"
 
 
 
 
1782
  }
1783
  ],
1784
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
1785
- "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
1786
- "keywords": [
1787
- "phpcs",
1788
- "standards"
1789
- ],
1790
- "time": "2019-04-10T23:49:02+00:00"
1791
  },
1792
  {
1793
- "name": "symfony/polyfill-ctype",
1794
- "version": "v1.11.0",
1795
  "source": {
1796
  "type": "git",
1797
- "url": "https://github.com/symfony/polyfill-ctype.git",
1798
- "reference": "82ebae02209c21113908c229e9883c419720738a"
1799
  },
1800
  "dist": {
1801
  "type": "zip",
1802
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a",
1803
- "reference": "82ebae02209c21113908c229e9883c419720738a",
1804
  "shasum": ""
1805
  },
1806
  "require": {
1807
  "php": ">=5.3.3"
1808
  },
1809
  "suggest": {
1810
- "ext-ctype": "For best performance"
1811
  },
1812
  "type": "library",
1813
  "extra": {
1814
  "branch-alias": {
1815
- "dev-master": "1.11-dev"
1816
  }
1817
  },
1818
  "autoload": {
1819
  "psr-4": {
1820
- "Symfony\\Polyfill\\Ctype\\": ""
1821
  },
1822
  "files": [
1823
  "bootstrap.php"
@@ -1829,81 +1779,194 @@
1829
  ],
1830
  "authors": [
1831
  {
1832
- "name": "Symfony Community",
1833
- "homepage": "https://symfony.com/contributors"
1834
  },
1835
  {
1836
- "name": "Gert de Pagter",
1837
- "email": "BackEndTea@gmail.com"
1838
  }
1839
  ],
1840
- "description": "Symfony polyfill for ctype functions",
1841
  "homepage": "https://symfony.com",
1842
  "keywords": [
1843
  "compatibility",
1844
- "ctype",
1845
  "polyfill",
1846
- "portable"
 
1847
  ],
1848
- "time": "2019-02-06T07:57:58+00:00"
1849
  },
1850
  {
1851
- "name": "theseer/tokenizer",
1852
- "version": "1.1.2",
1853
  "source": {
1854
  "type": "git",
1855
- "url": "https://github.com/theseer/tokenizer.git",
1856
- "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8"
1857
  },
1858
  "dist": {
1859
  "type": "zip",
1860
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/1c42705be2b6c1de5904f8afacef5895cab44bf8",
1861
- "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8",
1862
  "shasum": ""
1863
  },
1864
  "require": {
1865
- "ext-dom": "*",
1866
- "ext-tokenizer": "*",
1867
- "ext-xmlwriter": "*",
1868
- "php": "^7.0"
1869
  },
1870
  "type": "library",
 
 
 
 
 
1871
  "autoload": {
1872
- "classmap": [
1873
- "src/"
 
 
 
1874
  ]
1875
  },
1876
  "notification-url": "https://packagist.org/downloads/",
1877
  "license": [
1878
- "BSD-3-Clause"
1879
  ],
1880
  "authors": [
1881
  {
1882
- "name": "Arne Blankerts",
1883
- "email": "arne@blankerts.de",
1884
- "role": "Developer"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1885
  }
1886
  ],
1887
- "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
1888
- "time": "2019-04-04T09:56:43+00:00"
 
1889
  },
1890
  {
1891
  "name": "webmozart/assert",
1892
- "version": "1.4.0",
1893
  "source": {
1894
  "type": "git",
1895
  "url": "https://github.com/webmozart/assert.git",
1896
- "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9"
1897
  },
1898
  "dist": {
1899
  "type": "zip",
1900
- "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9",
1901
- "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9",
1902
  "shasum": ""
1903
  },
1904
  "require": {
1905
- "php": "^5.3.3 || ^7.0",
1906
- "symfony/polyfill-ctype": "^1.8"
1907
  },
1908
  "require-dev": {
1909
  "phpunit/phpunit": "^4.6",
@@ -1936,16 +1999,18 @@
1936
  "check",
1937
  "validate"
1938
  ],
1939
- "time": "2018-12-25T11:19:39+00:00"
1940
  }
1941
  ],
1942
  "aliases": [],
1943
  "minimum-stability": "dev",
1944
- "stability-flags": [],
1945
- "prefer-stable": true,
 
 
1946
  "prefer-lowest": false,
1947
  "platform": {
1948
- "php": "^7.0 | ^8.0"
1949
  },
1950
  "platform-dev": []
1951
  }
1
  {
2
  "_readme": [
3
  "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
  "This file is @generated automatically"
6
  ],
7
+ "hash": "6167d787b5e70ba6f43df2f23a2bd412",
8
+ "content-hash": "68e2338a39a45ad48cb0a3dfcb125f71",
9
+ "packages": [],
10
+ "packages-dev": [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  {
12
+ "name": "codeclimate/php-test-reporter",
13
+ "version": "v0.3.2",
14
  "source": {
15
  "type": "git",
16
+ "url": "https://github.com/codeclimate/php-test-reporter.git",
17
+ "reference": "3a2d3ebdc1df5acf372458c15041af240a6fc016"
18
  },
19
  "dist": {
20
  "type": "zip",
21
+ "url": "https://api.github.com/repos/codeclimate/php-test-reporter/zipball/3a2d3ebdc1df5acf372458c15041af240a6fc016",
22
+ "reference": "3a2d3ebdc1df5acf372458c15041af240a6fc016",
23
  "shasum": ""
24
  },
25
  "require": {
26
+ "ext-curl": "*",
27
+ "php": ">=5.3",
28
+ "satooshi/php-coveralls": "1.0.*",
29
+ "symfony/console": ">=2.0"
30
  },
31
  "require-dev": {
32
+ "ext-xdebug": "*",
33
+ "phpunit/phpunit": "3.7.*@stable"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  },
35
+ "bin": [
36
+ "composer/bin/test-reporter"
 
 
 
 
 
 
 
37
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  "type": "library",
39
  "extra": {
40
  "branch-alias": {
41
+ "dev-master": "0.3.x-dev"
42
  }
43
  },
44
  "autoload": {
45
+ "psr-0": {
46
+ "CodeClimate\\Component": "src/",
47
+ "CodeClimate\\Bundle": "src/"
48
  }
49
  },
50
  "notification-url": "https://packagist.org/downloads/",
53
  ],
54
  "authors": [
55
  {
56
+ "name": "Code Climate",
57
+ "email": "hello@codeclimate.com",
58
+ "homepage": "https://codeclimate.com"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  }
 
 
 
 
 
 
 
 
 
60
  ],
61
+ "description": "PHP client for reporting test coverage to Code Climate",
62
+ "homepage": "https://github.com/codeclimate/php-test-reporter",
63
+ "keywords": [
64
+ "codeclimate",
65
+ "coverage"
66
  ],
67
+ "time": "2016-04-19 16:54:33"
 
68
  },
69
  {
70
+ "name": "dhii/php-cs-fixer-config",
71
+ "version": "dev-php-5.3",
72
  "source": {
73
  "type": "git",
74
+ "url": "https://github.com/Dhii/php-cs-fixer-config.git",
75
+ "reference": "ee3cc6c906a1aa4dca2bcbfcfef684dbd1ebb8ca"
76
  },
77
  "dist": {
78
  "type": "zip",
79
+ "url": "https://api.github.com/repos/Dhii/php-cs-fixer-config/zipball/ee3cc6c906a1aa4dca2bcbfcfef684dbd1ebb8ca",
80
+ "reference": "ee3cc6c906a1aa4dca2bcbfcfef684dbd1ebb8ca",
81
  "shasum": ""
82
  },
83
  "require": {
84
+ "friendsofphp/php-cs-fixer": ">=1.11 <1.12",
85
  "php": "^5.3 | ^7.0"
86
  },
87
  "require-dev": {
88
+ "phpunit/phpunit": "^4.8"
 
 
 
89
  },
90
  "type": "library",
91
  "autoload": {
92
  "psr-4": {
93
+ "Dhii\\Configuration\\PHPCSFixer\\": "src/"
94
  }
95
  },
96
  "notification-url": "https://packagist.org/downloads/",
103
  "email": "development@dhii.co"
104
  }
105
  ],
106
+ "description": "A default PHP CS Fixer config implementation",
107
+ "time": "2016-09-03 14:45:03"
108
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  {
110
  "name": "doctrine/instantiator",
111
+ "version": "dev-master",
112
  "source": {
113
  "type": "git",
114
  "url": "https://github.com/doctrine/instantiator.git",
115
+ "reference": "416fb8ad1d095a87f1d21bc40711843cd122fd4a"
116
  },
117
  "dist": {
118
  "type": "zip",
119
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/416fb8ad1d095a87f1d21bc40711843cd122fd4a",
120
+ "reference": "416fb8ad1d095a87f1d21bc40711843cd122fd4a",
121
  "shasum": ""
122
  },
123
  "require": {
158
  "constructor",
159
  "instantiate"
160
  ],
161
+ "time": "2016-03-31 10:24:22"
162
  },
163
  {
164
+ "name": "friendsofphp/php-cs-fixer",
165
+ "version": "v1.11.8",
166
  "source": {
167
  "type": "git",
168
+ "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
169
+ "reference": "117137e9970054d022b7656209f094dab852b90c"
170
  },
171
  "dist": {
172
  "type": "zip",
173
+ "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/117137e9970054d022b7656209f094dab852b90c",
174
+ "reference": "117137e9970054d022b7656209f094dab852b90c",
175
  "shasum": ""
176
  },
177
  "require": {
178
+ "ext-tokenizer": "*",
179
+ "php": ">=5.3.6",
180
+ "sebastian/diff": "~1.1",
181
+ "symfony/console": "~2.3|~3.0",
182
+ "symfony/event-dispatcher": "~2.1|~3.0",
183
+ "symfony/filesystem": "~2.1|~3.0",
184
+ "symfony/finder": "~2.1|~3.0",
185
+ "symfony/process": "~2.3|~3.0",
186
+ "symfony/stopwatch": "~2.5|~3.0"
187
  },
188
+ "conflict": {
189
+ "hhvm": "<3.9"
190
  },
191
+ "require-dev": {
192
+ "phpunit/phpunit": "^4.5|^5",
193
+ "satooshi/php-coveralls": "^0.7.1"
 
 
194
  },
195
+ "bin": [
196
+ "php-cs-fixer"
197
+ ],
198
+ "type": "application",
199
  "autoload": {
200
  "psr-4": {
201
+ "Symfony\\CS\\": "Symfony/CS/"
202
  }
203
  },
204
  "notification-url": "https://packagist.org/downloads/",
207
  ],
208
  "authors": [
209
  {
210
+ "name": "Dariusz Rumiński",
211
+ "email": "dariusz.ruminski@gmail.com"
212
+ },
213
+ {
214
+ "name": "Fabien Potencier",
215
+ "email": "fabien@symfony.com"
216
  }
217
  ],
218
+ "description": "A tool to automatically fix PHP code style",
219
+ "time": "2016-08-16 23:31:05"
 
 
 
 
 
220
  },
221
  {
222
+ "name": "guzzle/guzzle",
223
+ "version": "dev-master",
224
  "source": {
225
  "type": "git",
226
+ "url": "https://github.com/guzzle/guzzle3.git",
227
+ "reference": "f7778ed85e3db90009d79725afd6c3a82dab32fe"
228
  },
229
  "dist": {
230
  "type": "zip",
231
+ "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/f7778ed85e3db90009d79725afd6c3a82dab32fe",
232
+ "reference": "f7778ed85e3db90009d79725afd6c3a82dab32fe",
233
  "shasum": ""
234
  },
235
  "require": {
236
+ "ext-curl": "*",
237
+ "php": ">=5.3.3",
238
+ "symfony/event-dispatcher": "~2.1"
239
+ },
240
+ "replace": {
241
+ "guzzle/batch": "self.version",
242
+ "guzzle/cache": "self.version",
243
+ "guzzle/common": "self.version",
244
+ "guzzle/http": "self.version",
245
+ "guzzle/inflection": "self.version",
246
+ "guzzle/iterator": "self.version",
247
+ "guzzle/log": "self.version",
248
+ "guzzle/parser": "self.version",
249
+ "guzzle/plugin": "self.version",
250
+ "guzzle/plugin-async": "self.version",
251
+ "guzzle/plugin-backoff": "self.version",
252
+ "guzzle/plugin-cache": "self.version",
253
+ "guzzle/plugin-cookie": "self.version",
254
+ "guzzle/plugin-curlauth": "self.version",
255
+ "guzzle/plugin-error-response": "self.version",
256
+ "guzzle/plugin-history": "self.version",
257
+ "guzzle/plugin-log": "self.version",
258
+ "guzzle/plugin-md5": "self.version",
259
+ "guzzle/plugin-mock": "self.version",
260
+ "guzzle/plugin-oauth": "self.version",
261
+ "guzzle/service": "self.version",
262
+ "guzzle/stream": "self.version"
263
  },
264
  "require-dev": {
265
+ "doctrine/cache": "~1.3",
266
+ "monolog/monolog": "~1.0",
267
+ "phpunit/phpunit": "3.7.*",
268
+ "psr/log": "~1.0",
269
+ "symfony/class-loader": "~2.1",
270
+ "zendframework/zend-cache": "2.*,<2.3",
271
+ "zendframework/zend-log": "2.*,<2.3"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
272
  },
273
+ "suggest": {
274
+ "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated."
 
 
 
275
  },
276
  "type": "library",
277
  "extra": {
278
  "branch-alias": {
279
+ "dev-master": "3.9-dev"
280
  }
281
  },
282
  "autoload": {
283
+ "psr-0": {
284
+ "Guzzle": "src/",
285
+ "Guzzle\\Tests": "tests/"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  },
288
  "notification-url": "https://packagist.org/downloads/",
289
  "license": [
290
+ "MIT"
291
  ],
292
  "authors": [
293
  {
294
+ "name": "Michael Dowling",
295
+ "email": "mtdowling@gmail.com",
296
+ "homepage": "https://github.com/mtdowling"
297
  },
298
  {
299
+ "name": "Guzzle Community",
300
+ "homepage": "https://github.com/guzzle/guzzle/contributors"
 
 
 
 
 
 
301
  }
302
  ],
303
+ "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle",
304
+ "homepage": "http://guzzlephp.org/",
305
+ "keywords": [
306
+ "client",
307
+ "curl",
308
+ "framework",
309
+ "http",
310
+ "http client",
311
+ "rest",
312
+ "web service"
313
+ ],
314
+ "abandoned": "guzzlehttp/guzzle",
315
+ "time": "2016-10-26 18:22:07"
316
  },
317
  {
318
  "name": "phpdocumentor/reflection-common",
319
+ "version": "dev-master",
320
  "source": {
321
  "type": "git",
322
  "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
323
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
324
  },
325
  "dist": {
326
  "type": "zip",
327
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
328
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
329
  "shasum": ""
330
  },
331
  "require": {
366
  "reflection",
367
  "static analysis"
368
  ],
369
+ "time": "2015-12-27 11:43:31"
370
  },
371
  {
372
  "name": "phpdocumentor/reflection-docblock",
373
+ "version": "3.1.1",
374
  "source": {
375
  "type": "git",
376
  "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
377
+ "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e"
378
  },
379
  "dist": {
380
  "type": "zip",
381
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e",
382
+ "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e",
383
  "shasum": ""
384
  },
385
  "require": {
386
+ "php": ">=5.5",
387
+ "phpdocumentor/reflection-common": "^1.0@dev",
388
+ "phpdocumentor/type-resolver": "^0.2.0",
389
  "webmozart/assert": "^1.0"
390
  },
391
  "require-dev": {
392
+ "mockery/mockery": "^0.9.4",
393
+ "phpunit/phpunit": "^4.4"
 
394
  },
395
  "type": "library",
 
 
 
 
 
396
  "autoload": {
397
  "psr-4": {
398
  "phpDocumentor\\Reflection\\": [
411
  }
412
  ],
413
  "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
414
+ "time": "2016-09-30 07:12:33"
415
  },
416
  {
417
  "name": "phpdocumentor/type-resolver",
418
+ "version": "0.2.1",
419
  "source": {
420
  "type": "git",
421
  "url": "https://github.com/phpDocumentor/TypeResolver.git",
422
+ "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb"
423
  },
424
  "dist": {
425
  "type": "zip",
426
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
427
+ "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
428
  "shasum": ""
429
  },
430
  "require": {
431
+ "php": ">=5.5",
432
  "phpdocumentor/reflection-common": "^1.0"
433
  },
434
  "require-dev": {
458
  "email": "me@mikevanriel.com"
459
  }
460
  ],
461
+ "time": "2016-11-25 06:54:22"
462
  },
463
  {
464
  "name": "phpspec/prophecy",
465
+ "version": "dev-master",
466
  "source": {
467
  "type": "git",
468
  "url": "https://github.com/phpspec/prophecy.git",
469
+ "reference": "6c52c2722f8460122f96f86346600e1077ce22cb"
470
  },
471
  "dist": {
472
  "type": "zip",
473
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/6c52c2722f8460122f96f86346600e1077ce22cb",
474
+ "reference": "6c52c2722f8460122f96f86346600e1077ce22cb",
475
  "shasum": ""
476
  },
477
  "require": {
478
  "doctrine/instantiator": "^1.0.2",
479
  "php": "^5.3|^7.0",
480
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
481
+ "sebastian/comparator": "^1.1",
482
+ "sebastian/recursion-context": "^1.0|^2.0"
483
  },
484
  "require-dev": {
485
+ "phpspec/phpspec": "^2.0",
486
+ "phpunit/phpunit": "^4.8 || ^5.6.5"
487
  },
488
  "type": "library",
489
  "extra": {
490
  "branch-alias": {
491
+ "dev-master": "1.6.x-dev"
492
  }
493
  },
494
  "autoload": {
521
  "spy",
522
  "stub"
523
  ],
524
+ "time": "2016-11-21 14:58:47"
525
  },
526
  {
527
  "name": "phpunit/php-code-coverage",
528
+ "version": "2.2.x-dev",
529
  "source": {
530
  "type": "git",
531
  "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
532
+ "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
533
  },
534
  "dist": {
535
  "type": "zip",
536
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
537
+ "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
538
  "shasum": ""
539
  },
540
  "require": {
541
+ "php": ">=5.3.3",
542
+ "phpunit/php-file-iterator": "~1.3",
543
+ "phpunit/php-text-template": "~1.2",
544
+ "phpunit/php-token-stream": "~1.3",
545
+ "sebastian/environment": "^1.3.2",
546
+ "sebastian/version": "~1.0"
 
 
 
 
547
  },
548
  "require-dev": {
549
+ "ext-xdebug": ">=2.1.4",
550
+ "phpunit/phpunit": "~4"
551
  },
552
  "suggest": {
553
+ "ext-dom": "*",
554
+ "ext-xdebug": ">=2.2.1",
555
+ "ext-xmlwriter": "*"
556
  },
557
  "type": "library",
558
  "extra": {
559
  "branch-alias": {
560
+ "dev-master": "2.2.x-dev"
561
  }
562
  },
563
  "autoload": {
572
  "authors": [
573
  {
574
  "name": "Sebastian Bergmann",
575
+ "email": "sb@sebastian-bergmann.de",
576
  "role": "lead"
577
  }
578
  ],
583
  "testing",
584
  "xunit"
585
  ],
586
+ "time": "2015-10-06 15:47:00"
587
  },
588
  {
589
  "name": "phpunit/php-file-iterator",
590
+ "version": "dev-master",
591
  "source": {
592
  "type": "git",
593
  "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
594
+ "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5"
595
  },
596
  "dist": {
597
  "type": "zip",
598
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
599
+ "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
600
  "shasum": ""
601
  },
602
  "require": {
630
  "filesystem",
631
  "iterator"
632
  ],
633
+ "time": "2016-10-03 07:40:28"
634
  },
635
  {
636
  "name": "phpunit/php-text-template",
671
  "keywords": [
672
  "template"
673
  ],
674
+ "time": "2015-06-21 13:50:34"
675
  },
676
  {
677
  "name": "phpunit/php-timer",
678
+ "version": "1.0.8",
679
  "source": {
680
  "type": "git",
681
  "url": "https://github.com/sebastianbergmann/php-timer.git",
682
+ "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
683
  },
684
  "dist": {
685
  "type": "zip",
686
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
687
+ "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
688
  "shasum": ""
689
  },
690
  "require": {
691
+ "php": ">=5.3.3"
692
  },
693
  "require-dev": {
694
+ "phpunit/phpunit": "~4|~5"
695
  },
696
  "type": "library",
 
 
 
 
 
697
  "autoload": {
698
  "classmap": [
699
  "src/"
715
  "keywords": [
716
  "timer"
717
  ],
718
+ "time": "2016-05-12 18:03:57"
719
  },
720
  {
721
  "name": "phpunit/php-token-stream",
722
+ "version": "dev-master",
723
  "source": {
724
  "type": "git",
725
  "url": "https://github.com/sebastianbergmann/php-token-stream.git",
726
+ "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b"
727
  },
728
  "dist": {
729
  "type": "zip",
730
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3b402f65a4cc90abf6e1104e388b896ce209631b",
731
+ "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b",
732
  "shasum": ""
733
  },
734
  "require": {
735
  "ext-tokenizer": "*",
736
+ "php": ">=5.3.3"
737
  },
738
  "require-dev": {
739
+ "phpunit/phpunit": "~4.2"
740
  },
741
  "type": "library",
742
  "extra": {
743
  "branch-alias": {
744
+ "dev-master": "1.4-dev"
745
  }
746
  },
747
  "autoload": {
764
  "keywords": [
765
  "tokenizer"
766
  ],
767
+ "time": "2016-11-15 14:06:22"
768
  },
769
  {
770
  "name": "phpunit/phpunit",
771
+ "version": "4.8.x-dev",
772
  "source": {
773
  "type": "git",
774
  "url": "https://github.com/sebastianbergmann/phpunit.git",
775
+ "reference": "1202e3ce2047810607df9858a7bf8d5573077deb"
776
  },
777
  "dist": {
778
  "type": "zip",
779
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1202e3ce2047810607df9858a7bf8d5573077deb",
780
+ "reference": "1202e3ce2047810607df9858a7bf8d5573077deb",
781
  "shasum": ""
782
  },
783
  "require": {
784
  "ext-dom": "*",
785
  "ext-json": "*",
786
+ "ext-pcre": "*",
787
+ "ext-reflection": "*",
788
+ "ext-spl": "*",
789
+ "php": ">=5.3.3",
790
+ "phpspec/prophecy": "^1.3.1",
791
+ "phpunit/php-code-coverage": "~2.1",
792
+ "phpunit/php-file-iterator": "~1.4",
793
+ "phpunit/php-text-template": "~1.2",
794
+ "phpunit/php-timer": "^1.0.6",
795
+ "phpunit/phpunit-mock-objects": "~2.3",
796
+ "sebastian/comparator": "~1.2.2",
797
+ "sebastian/diff": "~1.2",
798
+ "sebastian/environment": "~1.3",
799
+ "sebastian/exporter": "~1.2",
800
+ "sebastian/global-state": "~1.0",
801
+ "sebastian/version": "~1.0",
802
+ "symfony/yaml": "~2.1|~3.0"
 
 
 
 
 
 
 
 
 
 
 
803
  },
804
  "suggest": {
805
+ "phpunit/php-invoker": "~1.1"
 
806
  },
807
  "bin": [
808
  "phpunit"
810
  "type": "library",
811
  "extra": {
812
  "branch-alias": {
813
+ "dev-master": "4.8.x-dev"
814
  }
815
  },
816
  "autoload": {
836
  "testing",
837
  "xunit"
838
  ],
839
+ "time": "2017-01-21 14:05:27"
840
  },
841
  {
842
  "name": "phpunit/phpunit-mock-objects",
843
+ "version": "2.3.x-dev",
844
  "source": {
845
  "type": "git",
846
  "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
847
+ "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
848
  },
849
  "dist": {
850
  "type": "zip",
851
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
852
+ "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
853
  "shasum": ""
854
  },
855
  "require": {
856
+ "doctrine/instantiator": "^1.0.2",
857
+ "php": ">=5.3.3",
858
+ "phpunit/php-text-template": "~1.2",
859
+ "sebastian/exporter": "~1.2"
 
 
 
860
  },
861
  "require-dev": {
862
+ "phpunit/phpunit": "~4.4"
863
  },
864
  "suggest": {
865
  "ext-soap": "*"
867
  "type": "library",
868
  "extra": {
869
  "branch-alias": {
870
+ "dev-master": "2.3.x-dev"
871
  }
872
  },
873
  "autoload": {
882
  "authors": [
883
  {
884
  "name": "Sebastian Bergmann",
885
+ "email": "sb@sebastian-bergmann.de",
886
  "role": "lead"
887
  }
888
  ],
892
  "mock",
893
  "xunit"
894
  ],
895
+ "time": "2015-10-02 06:51:40"
 
896
  },
897
  {
898
+ "name": "psr/log",
899
+ "version": "dev-master",
900
  "source": {
901
  "type": "git",
902
+ "url": "https://github.com/php-fig/log.git",
903
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
904
  },
905
  "dist": {
906
  "type": "zip",
907
+ "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
908
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
909
  "shasum": ""
910
  },
911
  "require": {
912
+ "php": ">=5.3.0"
 
 
 
913
  },
914
  "type": "library",
915
  "extra": {
918
  }
919
  },
920
  "autoload": {
921
+ "psr-4": {
922
+ "Psr\\Log\\": "Psr/Log/"
923
+ }
924
  },
925
  "notification-url": "https://packagist.org/downloads/",
926
  "license": [
927
+ "MIT"
928
  ],
929
  "authors": [
930
  {
931
+ "name": "PHP-FIG",
932
+ "homepage": "http://www.php-fig.org/"
933
  }
934
  ],
935
+ "description": "Common interface for logging libraries",
936
+ "homepage": "https://github.com/php-fig/log",
937
+ "keywords": [
938
+ "log",
939
+ "psr",
940
+ "psr-3"
941
+ ],
942
+ "time": "2016-10-10 12:19:37"
943
+ },
944
+ {
945
+ "name": "ptrofimov/xpmock",
946
+ "version": "1.1.5",
947
+ "source": {
948
+ "type": "git",
949
+ "url": "https://github.com/ptrofimov/xpmock.git",
950
+ "reference": "5b95ace33624b66bf4e854071b8856722fde515e"
951
+ },
952
+ "dist": {
953
+ "type": "zip",
954
+ "url": "https://api.github.com/repos/ptrofimov/xpmock/zipball/5b95ace33624b66bf4e854071b8856722fde515e",
955
+ "reference": "5b95ace33624b66bf4e854071b8856722fde515e",
956
+ "shasum": ""
957
+ },
958
+ "require": {
959
+ "php": ">=5.3.0"
960
+ },
961
+ "require-dev": {
962
+ "phpunit/phpunit": "3.7.*"
963
+ },
964
+ "type": "library",
965
+ "autoload": {
966
+ "psr-0": {
967
+ "Xpmock": "src"
968
+ }
969
+ },
970
+ "notification-url": "https://packagist.org/downloads/",
971
+ "license": [
972
+ "MIT"
973
+ ],
974
+ "description": "PHPUnit: simple syntax to create mock-objects",
975
+ "time": "2014-01-02 16:42:27"
976
+ },
977
+ {
978
+ "name": "satooshi/php-coveralls",
979
+ "version": "1.0.x-dev",
980
+ "source": {
981
+ "type": "git",
982
+ "url": "https://github.com/satooshi/php-coveralls.git",
983
+ "reference": "da51d304fe8622bf9a6da39a8446e7afd432115c"
984
+ },
985
+ "dist": {
986
+ "type": "zip",
987
+ "url": "https://api.github.com/repos/satooshi/php-coveralls/zipball/da51d304fe8622bf9a6da39a8446e7afd432115c",
988
+ "reference": "da51d304fe8622bf9a6da39a8446e7afd432115c",
989
+ "shasum": ""
990
+ },
991
+ "require": {
992
+ "ext-json": "*",
993
+ "ext-simplexml": "*",
994
+ "guzzle/guzzle": "^2.8|^3.0",
995
+ "php": ">=5.3.3",
996
+ "psr/log": "^1.0",
997
+ "symfony/config": "^2.1|^3.0",
998
+ "symfony/console": "^2.1|^3.0",
999
+ "symfony/stopwatch": "^2.0|^3.0",
1000
+ "symfony/yaml": "^2.0|^3.0"
1001
+ },
1002
+ "suggest": {
1003
+ "symfony/http-kernel": "Allows Symfony integration"
1004
+ },
1005
+ "bin": [
1006
+ "bin/coveralls"
1007
+ ],
1008
+ "type": "library",
1009
+ "autoload": {
1010
+ "psr-4": {
1011
+ "Satooshi\\": "src/Satooshi/"
1012
+ }
1013
+ },
1014
+ "notification-url": "https://packagist.org/downloads/",
1015
+ "license": [
1016
+ "MIT"
1017
+ ],
1018
+ "authors": [
1019
+ {
1020
+ "name": "Kitamura Satoshi",
1021
+ "email": "with.no.parachute@gmail.com",
1022
+ "homepage": "https://www.facebook.com/satooshi.jp"
1023
+ }
1024
+ ],
1025
+ "description": "PHP client library for Coveralls API",
1026
+ "homepage": "https://github.com/satooshi/php-coveralls",
1027
+ "keywords": [
1028
+ "ci",
1029
+ "coverage",
1030
+ "github",
1031
+ "test"
1032
+ ],
1033
+ "time": "2016-01-20 17:35:46"
1034
  },
1035
  {
1036
  "name": "sebastian/comparator",
1037
+ "version": "dev-master",
1038
  "source": {
1039
  "type": "git",
1040
  "url": "https://github.com/sebastianbergmann/comparator.git",
1041
+ "reference": "2f09d5a251c4a92d1a80518c2166b5d0d742bc63"
1042
  },
1043
  "dist": {
1044
  "type": "zip",
1045
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2f09d5a251c4a92d1a80518c2166b5d0d742bc63",
1046
+ "reference": "2f09d5a251c4a92d1a80518c2166b5d0d742bc63",
1047
  "shasum": ""
1048
  },
1049
  "require": {
1050
+ "php": "^5.3.3 || ^7.0",
1051
+ "sebastian/diff": "^1.2",
1052
+ "sebastian/exporter": "^1.2 || ^2.0"
1053
  },
1054
  "require-dev": {
1055
+ "phpunit/phpunit": "^4.8"
1056
  },
1057
  "type": "library",
1058
  "extra": {
1059
  "branch-alias": {
1060
+ "dev-master": "1.2.x-dev"
1061
  }
1062
  },
1063
  "autoload": {
1088
  }
1089
  ],
1090
  "description": "Provides the functionality to compare PHP values for equality",
1091
+ "homepage": "http://www.github.com/sebastianbergmann/comparator",
1092
  "keywords": [
1093
  "comparator",
1094
  "compare",
1095
  "equality"
1096
  ],
1097
+ "time": "2016-12-10 08:07:52"
1098
  },
1099
  {
1100
  "name": "sebastian/diff",
1101
+ "version": "dev-master",
1102
  "source": {
1103
  "type": "git",
1104
  "url": "https://github.com/sebastianbergmann/diff.git",
1105
+ "reference": "d0814318784b7756fb932116acd19ee3b0cbe67a"
1106
  },
1107
  "dist": {
1108
  "type": "zip",
1109
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/d0814318784b7756fb932116acd19ee3b0cbe67a",
1110
+ "reference": "d0814318784b7756fb932116acd19ee3b0cbe67a",
1111
  "shasum": ""
1112
  },
1113
  "require": {
1114
+ "php": ">=5.3.3"
1115
  },
1116
  "require-dev": {
1117
+ "phpunit/phpunit": "~4.8"
1118
  },
1119
  "type": "library",
1120
  "extra": {
1121
  "branch-alias": {
1122
+ "dev-master": "1.4-dev"
1123
  }
1124
  },
1125
  "autoload": {
1146
  "keywords": [
1147
  "diff"
1148
  ],
1149
+ "time": "2016-10-03 07:45:03"
1150
  },
1151
  {
1152
  "name": "sebastian/environment",
1153
+ "version": "1.3.x-dev",
1154
  "source": {
1155
  "type": "git",
1156
  "url": "https://github.com/sebastianbergmann/environment.git",
1157
+ "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
1158
  },
1159
  "dist": {
1160
  "type": "zip",
1161
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
1162
+ "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
1163
  "shasum": ""
1164
  },
1165
  "require": {
1166
+ "php": "^5.3.3 || ^7.0"
1167
  },
1168
  "require-dev": {
1169
+ "phpunit/phpunit": "^4.8 || ^5.0"
1170
  },
1171
  "type": "library",
1172
  "extra": {
1173
  "branch-alias": {
1174
+ "dev-master": "1.3.x-dev"
1175
  }
1176
  },
1177
  "autoload": {
1196
  "environment",
1197
  "hhvm"
1198
  ],
1199
+ "time": "2016-08-18 05:49:44"
1200
  },
1201
  {
1202
  "name": "sebastian/exporter",
1203
+ "version": "1.2.x-dev",
1204
  "source": {
1205
  "type": "git",
1206
  "url": "https://github.com/sebastianbergmann/exporter.git",
1207
+ "reference": "7dfcd2418aacbdb5e123fb23ac735acfdd6c588d"
1208
  },
1209
  "dist": {
1210
  "type": "zip",
1211
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7dfcd2418aacbdb5e123fb23ac735acfdd6c588d",
1212
+ "reference": "7dfcd2418aacbdb5e123fb23ac735acfdd6c588d",
1213
  "shasum": ""
1214
  },
1215
  "require": {
1216
+ "php": ">=5.3.3",
1217
+ "sebastian/recursion-context": "~1.0"
1218
  },
1219
  "require-dev": {
1220
  "ext-mbstring": "*",
1221
+ "phpunit/phpunit": "~4.4"
1222
  },
1223
  "type": "library",
1224
  "extra": {
1225
  "branch-alias": {
1226
+ "dev-master": "1.3.x-dev"
1227
  }
1228
  },
1229
  "autoload": {
1263
  "export",
1264
  "exporter"
1265
  ],
1266
+ "time": "2016-10-03 07:44:30"
1267
  },
1268
  {
1269
  "name": "sebastian/global-state",
1270
+ "version": "1.1.x-dev",
1271
  "source": {
1272
  "type": "git",
1273
  "url": "https://github.com/sebastianbergmann/global-state.git",
1274
+ "reference": "5a2b9ba59e8cf82fd1fdd7efb7d7846fd69ac36d"
1275
  },
1276
  "dist": {
1277
  "type": "zip",
1278
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/5a2b9ba59e8cf82fd1fdd7efb7d7846fd69ac36d",
1279
+ "reference": "5a2b9ba59e8cf82fd1fdd7efb7d7846fd69ac36d",
1280
  "shasum": ""
1281
  },
1282
  "require": {
1283
+ "php": ">=5.3.3"
1284
  },
1285
  "require-dev": {
1286
+ "phpunit/phpunit": "~4.2|~5.0"
1287
  },
1288
  "suggest": {
1289
  "ext-uopz": "*"
1291
  "type": "library",
1292
  "extra": {
1293
  "branch-alias": {
1294
+ "dev-master": "1.0-dev"
1295
  }
1296
  },
1297
  "autoload": {
1314
  "keywords": [
1315
  "global state"
1316
  ],
1317
+ "time": "2016-10-03 07:46:22"
1318
  },
1319
  {
1320
+ "name": "sebastian/recursion-context",
1321
+ "version": "1.0.x-dev",
1322
  "source": {
1323
  "type": "git",
1324
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
1325
+ "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7"
1326
  },
1327
  "dist": {
1328
  "type": "zip",
1329
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
1330
+ "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
1331
  "shasum": ""
1332
  },
1333
  "require": {
1334
+ "php": ">=5.3.3"
 
 
1335
  },
1336
  "require-dev": {
1337
+ "phpunit/phpunit": "~4.4"
1338
  },
1339
  "type": "library",
1340
  "extra": {
1341
  "branch-alias": {
1342
+ "dev-master": "1.0.x-dev"
1343
  }
1344
  },
1345
  "autoload": {
1352
  "BSD-3-Clause"
1353
  ],
1354
  "authors": [
1355
+ {
1356
+ "name": "Jeff Welch",
1357
+ "email": "whatthejeff@gmail.com"
1358
+ },
1359
  {
1360
  "name": "Sebastian Bergmann",
1361
  "email": "sebastian@phpunit.de"
1362
+ },
1363
+ {
1364
+ "name": "Adam Harvey",
1365
+ "email": "aharvey@php.net"
1366
  }
1367
  ],
1368
+ "description": "Provides functionality to recursively process PHP variables",
1369
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1370
+ "time": "2016-10-03 07:41:43"
1371
  },
1372
  {
1373
+ "name": "sebastian/version",
1374
+ "version": "1.0.6",
1375
  "source": {
1376
  "type": "git",
1377
+ "url": "https://github.com/sebastianbergmann/version.git",
1378
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
1379
  },
1380
  "dist": {
1381
  "type": "zip",
1382
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
1383
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
1384
+ "shasum": ""
1385
+ },
1386
+ "type": "library",
1387
+ "autoload": {
1388
+ "classmap": [
1389
+ "src/"
1390
+ ]
1391
+ },
1392
+ "notification-url": "https://packagist.org/downloads/",
1393
+ "license": [
1394
+ "BSD-3-Clause"
1395
+ ],
1396
+ "authors": [
1397
+ {
1398
+ "name": "Sebastian Bergmann",
1399
+ "email": "sebastian@phpunit.de",
1400
+ "role": "lead"
1401
+ }
1402
+ ],
1403
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
1404
+ "homepage": "https://github.com/sebastianbergmann/version",
1405
+ "time": "2015-06-21 13:59:46"
1406
+ },
1407
+ {
1408
+ "name": "symfony/config",
1409
+ "version": "dev-master",
1410
+ "source": {
1411
+ "type": "git",
1412
+ "url": "https://github.com/symfony/config.git",
1413
+ "reference": "ba3da262813160b4963fb36f573c886592da6acb"
1414
+ },
1415
+ "dist": {
1416
+ "type": "zip",
1417
+ "url": "https://api.github.com/repos/symfony/config/zipball/ba3da262813160b4963fb36f573c886592da6acb",
1418
+ "reference": "ba3da262813160b4963fb36f573c886592da6acb",
1419
  "shasum": ""
1420
  },
1421
  "require": {
1422
+ "php": ">=5.5.9",
1423
+ "symfony/filesystem": "~2.8|~3.0"
1424
  },
1425
  "require-dev": {
1426
+ "symfony/yaml": "~3.0"
1427
+ },
1428
+ "suggest": {
1429
+ "symfony/yaml": "To use the yaml reference dumper"
1430
  },
1431
  "type": "library",
1432
  "extra": {
1433
  "branch-alias": {
1434
+ "dev-master": "3.3-dev"
1435
  }
1436
  },
1437
  "autoload": {
1438
+ "psr-4": {
1439
+ "Symfony\\Component\\Config\\": ""
1440
+ },
1441
+ "exclude-from-classmap": [
1442
+ "/Tests/"
1443
  ]
1444
  },
1445
  "notification-url": "https://packagist.org/downloads/",
1446
  "license": [
1447
+ "MIT"
1448
  ],
1449
  "authors": [
1450
  {
1451
+ "name": "Fabien Potencier",
1452
+ "email": "fabien@symfony.com"
1453
+ },
1454
+ {
1455
+ "name": "Symfony Community",
1456
+ "homepage": "https://symfony.com/contributors"
1457
  }
1458
  ],
1459
+ "description": "Symfony Config Component",
1460
+ "homepage": "https://symfony.com",
1461
+ "time": "2017-01-09 21:03:44"
1462
  },
1463
  {
1464
+ "name": "symfony/console",
1465
+ "version": "dev-master",
1466
  "source": {
1467
  "type": "git",
1468
+ "url": "https://github.com/symfony/console.git",
1469
+ "reference": "08efa49aa07dde0747198c6075a1061c750e9884"
1470
  },
1471
  "dist": {
1472
  "type": "zip",
1473
+ "url": "https://api.github.com/repos/symfony/console/zipball/08efa49aa07dde0747198c6075a1061c750e9884",
1474
+ "reference": "08efa49aa07dde0747198c6075a1061c750e9884",
1475
  "shasum": ""
1476
  },
1477
  "require": {
1478
+ "php": ">=5.5.9",
1479
+ "symfony/debug": "~2.8|~3.0",
1480
+ "symfony/polyfill-mbstring": "~1.0"
1481
  },
1482
  "require-dev": {
1483
+ "psr/log": "~1.0",
1484
+ "symfony/dependency-injection": "~2.8|~3.0",
1485
+ "symfony/event-dispatcher": "~2.8|~3.0",
1486
+ "symfony/filesystem": "~2.8|~3.0",
1487
+ "symfony/http-kernel": "~2.8|~3.0",
1488
+ "symfony/process": "~2.8|~3.0"
1489
+ },
1490
+ "suggest": {
1491
+ "psr/log": "For using the console logger",
1492
+ "symfony/event-dispatcher": "",
1493
+ "symfony/filesystem": "",
1494
+ "symfony/process": ""
1495
  },
1496
  "type": "library",
1497
  "extra": {
1498
  "branch-alias": {
1499
+ "dev-master": "3.3-dev"
1500
  }
1501
  },
1502
  "autoload": {
1503
+ "psr-4": {
1504
+ "Symfony\\Component\\Console\\": ""
1505
+ },
1506
+ "exclude-from-classmap": [
1507
+ "/Tests/"
1508
  ]
1509
  },
1510
  "notification-url": "https://packagist.org/downloads/",
1511
  "license": [
1512
+ "MIT"
1513
  ],
1514
  "authors": [
1515
  {
1516
+ "name": "Fabien Potencier",
1517
+ "email": "fabien@symfony.com"
 
 
 
 
1518
  },
1519
  {
1520
+ "name": "Symfony Community",
1521
+ "homepage": "https://symfony.com/contributors"
1522
  }
1523
  ],
1524
+ "description": "Symfony Console Component",
1525
+ "homepage": "https://symfony.com",
1526
+ "time": "2017-01-11 12:05:48"
1527
  },
1528
  {
1529
+ "name": "symfony/debug",
1530
+ "version": "dev-master",
1531
  "source": {
1532
  "type": "git",
1533
+ "url": "https://github.com/symfony/debug.git",
1534
+ "reference": "e990e0b4f58e2cb64ebf05845fa982d06011957d"
1535
  },
1536
  "dist": {
1537
  "type": "zip",
1538
+ "url": "https://api.github.com/repos/symfony/debug/zipball/e990e0b4f58e2cb64ebf05845fa982d06011957d",
1539
+ "reference": "e990e0b4f58e2cb64ebf05845fa982d06011957d",
1540
  "shasum": ""
1541
  },
1542
  "require": {
1543
+ "php": ">=5.5.9",
1544
+ "psr/log": "~1.0"
1545
+ },
1546
+ "conflict": {
1547
+ "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
1548
+ },
1549
+ "require-dev": {
1550
+ "symfony/http-kernel": "~2.8|~3.0"
1551
  },
1552
  "type": "library",
1553
  "extra": {
1554
  "branch-alias": {
1555
+ "dev-master": "3.3-dev"
1556
  }
1557
  },
1558
  "autoload": {
1559
+ "psr-4": {
1560
+ "Symfony\\Component\\Debug\\": ""
1561
+ },
1562
+ "exclude-from-classmap": [
1563
+ "/Tests/"
1564
  ]
1565
  },
1566
  "notification-url": "https://packagist.org/downloads/",
1567
  "license": [
1568
+ "MIT"
1569
  ],
1570
  "authors": [
1571
  {
1572
+ "name": "Fabien Potencier",
1573
+ "email": "fabien@symfony.com"
1574
+ },
1575
+ {
1576
+ "name": "Symfony Community",
1577
+ "homepage": "https://symfony.com/contributors"
1578
  }
1579
  ],
1580
+ "description": "Symfony Debug Component",
1581
+ "homepage": "https://symfony.com",
1582
+ "time": "2017-01-20 10:22:07"
1583
  },
1584
  {
1585
+ "name": "symfony/event-dispatcher",
1586
+ "version": "2.8.x-dev",
1587
  "source": {
1588
  "type": "git",
1589
+ "url": "https://github.com/symfony/event-dispatcher.git",
1590
+ "reference": "74877977f90fb9c3e46378d5764217c55f32df34"
1591
  },
1592
  "dist": {
1593
  "type": "zip",
1594
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/74877977f90fb9c3e46378d5764217c55f32df34",
1595
+ "reference": "74877977f90fb9c3e46378d5764217c55f32df34",
1596
  "shasum": ""
1597
  },
1598
  "require": {
1599
+ "php": ">=5.3.9"
1600
+ },
1601
+ "require-dev": {
1602
+ "psr/log": "~1.0",
1603
+ "symfony/config": "~2.0,>=2.0.5|~3.0.0",
1604
+ "symfony/dependency-injection": "~2.6|~3.0.0",
1605
+ "symfony/expression-language": "~2.6|~3.0.0",
1606
+ "symfony/stopwatch": "~2.3|~3.0.0"
1607
+ },
1608
+ "suggest": {
1609
+ "symfony/dependency-injection": "",
1610
+ "symfony/http-kernel": ""
1611
  },
1612
  "type": "library",
1613
  "extra": {
1614
  "branch-alias": {
1615
+ "dev-master": "2.8-dev"
1616
  }
1617
  },
1618
  "autoload": {
1619
+ "psr-4": {
1620
+ "Symfony\\Component\\EventDispatcher\\": ""
1621
+ },
1622
+ "exclude-from-classmap": [
1623
+ "/Tests/"
1624
  ]
1625
  },
1626
  "notification-url": "https://packagist.org/downloads/",
1627
  "license": [
1628
+ "MIT"
1629
  ],
1630
  "authors": [
1631
  {
1632
+ "name": "Fabien Potencier",
1633
+ "email": "fabien@symfony.com"
1634
+ },
1635
+ {
1636
+ "name": "Symfony Community",
1637
+ "homepage": "https://symfony.com/contributors"
1638
  }
1639
  ],
1640
+ "description": "Symfony EventDispatcher Component",
1641
+ "homepage": "https://symfony.com",
1642
+ "time": "2017-01-02 20:30:24"
1643
  },
1644
  {
1645
+ "name": "symfony/filesystem",
1646
+ "version": "dev-master",
1647
  "source": {
1648
  "type": "git",
1649
+ "url": "https://github.com/symfony/filesystem.git",
1650
+ "reference": "b2de62936fea037d501159f52b7b6172cc962282"
1651
  },
1652
  "dist": {
1653
  "type": "zip",
1654
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/b2de62936fea037d501159f52b7b6172cc962282",
1655
+ "reference": "b2de62936fea037d501159f52b7b6172cc962282",
1656
  "shasum": ""
1657
  },
1658
  "require": {
1659
+ "php": ">=5.5.9"
 
1660
  },
1661
+ "type": "library",
1662
+ "extra": {
1663
+ "branch-alias": {
1664
+ "dev-master": "3.3-dev"
1665
+ }
1666
  },
 
1667
  "autoload": {
1668
  "psr-4": {
1669
+ "Symfony\\Component\\Filesystem\\": ""
1670
+ },
1671
+ "exclude-from-classmap": [
1672
+ "/Tests/"
1673
+ ]
1674
  },
1675
  "notification-url": "https://packagist.org/downloads/",
1676
  "license": [
1677
  "MIT"
1678
  ],
1679
+ "authors": [
1680
+ {
1681
+ "name": "Fabien Potencier",
1682
+ "email": "fabien@symfony.com"
1683
+ },
1684
+ {
1685
+ "name": "Symfony Community",
1686
+ "homepage": "https://symfony.com/contributors"
1687
+ }
1688
+ ],
1689
+ "description": "Symfony Filesystem Component",
1690
+ "homepage": "https://symfony.com",
1691
+ "time": "2017-01-08 21:15:04"
1692
  },
1693
  {
1694
+ "name": "symfony/finder",
1695
+ "version": "dev-master",
1696
  "source": {
1697
  "type": "git",
1698
+ "url": "https://github.com/symfony/finder.git",
1699
+ "reference": "791ac099b1687c0bd82f7230ec0d8fc8550c81dc"
1700
  },
1701
  "dist": {
1702
  "type": "zip",
1703
+ "url": "https://api.github.com/repos/symfony/finder/zipball/791ac099b1687c0bd82f7230ec0d8fc8550c81dc",
1704
+ "reference": "791ac099b1687c0bd82f7230ec0d8fc8550c81dc",
1705
  "shasum": ""
1706
  },
1707
  "require": {
1708
+ "php": ">=5.5.9"
 
 
 
 
 
 
1709
  },
 
 
 
 
1710
  "type": "library",
1711
  "extra": {
1712
  "branch-alias": {
1713
+ "dev-master": "3.3-dev"
1714
  }
1715
  },
1716
+ "autoload": {
1717
+ "psr-4": {
1718
+ "Symfony\\Component\\Finder\\": ""
1719
+ },
1720
+ "exclude-from-classmap": [
1721
+ "/Tests/"
1722
+ ]
1723
+ },
1724
  "notification-url": "https://packagist.org/downloads/",
1725
  "license": [
1726
+ "MIT"
1727
  ],
1728
  "authors": [
1729
  {
1730
+ "name": "Fabien Potencier",
1731
+ "email": "fabien@symfony.com"
1732
+ },
1733
+ {
1734
+ "name": "Symfony Community",
1735
+ "homepage": "https://symfony.com/contributors"
1736
  }
1737
  ],
1738
+ "description": "Symfony Finder Component",
1739
+ "homepage": "https://symfony.com",
1740
+ "time": "2017-01-02 20:33:09"
 
 
 
 
1741
  },
1742
  {
1743
+ "name": "symfony/polyfill-mbstring",
1744
+ "version": "dev-master",
1745
  "source": {
1746
  "type": "git",
1747
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
1748
+ "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4"
1749
  },
1750
  "dist": {
1751
  "type": "zip",
1752
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/e79d363049d1c2128f133a2667e4f4190904f7f4",
1753
+ "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4",
1754
  "shasum": ""
1755
  },
1756
  "require": {
1757
  "php": ">=5.3.3"
1758
  },
1759
  "suggest": {
1760
+ "ext-mbstring": "For best performance"
1761
  },
1762
  "type": "library",
1763
  "extra": {
1764
  "branch-alias": {
1765
+ "dev-master": "1.3-dev"
1766
  }
1767
  },
1768
  "autoload": {
1769
  "psr-4": {
1770
+ "Symfony\\Polyfill\\Mbstring\\": ""
1771
  },
1772
  "files": [
1773
  "bootstrap.php"
1779
  ],
1780
  "authors": [
1781
  {
1782
+ "name": "Nicolas Grekas",
1783
+ "email": "p@tchwork.com"
1784
  },
1785
  {
1786
+ "name": "Symfony Community",
1787
+ "homepage": "https://symfony.com/contributors"
1788
  }
1789
  ],
1790
+ "description": "Symfony polyfill for the Mbstring extension",
1791
  "homepage": "https://symfony.com",
1792
  "keywords": [
1793
  "compatibility",
1794
+ "mbstring",
1795
  "polyfill",
1796
+ "portable",
1797
+ "shim"
1798
  ],
1799
+ "time": "2016-11-14 01:06:16"
1800
  },
1801
  {
1802
+ "name": "symfony/process",
1803
+ "version": "dev-master",
1804
  "source": {
1805
  "type": "git",
1806
+ "url": "https://github.com/symfony/process.git",
1807
+ "reference": "6c687d5ae36a8677a6e3ce020d12b18feac79d5b"
1808
  },
1809
  "dist": {
1810
  "type": "zip",
1811
+ "url": "https://api.github.com/repos/symfony/process/zipball/6c687d5ae36a8677a6e3ce020d12b18feac79d5b",
1812
+ "reference": "6c687d5ae36a8677a6e3ce020d12b18feac79d5b",
1813
  "shasum": ""
1814
  },
1815
  "require": {
1816
+ "php": ">=5.5.9"
 
 
 
1817
  },
1818
  "type": "library",
1819
+ "extra": {
1820
+ "branch-alias": {
1821
+ "dev-master": "3.3-dev"
1822
+ }
1823
+ },
1824
  "autoload": {
1825
+ "psr-4": {
1826
+ "Symfony\\Component\\Process\\": ""
1827
+ },
1828
+ "exclude-from-classmap": [
1829
+ "/Tests/"
1830
  ]
1831
  },
1832
  "notification-url": "https://packagist.org/downloads/",
1833
  "license": [
1834
+ "MIT"
1835
  ],
1836
  "authors": [
1837
  {
1838
+ "name": "Fabien Potencier",
1839
+ "email": "fabien@symfony.com"
1840
+ },
1841
+ {
1842
+ "name": "Symfony Community",
1843
+ "homepage": "https://symfony.com/contributors"
1844
+ }
1845
+ ],
1846
+ "description": "Symfony Process Component",
1847
+ "homepage": "https://symfony.com",
1848
+ "time": "2017-01-02 20:33:09"
1849
+ },
1850
+ {
1851
+ "name": "symfony/stopwatch",
1852
+ "version": "dev-master",
1853
+ "source": {
1854
+ "type": "git",
1855
+ "url": "https://github.com/symfony/stopwatch.git",
1856
+ "reference": "edfe3407825f9657fd38a05171eb5b8df8563146"
1857
+ },
1858
+ "dist": {
1859
+ "type": "zip",
1860
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/edfe3407825f9657fd38a05171eb5b8df8563146",
1861
+ "reference": "edfe3407825f9657fd38a05171eb5b8df8563146",
1862
+ "shasum": ""
1863
+ },
1864
+ "require": {
1865
+ "php": ">=5.5.9"
1866
+ },
1867
+ "type": "library",
1868
+ "extra": {
1869
+ "branch-alias": {
1870
+ "dev-master": "3.3-dev"
1871
+ }
1872
+ },
1873
+ "autoload": {
1874
+ "psr-4": {
1875
+ "Symfony\\Component\\Stopwatch\\": ""
1876
+ },
1877
+ "exclude-from-classmap": [
1878
+ "/Tests/"
1879
+ ]
1880
+ },
1881
+ "notification-url": "https://packagist.org/downloads/",
1882
+ "license": [
1883
+ "MIT"
1884
+ ],
1885
+ "authors": [
1886
+ {
1887
+ "name": "Fabien Potencier",
1888
+ "email": "fabien@symfony.com"
1889
+ },
1890
+ {
1891
+ "name": "Symfony Community",
1892
+ "homepage": "https://symfony.com/contributors"
1893
+ }
1894
+ ],
1895
+ "description": "Symfony Stopwatch Component",
1896
+ "homepage": "https://symfony.com",
1897
+ "time": "2017-01-02 20:33:09"
1898
+ },
1899
+ {
1900
+ "name": "symfony/yaml",
1901
+ "version": "dev-master",
1902
+ "source": {
1903
+ "type": "git",
1904
+ "url": "https://github.com/symfony/yaml.git",
1905
+ "reference": "d67fe7eaf6fdb1a9350bf2bdd727d64dbd814ddc"
1906
+ },
1907
+ "dist": {
1908
+ "type": "zip",
1909
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/d67fe7eaf6fdb1a9350bf2bdd727d64dbd814ddc",
1910
+ "reference": "d67fe7eaf6fdb1a9350bf2bdd727d64dbd814ddc",
1911
+ "shasum": ""
1912
+ },
1913
+ "require": {
1914
+ "php": ">=5.5.9"
1915
+ },
1916
+ "require-dev": {
1917
+ "symfony/console": "~2.8|~3.0"
1918
+ },
1919
+ "suggest": {
1920
+ "symfony/console": "For validating YAML files using the lint command"
1921
+ },
1922
+ "type": "library",
1923
+ "extra": {
1924
+ "branch-alias": {
1925
+ "dev-master": "3.3-dev"
1926
+ }
1927
+ },
1928
+ "autoload": {
1929
+ "psr-4": {
1930
+ "Symfony\\Component\\Yaml\\": ""
1931
+ },
1932
+ "exclude-from-classmap": [
1933
+ "/Tests/"
1934
+ ]
1935
+ },
1936
+ "notification-url": "https://packagist.org/downloads/",
1937
+ "license": [
1938
+ "MIT"
1939
+ ],
1940
+ "authors": [
1941
+ {
1942
+ "name": "Fabien Potencier",
1943
+ "email": "fabien@symfony.com"
1944
+ },
1945
+ {
1946
+ "name": "Symfony Community",
1947
+ "homepage": "https://symfony.com/contributors"
1948
  }
1949
  ],
1950
+ "description": "Symfony Yaml Component",
1951
+ "homepage": "https://symfony.com",
1952
+ "time": "2017-01-21 07:50:08"
1953
  },
1954
  {
1955
  "name": "webmozart/assert",
1956
+ "version": "dev-master",
1957
  "source": {
1958
  "type": "git",
1959
  "url": "https://github.com/webmozart/assert.git",
1960
+ "reference": "4a8bf11547e139e77b651365113fc12850c43d9a"
1961
  },
1962
  "dist": {
1963
  "type": "zip",
1964
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/4a8bf11547e139e77b651365113fc12850c43d9a",
1965
+ "reference": "4a8bf11547e139e77b651365113fc12850c43d9a",
1966
  "shasum": ""
1967
  },
1968
  "require": {
1969
+ "php": "^5.3.3 || ^7.0"
 
1970
  },
1971
  "require-dev": {
1972
  "phpunit/phpunit": "^4.6",
1999
  "check",
2000
  "validate"
2001
  ],
2002
+ "time": "2016-11-23 20:04:41"
2003
  }
2004
  ],
2005
  "aliases": [],
2006
  "minimum-stability": "dev",
2007
+ "stability-flags": {
2008
+ "dhii/php-cs-fixer-config": 20
2009
+ },
2010
+ "prefer-stable": false,
2011
  "prefer-lowest": false,
2012
  "platform": {
2013
+ "php": "^5.3 | ^7.0"
2014
  },
2015
  "platform-dev": []
2016
  }
vendor/dhii/data-key-value-aware-interface/nbproject/project.properties ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ auxiliary.org-netbeans-modules-php-phpunit.bootstrap_2e_create_2e_tests=false
2
+ auxiliary.org-netbeans-modules-php-phpunit.bootstrap_2e_enabled=false
3
+ auxiliary.org-netbeans-modules-php-phpunit.bootstrap_2e_path=
4
+ auxiliary.org-netbeans-modules-php-phpunit.configuration_2e_enabled=false
5
+ auxiliary.org-netbeans-modules-php-phpunit.configuration_2e_path=
6
+ auxiliary.org-netbeans-modules-php-phpunit.customSuite_2e_enabled=false
7
+ auxiliary.org-netbeans-modules-php-phpunit.customSuite_2e_path=
8
+ auxiliary.org-netbeans-modules-php-phpunit.phpUnit_2e_enabled=false
9
+ auxiliary.org-netbeans-modules-php-phpunit.phpUnit_2e_path=
10
+ auxiliary.org-netbeans-modules-php-phpunit.test_2e_groups_2e_ask=false
11
+ auxiliary.org-netbeans-modules-php-phpunit.test_2e_run_2e_all=false
12
+ file.reference.data-value-interface-vendor=vendor
13
+ file.reference.data-value-object-interface-vendor=vendor
14
+ file.reference.test-functional=test/functional
15
+ include.path=\
16
+ ${php.global.include.path}:\
17
+ ${file.reference.data-value-interface-vendor}
18
+ php.version=PHP_53
19
+ source.encoding=UTF-8
20
+ src.dir=src
21
+ tags.asp=false
22
+ tags.short=false
23
+ test.src.dir=${file.reference.test-functional}
24
+ testing.providers=PhpUnit
25
+ web.root=.
vendor/dhii/data-key-value-aware-interface/nbproject/project.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://www.netbeans.org/ns/project/1">
3
+ <type>org.netbeans.modules.php.project</type>
4
+ <configuration>
5
+ <data xmlns="http://www.netbeans.org/ns/php-project/1">
6
+ <name>dhii - data-key-value-aware-interface</name>
7
+ </data>
8
+ </configuration>
9
+ </project>
vendor/dhii/{module-interface → data-key-value-aware-interface}/phpunit.xml RENAMED
@@ -32,4 +32,4 @@
32
  <log type="testdox-html" target="./test/log/testdox.html"/>
33
  <log type="testdox-text" target="./test/log/testdox.txt"/>
34
  </logging>
35
- </phpunit>
32
  <log type="testdox-html" target="./test/log/testdox.html"/>
33
  <log type="testdox-text" target="./test/log/testdox.txt"/>
34
  </logging>
35
+ </phpunit>
vendor/dhii/data-key-value-aware-interface/src/KeyAwareInterface.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Data;
4
+
5
+ /**
6
+ * Something that can have a key.
7
+ *
8
+ * A key is an identifier, i.e. a code.
9
+ *
10
+ * @since 0.1
11
+ */
12
+ interface KeyAwareInterface
13
+ {
14
+ /**
15
+ * Retrieve the key of interface.
16
+ *
17
+ * @since 0.1
18
+ *
19
+ * @return string The key that this interface has.
20
+ */
21
+ public function getKey();
22
+ }
vendor/dhii/data-key-value-aware-interface/src/KeyValueAwareInterface.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Data;
4
+
5
+ /**
6
+ * Represents something that can have a key and a value.
7
+ *
8
+ * An example could be an option, or a collection item, or a mapping.
9
+ *
10
+ * @since 0.1
11
+ */
12
+ interface KeyValueAwareInterface extends
13
+ KeyAwareInterface,
14
+ ValueAwareInterface
15
+ {
16
+ }
vendor/dhii/data-key-value-aware-interface/src/ValueAwareInterface.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Data;
4
+
5
+ /**
6
+ * Something that can represent or have a value.
7
+ *
8
+ * @since 0.1
9
+ */
10
+ interface ValueAwareInterface
11
+ {
12
+ /**
13
+ * Retrieves the value that this object represents.
14
+ *
15
+ * @since 0.1
16
+ *
17
+ * @return mixed The value that this object represents.
18
+ */
19
+ public function getValue();
20
+ }
vendor/dhii/{containers → data-key-value-aware-interface}/test/bootstrap.php RENAMED
File without changes
vendor/dhii/data-key-value-aware-interface/test/functional/KeyAwareInterfaceTest.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Data\FuncTest;
4
+
5
+ /**
6
+ * Tests {@see \Dhii\Data\ValueAwareInterface}.
7
+ *
8
+ * @since 0.1
9
+ */
10
+ class KeyAwareInterfaceTest extends \Xpmock\TestCase
11
+ {
12
+ const TEST_SUBJECT_CLASSNAME = 'Dhii\\Data\\KeyAwareInterface';
13
+
14
+ /**
15
+ * Creates a new instance of the test subject.
16
+ *
17
+ * @since 0.1
18
+ *
19
+ * @return \Dhii\Data\KeyAwareInterface A new instance of the test subject.
20
+ */
21
+ public function createInstance()
22
+ {
23
+ $mock = $this->mock(static::TEST_SUBJECT_CLASSNAME)
24
+ ->getKey()
25
+ ->new();
26
+
27
+ return $mock;
28
+ }
29
+
30
+ /**
31
+ * Tests whether a valid instance of the test subject can be created.
32
+ *
33
+ * @since 0.1
34
+ */
35
+ public function testCanBeCreated()
36
+ {
37
+ $subject = $this->createInstance();
38
+
39
+ $this->assertInstanceOf(static::TEST_SUBJECT_CLASSNAME, $subject, 'A valid instance of the test subject could not be created');
40
+ }
41
+ }
vendor/dhii/data-key-value-aware-interface/test/functional/KeyValueAwareInterfaceTest.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Data\FuncTest;
4
+
5
+ /**
6
+ * Tests {@see \Dhii\Data\KeyValueAwareInterface
7
+ *
8
+ * @since 0.1
9
+ */
10
+ class KeyValueAwareInterfaceTest extends \Xpmock\TestCase
11
+ {
12
+ const TEST_SUBJECT_CLASSNAME = 'Dhii\\Data\\ValueAwareInterface';
13
+
14
+ /**
15
+ * Creates a new instance of the test subject.
16
+ *
17
+ * @since 0.1
18
+ *
19
+ * @return \Dhii\Data\KeyValueAwareInterface A new instance of the test subject.
20
+ */
21
+ public function createInstance()
22
+ {
23
+ $mock = $this->mock(static::TEST_SUBJECT_CLASSNAME)
24
+ ->getKey()
25
+ ->getValue()
26
+ ->new();
27
+
28
+ return $mock;
29
+ }
30
+
31
+ /**
32
+ * Tests whether a valid instance of the test subject can be created.
33
+ *
34
+ * @since 0.1
35
+ */
36
+ public function testCanBeCreated()
37
+ {
38
+ $subject = $this->createInstance();
39
+
40
+ $this->assertInstanceOf(static::TEST_SUBJECT_CLASSNAME, $subject, 'A valid instance of the test subject could not be created');
41
+ }
42
+ }
vendor/dhii/data-key-value-aware-interface/test/functional/ValueAwareInterfaceTest.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Dhii\Data\FuncTest;
4
+
5
+ /**
6
+ * Tests {@see \Dhii\Data\ValueAwareInterface}.
7
+ *
8
+ * @since 0.1
9
+ */
10
+ class ValueAwareInterfaceTest extends \Xpmock\TestCase
11
+ {
12
+ const TEST_SUBJECT_CLASSNAME = 'Dhii\\Data\\ValueAwareInterface';
13
+
14
+ /**
15
+ * Creates a new instance of the test subject.
16
+ *
17
+ * @since 0.1
18
+ *
19
+ * @return \Dhii\Data\ValueAwareInterface A new instance of the test subject.
20
+ */
21
+ public function createInstance()
22
+ {
23
+ $mock = $this->mock(static::TEST_SUBJECT_CLASSNAME)
24
+ ->getValue()
25
+ ->new();
26
+
27
+ return $mock;
28
+ }
29
+
30
+ /**
31
+ * Tests whether a valid instance of the test subject can be created.
32
+ *
33
+ * @since 0.1
34
+ */
35
+ public function testCanBeCreated()
36
+ {
37
+ $subject = $this->createInstance();
38
+
39
+ $this->assertInstanceOf(static::TEST_SUBJECT_CLASSNAME, $subject, 'A valid instance of the test subject could not be created');
40
+ }
41
+ }
vendor/dhii/module-interface/.env.example DELETED
@@ -1 +0,0 @@
1
- BASE_PATH=./
 
vendor/dhii/module-interface/CHANGELOG.md CHANGED
@@ -4,24 +4,8 @@ All notable changes to this project will be documented in this file.
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
 
7
- ## [[*next-version*]] - YYYY-MM-DD
8
-
9
- ## [0.2.0-alpha1] - 2020-04-10
10
- ### Changed
11
- - Module `setup()` now returns a `ServiceProviderInterface` instance.
12
- - Module `run()` now requires the `ContainerInterface` argument.
13
- - Modules are no longer key-aware.
14
-
15
- ### Removed
16
- - `DependenciesAwareInterface` has been removed.
17
- - `ModuleFactoryInterface` has been removed.
18
- - `ModuleKeyAwareInterface` has been removed.
19
-
20
  ## [0.1] - 2019-11-05
21
  Stable release
22
 
23
- ### Fixed
24
- - Modules are now allowed to throw specialized exceptions.
25
-
26
  ## [0.1-alpha1] - 2018-05-07
27
  Initial version.
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  ## [0.1] - 2019-11-05
8
  Stable release
9
 
 
 
 
10
  ## [0.1-alpha1] - 2018-05-07
11
  Initial version.
vendor/dhii/module-interface/README.md CHANGED
@@ -4,287 +4,27 @@
4
  [![Code Climate](https://codeclimate.com/github/Dhii/module-interface/badges/gpa.svg)](https://codeclimate.com/github/Dhii/module-interface)
5
  [![Test Coverage](https://codeclimate.com/github/Dhii/module-interface/badges/coverage.svg)](https://codeclimate.com/github/Dhii/module-interface/coverage)
6
  [![Latest Stable Version](https://poser.pugx.org/dhii/module-interface/version)](https://packagist.org/packages/dhii/module-interface)
 
7
 
8
  ## Details
9
  This package contains interfaces that are useful in describing modules and their attributes and behaviour.
10
-
11
- ### Requirements
12
- - PHP: 7.1 and up, until 8.
13
-
14
- Officially supports at least up to php 7.4.x.
15
 
16
  ### Interfaces
17
- - [`ModuleInterface`][] - The interface for a module. A module is an object that represents an
18
- application fragment. Modules are prepared using `setup()`, which returns a `ServiceProviderInterface` instance that
19
- the application may consume, and invoked using `run()`, consuming the application's DI container.
20
- - [`ModuleAwareInterface`][] - Something that can have a module retrieved.
21
- - [`ModuleExceptionInterface`][] - An exception thrown by a module.
22
-
23
- ### Usage
24
- #### Module Package
25
- In your module's pacakge, create a file that returns a module factory. This factory MUST return an instance
26
- of `ModuleInterface` from this pacakge. By convention, this file has
27
- the name `module.php`, and is located in the root directory. Below is a very basic example. In real life,
28
- the service provider and the module will often have named classes of their own, and factories and extensions
29
- will be located in `services.php` and `extensions.php` respectively, by convention.
30
-
31
- ```php
32
- // module.php
33
- use Dhii\Modular\Module\ModuleInterface;
34
- use Interop\Container\ServiceProviderInterface;
35
- use Psr\Container\ContainerInterface;
36
-
37
- return function () {
38
- return new class () implements ModuleInterface {
39
-
40
- /**
41
- * Declares services of this module.
42
- *
43
- * @return ServiceProviderInterface The service provider with the factories and extensions of this module.
44
- */
45
- public function setup() : ServiceProviderInterface
46
- {
47
- return new class () implements ServiceProviderInterface
48
- {
49
- /**
50
- * Only the factory of the last module in load order is applied.
51
- *
52
- * @return array|callable[] A map of service names to service definitions.
53
- */
54
- public function getFactories()
55
- {
56
- return [
57
- // A factory always gets one parameter: the container.
58
- 'my_module/my_service' => function (ContainerInterface $c) {
59
- // Create and return your service instance
60
- return new MyService();
61
- },
62
- ];
63
- }
64
-
65
- /**
66
- * All extensions are always applied, in load order.
67
- *
68
- * @return array|callable[] A map of service names to extensions.
69
- */
70
- public function getExtensions()
71
- {
72
- return [
73
- // An extension gets an additional parameter:
74
- // the value returned by the factory or the previously applied extensions.
75
- 'other_module/other_service' => function (
76
- ContainerInterface $c,
77
- OtherServiceInterface $previous
78
- ): OtherServiceInterface {
79
- // Perhaps decorate $previous and return the decorator
80
- return new MyDecorator($previous);
81
- },
82
- ];
83
- }
84
- };
85
- }
86
-
87
- /**
88
- * Consumes services of this and other modules.
89
- *
90
- * @param ContainerInterface $c A container with the services of all modules.
91
- */
92
- public function run(ContainerInterface $c)
93
- {
94
- $myService = $c->get('my_module/my_service');
95
- $myService->doSomething();
96
- }
97
- };
98
- };
99
- ```
100
-
101
- In the above example, the module declares a service `my_module/my_service`, and an extension
102
- for the `other_module/other_service`, which may be found in another module. Note that by convention,
103
- the service name contains the module name prefix, separated by forward slash `/`. It's possible
104
- to further "nest" services by adding slash-separated "levels". In the future, some container
105
- implementations will add benefits for modules that use this convention.
106
-
107
- Applications would often need the ability to do something with the arbitrary set of
108
- modules they require. In order for an application to be able to group all modules
109
- together, declare the package type in your `composer.json` to be `dhii-mod` by convention.
110
- Following this convention would allow all modules written by all authors to be treated
111
- uniformly.
112
-
113
- ```json
114
- {
115
- "name": "me/my_module",
116
- "type": "dhii-mod"
117
- }
118
- ```
119
-
120
- What's important here:
121
-
122
- 1. A module's `setup()` method should not cause side effects.
123
-
124
- The setup method is intended for the modules to prepare for action. Modules should not actually
125
- peform the actions during this method. The container is not available in this method, and therefore
126
- the module cannot use any services, whether of itself or of other modules, in this method. Do not
127
- try to make the module use its own services here.
128
-
129
- 2. Implement the correct interfaces.
130
-
131
- A module MUST implement `ModuleInterface`. The module's `setup()` method MUST return `ServiceProviderInterface`.
132
- Even though the [Service Provider][`container-interop/service-provider`] standard is experimental, and has been experimental for a long time, the
133
- module standard relies heavily on it. If the module standard becomes ubiquitous, this could push
134
- FIG to go forward with the Service Provider standard, hopefully making it into a PSR.
135
-
136
- 3. Observe conventions.
137
-
138
- It is important that conventions outlined here are observed. Some are necessary for smooth operation of
139
- modules and/or consuming applications. Some others may not make a difference right now, but could
140
- add benefits in the future. Please observe these conventions to ensure an optimal experience
141
- for yourself and for other users of the standard.
142
-
143
- #### Consumer Package
144
- ##### Module Installation
145
- The package that consumes modules, which is usually the application, would need to require the modules.
146
- The below example uses the [`oomphinc/composer-installers-extender`][] lib to configure Composer
147
- so that it installs all `dhii-mod` packages into the `modules` directory in the application root.
148
- Packages `me/my_module` and `me/my_other_module` would therefore go into `modules/me/my_module` and
149
- `modules/me/my_other_module` respectively.
150
-
151
- ```json
152
- {
153
- "name": "me/my_app",
154
- "require": {
155
- "me/my_module": "^0.1",
156
- "me/my_other_module": "^0.1",
157
- "oomphinc/composer-installers-extender": "^1.1"
158
- },
159
-
160
- "extra": {
161
- "installer-types": ["dhii-mod"],
162
- "installer-paths": {
163
- "modules/{$vendor}/{$name}": ["type:dhii-mod"]
164
- }
165
- }
166
- }
167
- ```
168
-
169
- ##### Module Loading
170
- Once a module has been required, it must be loaded. Module files must be explicitly loaded by the
171
- application, because the application is what determines module load order. The load order is
172
- the fundamental principle that allows modules to extend and override each other's services
173
- in a simple and intuitive way:
174
 
175
- 1. Factories in modules that are loaded later will completely override factories of modules loaded earlier.
176
-
177
- Ultimately, for each service, only one factory will be used: the one declared last. So if `my_other_module`
178
- is loaded after `my_module`, and it declares a service `my_module/my_service`,
179
- then it will override the `my_module/my_service` service declared by `my_module`.
180
- In short: **last factory wins**.
181
-
182
- 2. Extensions in modules that are loaded later will be applied after extensions of modules loaded earlier.
183
-
184
- Ultimately, extensions from _all_ modules will be applied on top of what is returned by the factory.
185
- So if `my_other_module` declares an extension `other_module/other_service`, it will be applied after
186
- the extension `other_module/other_service` declared by `my_module`.
187
- In short: **later extensions extend previous extensions**.
188
-
189
- Continuing from the examples above, if something in the application requests the service `other_module/other_service`
190
- declared by `my_other_module`, this is what is going to happen:
191
-
192
- 1. The factory in `my_other_module` is invoked.
193
- 2. The extension in `my_module` is invoked, and receives the result of the above factory as `$previous`.
194
- 3. The extension in `my_other_module` is invoked, and receives the result of the above extension as `$previous`
195
- 4. The caller of `get('other_module/other_service')` receives the result of the above extension.
196
-
197
- Thus, any module can override and/or extend services from any other module. Below is an example of what
198
- an application's bootstrap code could look like. This example uses classes from [`dhii/containers`][].
199
-
200
- ```php
201
- // bootstrap.php
202
-
203
- use Dhii\Modular\Module\ModuleInterface;
204
- use Interop\Container\ServiceProviderInterface;
205
- use Dhii\Container\CompositeCachingServiceProvider;
206
- use Dhii\Container\DelegatingContainer;
207
- use Dhii\Container\CachingContainer;
208
-
209
- (function ($file) {
210
- $baseDir = dirname($file);
211
- $modulesDir = "$baseDir/modules";
212
-
213
- // Order is important!
214
- $moduleNames = [
215
- 'me/my_module',
216
- 'me/my_other_module',
217
- ];
218
-
219
- // Create and load all modules
220
- /* @var $modules ModuleInterface[] */
221
- $modules = [];
222
- foreach ($moduleNames as $moduleName) {
223
- $moduleFactory = require_once("$modulesDir/$moduleName/module.php");
224
- $module = $moduleFactory();
225
- $modules[$moduleName] = $module;
226
- }
227
-
228
- // Retrieve all modules' service providers
229
- /* @var $providers ServiceProviderInterface[] */
230
- $providers = [];
231
- foreach ($modules as $module) {
232
- $providers[] = $module->setup();
233
- }
234
-
235
- // Group all service providers into one
236
- $provider = new CompositeCachingServiceProvider();
237
- $container = new CachingContainer(new DelegatingContainer($provider, $parentContainer = null));
238
-
239
- // Run all modules
240
- foreach ($modules as $module) {
241
- $module->run($container);
242
- }
243
- })(__FILE__);
244
- ```
245
-
246
- The above will load, setup, and run modules `me/my_module` and `me/my_other_module`, in that order,
247
- from the `modules` directory, provided that conventions have been followed by those modules.
248
- What's important to note here:
249
-
250
- 1. First _all_ modules are set up, and then _all_ modules are run.
251
-
252
- If you set up and run modules in the same step, it will not work, because the bootstrap
253
- will not have the opportunity to configure the application's DI container with services
254
- from all modules.
255
-
256
- 2. The `CompositeCachingServiceProvider` is what is responsible for resolving services correctly.
257
-
258
- This relieves the application, as the process can seem complicated, and is quite re-usable.
259
- The usage of this class is recommended.
260
-
261
- 3. The `DelegatingContainer` optionally accepts a parent container.
262
-
263
- If your application is a module itself, and needs to be part of a larger application with its
264
- own DI container, supply it as the 2nd parameter. This will ensure that services will always
265
- be retrieved from the top-most container, regardless of where the definition is declared.
266
-
267
- 4. The `CachingContainer` ensures services are cached.
268
-
269
- Effectively, this means that all services are singletons, i.e. there will only be one instance
270
- of each service in the application. This is most commonly the desired behaviour. Without the
271
- `CachingContainer`, i.e. with just the `DelegatingContainer`, service definitions will get
272
- invoked every time `get()` is called, which is usually undesirable.
273
-
274
- 5. Conventions are important.
275
-
276
- If modules did not place the `module.php` file into their root directories, the bootstrap
277
- would not be able to load each module by just its package name. Modules which do not
278
- follow that convention must have their `module.php` file loaded separately, which would
279
- make the bootstrap code more complicated.
280
 
281
 
282
  [Dhii]: https://github.com/Dhii/dhii
283
 
284
- [`dhii/containers`]: https://packagist.org/packages/dhii/containers
285
- [`oomphinc/composer-installers-extender`]: https://packagist.org/packages/oomphinc/composer-installers-extender
286
- [`container-interop/service-provider`]: https://packagist.org/packages/container-interop/service-provider
287
-
288
- [`ModuleInterface`]: src/ModuleInterface.php
289
- [`ModuleAwareInterface`]: src/ModuleAwareInterface.php
290
- [`ModuleExceptionInterface`]: src/Exception/ModuleExceptionInterface.php
4
  [![Code Climate](https://codeclimate.com/github/Dhii/module-interface/badges/gpa.svg)](https://codeclimate.com/github/Dhii/module-interface)
5
  [![Test Coverage](https://codeclimate.com/github/Dhii/module-interface/badges/coverage.svg)](https://codeclimate.com/github/Dhii/module-interface/coverage)
6
  [![Latest Stable Version](https://poser.pugx.org/dhii/module-interface/version)](https://packagist.org/packages/dhii/module-interface)
7
+ [![This package complies with Dhii standards](https://img.shields.io/badge/Dhii-Compliant-green.svg?style=flat-square)][Dhii]
8
 
9
  ## Details
10
  This package contains interfaces that are useful in describing modules and their attributes and behaviour.
 
 
 
 
 
11
 
12
  ### Interfaces
13
+ - [`ModuleInterface`][ModuleInterface] - Represents a module. A module MUST have a key, and MUST be able to be set up
14
+ and run separately in order to have the chance to prepare itself and let other potential modules to do the same. The
15
+ `setup()` method MAY return a container with the services provided by that module. The `run()` method MAY accept an
16
+ optional container with the services provided by the application, but MUST handle the case where no container is provided.
17
+ The container provided to `run()` MAY be the same container returned from `setup()`. Implementations that consume
18
+ their own services SHOULD therefore rely only on what is provided to `run()`, which gives the application the means
19
+ to add or override services. Nevertheless, implementations MUST NOT assume that the container received by `run()` is
20
+ the same container returned from `setup()`.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
+ ### Requirements
23
+ This package officially supports PHP 5.3 until PHP 7.3. Theoretically, it should work on higher versions of PHP just
24
+ the same, at the very least until PHP 8. However, it does not appear possible to build on PHP 5.3 and 7.4 at the same
25
+ time, because there seems to be no distro which has both of those in its toolchain.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
 
28
  [Dhii]: https://github.com/Dhii/dhii
29
 
30
+ [ModuleInterface]: src/ModuleInterface.php
 
 
 
 
 
 
vendor/dhii/module-interface/composer.json CHANGED
@@ -12,12 +12,18 @@
12
  "prefer-stable": true,
13
  "minimum-stability": "dev",
14
  "require": {
15
- "php": "^7.1",
16
- "psr/container": "^1.0",
17
- "container-interop/service-provider": "^0.4"
 
18
  },
19
  "require-dev": {
20
- "phpunit/phpunit": "^6.0 | ^7.0"
 
 
 
 
 
21
  },
22
  "autoload": {
23
  "psr-4": {
@@ -27,16 +33,16 @@
27
  "autoload-dev": {
28
  "psr-4": {
29
  "Dhii\\Modular\\Module\\UnitTest\\": "test/unit",
30
- "Dhii\\Modular\\Module\\FuncTest\\": "test/functional",
31
- "Dhii\\Modular\\Module\\Test\\": "test/stubs"
32
  }
33
  },
34
  "scripts": {
35
- "test": "phpunit"
 
36
  },
37
  "extra": {
38
  "branch-alias": {
39
- "dev-develop": "0.2.x-dev"
40
  }
41
  }
42
  }
12
  "prefer-stable": true,
13
  "minimum-stability": "dev",
14
  "require": {
15
+ "php": "^5.3 | ^7.0",
16
+ "dhii/exception-interface": "^0.1 | ^0.2",
17
+ "dhii/data-key-value-aware-interface": "^0.1",
18
+ "dhii/factory-interface": "^0.1-alpha1"
19
  },
20
  "require-dev": {
21
+ "phpunit/phpunit": "^4.8",
22
+ "ptrofimov/xpmock": "^1.1",
23
+ "dhii/php-cs-fixer-config": "dev-php-5.3",
24
+ "codeclimate/php-test-reporter": "<=0.3.2",
25
+ "dhii/stringable-interface": "^0.1",
26
+ "psr/container": "^1.0"
27
  },
28
  "autoload": {
29
  "psr-4": {
33
  "autoload-dev": {
34
  "psr-4": {
35
  "Dhii\\Modular\\Module\\UnitTest\\": "test/unit",
36
+ "Dhii\\Modular\\Module\\FuncTest\\": "test/functional"
 
37
  }
38
  },
39
  "scripts": {
40
+ "test": "phpunit",
41
+ "csfix": "php-cs-fixer fix -vvv"
42
  },
43
  "extra": {
44
  "branch-alias": {
45
+ "dev-develop": "0.1.x-dev"
46
  }
47
  }
48
  }
vendor/dhii/module-interface/composer.lock DELETED
@@ -1,1569 +0,0 @@
1
- {
2
- "_readme": [
3
- "This file locks the dependencies of your project to a known state",
4
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5
- "This file is @generated automatically"
6
- ],
7
- "content-hash": "f870e9a04e6a5595167e21a6ec1938cf",
8
- "packages": [
9
- {
10
- "name": "container-interop/service-provider",
11
- "version": "v0.4.0",
12
- "source": {
13
- "type": "git",
14
- "url": "https://github.com/container-interop/service-provider.git",
15
- "reference": "4969b9e49460690b7430b3f1a87cab07be61418a"
16
- },
17
- "dist": {
18
- "type": "zip",
19
- "url": "https://api.github.com/repos/container-interop/service-provider/zipball/4969b9e49460690b7430b3f1a87cab07be61418a",
20
- "reference": "4969b9e49460690b7430b3f1a87cab07be61418a",
21
- "shasum": ""
22
- },
23
- "require": {
24
- "psr/container": "^1.0"
25
- },
26
- "type": "library",
27
- "autoload": {
28
- "psr-4": {
29
- "Interop\\Container\\": "src/"
30
- }
31
- },
32
- "notification-url": "https://packagist.org/downloads/",
33
- "license": [
34
- "MIT"
35
- ],
36
- "description": "Promoting container interoperability through standard service providers",
37
- "homepage": "https://github.com/container-interop/service-provider",
38
- "time": "2017-09-20T14:13:36+00:00"
39
- },
40
- {
41
- "name": "psr/container",
42
- "version": "1.0.0",
43
- "source": {
44
- "type": "git",
45
- "url": "https://github.com/php-fig/container.git",
46
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
47
- },
48
- "dist": {
49
- "type": "zip",
50
- "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
51
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
52
- "shasum": ""
53
- },
54
- "require": {
55
- "php": ">=5.3.0"
56
- },
57
- "type": "library",
58
- "extra": {
59
- "branch-alias": {
60
- "dev-master": "1.0.x-dev"
61
- }
62
- },
63
- "autoload": {
64
- "psr-4": {
65
- "Psr\\Container\\": "src/"
66
- }
67
- },
68
- "notification-url": "https://packagist.org/downloads/",
69
- "license": [
70
- "MIT"
71
- ],
72
- "authors": [
73
- {
74
- "name": "PHP-FIG",
75
- "homepage": "http://www.php-fig.org/"
76
- }
77
- ],
78
- "description": "Common Container Interface (PHP FIG PSR-11)",
79
- "homepage": "https://github.com/php-fig/container",
80
- "keywords": [
81
- "PSR-11",
82
- "container",
83
- "container-interface",
84
- "container-interop",
85
- "psr"
86
- ],
87
- "time": "2017-02-14T16:28:37+00:00"
88
- }
89
- ],
90
- "packages-dev": [
91
- {
92
- "name": "doctrine/instantiator",
93
- "version": "1.3.0",
94
- "source": {
95
- "type": "git",
96
- "url": "https://github.com/doctrine/instantiator.git",
97
- "reference": "ae466f726242e637cebdd526a7d991b9433bacf1"
98
- },
99
- "dist": {
100
- "type": "zip",
101
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1",
102
- "reference": "ae466f726242e637cebdd526a7d991b9433bacf1",
103
- "shasum": ""
104
- },
105
- "require": {
106
- "php": "^7.1"
107
- },
108
- "require-dev": {
109
- "doctrine/coding-standard": "^6.0",
110
- "ext-pdo": "*",
111
- "ext-phar": "*",
112
- "phpbench/phpbench": "^0.13",
113
- "phpstan/phpstan-phpunit": "^0.11",
114
- "phpstan/phpstan-shim": "^0.11",
115
- "phpunit/phpunit": "^7.0"
116
- },
117
- "type": "library",
118
- "extra": {
119
- "branch-alias": {
120
- "dev-master": "1.2.x-dev"
121
- }
122
- },
123
- "autoload": {
124
- "psr-4": {
125
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
126
- }
127
- },
128
- "notification-url": "https://packagist.org/downloads/",
129
- "license": [
130
- "MIT"
131
- ],
132
- "authors": [
133
- {
134
- "name": "Marco Pivetta",
135
- "email": "ocramius@gmail.com",
136
- "homepage": "http://ocramius.github.com/"
137
- }
138
- ],
139
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
140
- "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
141
- "keywords": [
142
- "constructor",
143
- "instantiate"
144
- ],
145
- "time": "2019-10-21T16:45:58+00:00"
146
- },
147
- {
148
- "name": "myclabs/deep-copy",
149
- "version": "1.9.5",
150
- "source": {
151
- "type": "git",
152
- "url": "https://github.com/myclabs/DeepCopy.git",
153
- "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef"
154
- },
155
- "dist": {
156
- "type": "zip",
157
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef",
158
- "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef",
159
- "shasum": ""
160
- },
161
- "require": {
162
- "php": "^7.1"
163
- },
164
- "replace": {
165
- "myclabs/deep-copy": "self.version"
166
- },
167
- "require-dev": {
168
- "doctrine/collections": "^1.0",
169
- "doctrine/common": "^2.6",
170
- "phpunit/phpunit": "^7.1"
171
- },
172
- "type": "library",
173
- "autoload": {
174
- "psr-4": {
175
- "DeepCopy\\": "src/DeepCopy/"
176
- },
177
- "files": [
178
- "src/DeepCopy/deep_copy.php"
179
- ]
180
- },
181
- "notification-url": "https://packagist.org/downloads/",
182
- "license": [
183
- "MIT"
184
- ],
185
- "description": "Create deep copies (clones) of your objects",
186
- "keywords": [
187
- "clone",
188
- "copy",
189
- "duplicate",
190
- "object",
191
- "object graph"
192
- ],
193
- "time": "2020-01-17T21:11:47+00:00"
194
- },
195
- {
196
- "name": "phar-io/manifest",
197
- "version": "1.0.3",
198
- "source": {
199
- "type": "git",
200
- "url": "https://github.com/phar-io/manifest.git",
201
- "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
202
- },
203
- "dist": {
204
- "type": "zip",
205
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
206
- "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
207
- "shasum": ""
208
- },
209
- "require": {
210
- "ext-dom": "*",
211
- "ext-phar": "*",
212
- "phar-io/version": "^2.0",
213
- "php": "^5.6 || ^7.0"
214
- },
215
- "type": "library",
216
- "extra": {
217
- "branch-alias": {
218
- "dev-master": "1.0.x-dev"
219
- }
220
- },
221
- "autoload": {
222
- "classmap": [
223
- "src/"
224
- ]
225
- },
226
- "notification-url": "https://packagist.org/downloads/",
227
- "license": [
228
- "BSD-3-Clause"
229
- ],
230
- "authors": [
231
- {
232
- "name": "Arne Blankerts",
233
- "email": "arne@blankerts.de",
234
- "role": "Developer"
235
- },
236
- {
237
- "name": "Sebastian Heuer",
238
- "email": "sebastian@phpeople.de",
239
- "role": "Developer"
240
- },
241
- {
242
- "name": "Sebastian Bergmann",
243
- "email": "sebastian@phpunit.de",
244
- "role": "Developer"
245
- }
246
- ],
247
- "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
248
- "time": "2018-07-08T19:23:20+00:00"
249
- },
250
- {
251
- "name": "phar-io/version",
252
- "version": "2.0.1",
253
- "source": {
254
- "type": "git",
255
- "url": "https://github.com/phar-io/version.git",
256
- "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
257
- },
258
- "dist": {
259
- "type": "zip",
260
- "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6",
261
- "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6",
262
- "shasum": ""
263
- },
264
- "require": {
265
- "php": "^5.6 || ^7.0"
266
- },
267
- "type": "library",
268
- "autoload": {
269
- "classmap": [
270
- "src/"
271
- ]
272
- },
273
- "notification-url": "https://packagist.org/downloads/",
274
- "license": [
275
- "BSD-3-Clause"
276
- ],
277
- "authors": [
278
- {
279
- "name": "Arne Blankerts",
280
- "email": "arne@blankerts.de",
281
- "role": "Developer"
282
- },
283
- {
284
- "name": "Sebastian Heuer",
285
- "email": "sebastian@phpeople.de",
286
- "role": "Developer"
287
- },
288
- {
289
- "name": "Sebastian Bergmann",
290
- "email": "sebastian@phpunit.de",
291
- "role": "Developer"
292
- }
293
- ],
294
- "description": "Library for handling version information and constraints",
295
- "time": "2018-07-08T19:19:57+00:00"
296
- },
297
- {
298
- "name": "phpdocumentor/reflection-common",
299
- "version": "2.0.0",
300
- "source": {
301
- "type": "git",
302
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
303
- "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a"
304
- },
305
- "dist": {
306
- "type": "zip",
307
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a",
308
- "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a",
309
- "shasum": ""
310
- },
311
- "require": {
312
- "php": ">=7.1"
313
- },
314
- "require-dev": {
315
- "phpunit/phpunit": "~6"
316
- },
317
- "type": "library",
318
- "extra": {
319
- "branch-alias": {
320
- "dev-master": "2.x-dev"
321
- }
322
- },
323
- "autoload": {
324
- "psr-4": {
325
- "phpDocumentor\\Reflection\\": "src/"
326
- }
327
- },
328
- "notification-url": "https://packagist.org/downloads/",
329
- "license": [
330
- "MIT"
331
- ],
332
- "authors": [
333
- {
334
- "name": "Jaap van Otterdijk",
335
- "email": "opensource@ijaap.nl"
336
- }
337
- ],
338
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
339
- "homepage": "http://www.phpdoc.org",
340
- "keywords": [
341
- "FQSEN",
342
- "phpDocumentor",
343
- "phpdoc",
344
- "reflection",
345
- "static analysis"
346
- ],
347
- "time": "2018-08-07T13:53:10+00:00"
348
- },
349
- {
350
- "name": "phpdocumentor/reflection-docblock",
351
- "version": "4.3.4",
352
- "source": {
353
- "type": "git",
354
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
355
- "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c"
356
- },
357
- "dist": {
358
- "type": "zip",
359
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c",
360
- "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c",
361
- "shasum": ""
362
- },
363
- "require": {
364
- "php": "^7.0",
365
- "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0",
366
- "phpdocumentor/type-resolver": "~0.4 || ^1.0.0",
367
- "webmozart/assert": "^1.0"
368
- },
369
- "require-dev": {
370
- "doctrine/instantiator": "^1.0.5",
371
- "mockery/mockery": "^1.0",
372
- "phpdocumentor/type-resolver": "0.4.*",
373
- "phpunit/phpunit": "^6.4"
374
- },
375
- "type": "library",
376
- "extra": {
377
- "branch-alias": {
378
- "dev-master": "4.x-dev"
379
- }
380
- },
381
- "autoload": {
382
- "psr-4": {
383
- "phpDocumentor\\Reflection\\": [
384
- "src/"
385
- ]
386
- }
387
- },
388
- "notification-url": "https://packagist.org/downloads/",
389
- "license": [
390
- "MIT"
391
- ],
392
- "authors": [
393
- {
394
- "name": "Mike van Riel",
395
- "email": "me@mikevanriel.com"
396
- }
397
- ],
398
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
399
- "time": "2019-12-28T18:55:12+00:00"
400
- },
401
- {
402
- "name": "phpdocumentor/type-resolver",
403
- "version": "1.0.1",
404
- "source": {
405
- "type": "git",
406
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
407
- "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9"
408
- },
409
- "dist": {
410
- "type": "zip",
411
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9",
412
- "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9",
413
- "shasum": ""
414
- },
415
- "require": {
416
- "php": "^7.1",
417
- "phpdocumentor/reflection-common": "^2.0"
418
- },
419
- "require-dev": {
420
- "ext-tokenizer": "^7.1",
421
- "mockery/mockery": "~1",
422
- "phpunit/phpunit": "^7.0"
423
- },
424
- "type": "library",
425
- "extra": {
426
- "branch-alias": {
427
- "dev-master": "1.x-dev"
428
- }
429
- },
430
- "autoload": {
431
- "psr-4": {
432
- "phpDocumentor\\Reflection\\": "src"
433
- }
434
- },
435
- "notification-url": "https://packagist.org/downloads/",
436
- "license": [
437
- "MIT"
438
- ],
439
- "authors": [
440
- {
441
- "name": "Mike van Riel",
442
- "email": "me@mikevanriel.com"
443
- }
444
- ],
445
- "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
446
- "time": "2019-08-22T18:11:29+00:00"
447
- },
448
- {
449
- "name": "phpspec/prophecy",
450
- "version": "v1.10.3",
451
- "source": {
452
- "type": "git",
453
- "url": "https://github.com/phpspec/prophecy.git",
454
- "reference": "451c3cd1418cf640de218914901e51b064abb093"
455
- },
456
- "dist": {
457
- "type": "zip",
458
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
459
- "reference": "451c3cd1418cf640de218914901e51b064abb093",
460
- "shasum": ""
461
- },
462
- "require": {
463
- "doctrine/instantiator": "^1.0.2",
464
- "php": "^5.3|^7.0",
465
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
466
- "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
467
- "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
468
- },
469
- "require-dev": {
470
- "phpspec/phpspec": "^2.5 || ^3.2",
471
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
472
- },
473
- "type": "library",
474
- "extra": {
475
- "branch-alias": {
476
- "dev-master": "1.10.x-dev"
477
- }
478
- },
479
- "autoload": {
480
- "psr-4": {
481
- "Prophecy\\": "src/Prophecy"
482
- }
483
- },
484
- "notification-url": "https://packagist.org/downloads/",
485
- "license": [
486
- "MIT"
487
- ],
488
- "authors": [
489
- {
490
- "name": "Konstantin Kudryashov",
491
- "email": "ever.zet@gmail.com",
492
- "homepage": "http://everzet.com"
493
- },
494
- {
495
- "name": "Marcello Duarte",
496
- "email": "marcello.duarte@gmail.com"
497
- }
498
- ],
499
- "description": "Highly opinionated mocking framework for PHP 5.3+",
500
- "homepage": "https://github.com/phpspec/prophecy",
501
- "keywords": [
502
- "Double",
503
- "Dummy",
504
- "fake",
505
- "mock",
506
- "spy",
507
- "stub"
508
- ],
509
- "time": "2020-03-05T15:02:03+00:00"
510
- },
511
- {
512
- "name": "phpunit/php-code-coverage",
513
- "version": "6.1.4",
514
- "source": {
515
- "type": "git",
516
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
517
- "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d"
518
- },
519
- "dist": {
520
- "type": "zip",
521
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
522
- "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
523
- "shasum": ""
524
- },
525
- "require": {
526
- "ext-dom": "*",
527
- "ext-xmlwriter": "*",
528
- "php": "^7.1",
529
- "phpunit/php-file-iterator": "^2.0",
530
- "phpunit/php-text-template": "^1.2.1",
531
- "phpunit/php-token-stream": "^3.0",
532
- "sebastian/code-unit-reverse-lookup": "^1.0.1",
533
- "sebastian/environment": "^3.1 || ^4.0",
534
- "sebastian/version": "^2.0.1",
535
- "theseer/tokenizer": "^1.1"
536
- },
537
- "require-dev": {
538
- "phpunit/phpunit": "^7.0"
539
- },
540
- "suggest": {
541
- "ext-xdebug": "^2.6.0"
542
- },
543
- "type": "library",
544
- "extra": {
545
- "branch-alias": {
546
- "dev-master": "6.1-dev"
547
- }
548
- },
549
- "autoload": {
550
- "classmap": [
551
- "src/"
552
- ]
553
- },
554
- "notification-url": "https://packagist.org/downloads/",
555
- "license": [
556
- "BSD-3-Clause"
557
- ],
558
- "authors": [
559
- {
560
- "name": "Sebastian Bergmann",
561
- "email": "sebastian@phpunit.de",
562
- "role": "lead"
563
- }
564
- ],
565
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
566
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
567
- "keywords": [
568
- "coverage",
569
- "testing",
570
- "xunit"
571
- ],
572
- "time": "2018-10-31T16:06:48+00:00"
573
- },
574
- {
575
- "name": "phpunit/php-file-iterator",
576
- "version": "2.0.2",
577
- "source": {
578
- "type": "git",
579
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
580
- "reference": "050bedf145a257b1ff02746c31894800e5122946"
581
- },
582
- "dist": {
583
- "type": "zip",
584
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946",
585
- "reference": "050bedf145a257b1ff02746c31894800e5122946",
586
- "shasum": ""
587
- },
588
- "require": {
589
- "php": "^7.1"
590
- },
591
- "require-dev": {
592
- "phpunit/phpunit": "^7.1"
593
- },
594
- "type": "library",
595
- "extra": {
596
- "branch-alias": {
597
- "dev-master": "2.0.x-dev"
598
- }
599
- },
600
- "autoload": {
601
- "classmap": [
602
- "src/"
603
- ]
604
- },
605
- "notification-url": "https://packagist.org/downloads/",
606
- "license": [
607
- "BSD-3-Clause"
608
- ],
609
- "authors": [
610
- {
611
- "name": "Sebastian Bergmann",
612
- "email": "sebastian@phpunit.de",
613
- "role": "lead"
614
- }
615
- ],
616
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
617
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
618
- "keywords": [
619
- "filesystem",
620
- "iterator"
621
- ],
622
- "time": "2018-09-13T20:33:42+00:00"
623
- },
624
- {
625
- "name": "phpunit/php-text-template",
626
- "version": "1.2.1",
627
- "source": {
628
- "type": "git",
629
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
630
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
631
- },
632
- "dist": {
633
- "type": "zip",
634
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
635
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
636
- "shasum": ""
637
- },
638
- "require": {
639
- "php": ">=5.3.3"
640
- },
641
- "type": "library",
642
- "autoload": {
643
- "classmap": [
644
- "src/"
645
- ]
646
- },
647
- "notification-url": "https://packagist.org/downloads/",
648
- "license": [
649
- "BSD-3-Clause"
650
- ],
651
- "authors": [
652
- {
653
- "name": "Sebastian Bergmann",
654
- "email": "sebastian@phpunit.de",
655
- "role": "lead"
656
- }
657
- ],
658
- "description": "Simple template engine.",
659
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
660
- "keywords": [
661
- "template"
662
- ],
663
- "time": "2015-06-21T13:50:34+00:00"
664
- },
665
- {
666
- "name": "phpunit/php-timer",
667
- "version": "2.1.2",
668
- "source": {
669
- "type": "git",
670
- "url": "https://github.com/sebastianbergmann/php-timer.git",
671
- "reference": "1038454804406b0b5f5f520358e78c1c2f71501e"
672
- },
673
- "dist": {
674
- "type": "zip",
675
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e",
676
- "reference": "1038454804406b0b5f5f520358e78c1c2f71501e",
677
- "shasum": ""
678
- },
679
- "require": {
680
- "php": "^7.1"
681
- },
682
- "require-dev": {
683
- "phpunit/phpunit": "^7.0"
684
- },
685
- "type": "library",
686
- "extra": {
687
- "branch-alias": {
688
- "dev-master": "2.1-dev"
689
- }
690
- },
691
- "autoload": {
692
- "classmap": [
693
- "src/"
694
- ]
695
- },
696
- "notification-url": "https://packagist.org/downloads/",
697
- "license": [
698
- "BSD-3-Clause"
699
- ],
700
- "authors": [
701
- {
702
- "name": "Sebastian Bergmann",
703
- "email": "sebastian@phpunit.de",
704
- "role": "lead"
705
- }
706
- ],
707
- "description": "Utility class for timing",
708
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
709
- "keywords": [
710
- "timer"
711
- ],
712
- "time": "2019-06-07T04:22:29+00:00"
713
- },
714
- {
715
- "name": "phpunit/php-token-stream",
716
- "version": "3.1.1",
717
- "source": {
718
- "type": "git",
719
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
720
- "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff"
721
- },
722
- "dist": {
723
- "type": "zip",
724
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff",
725
- "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff",
726
- "shasum": ""
727
- },
728
- "require": {
729
- "ext-tokenizer": "*",
730
- "php": "^7.1"
731
- },
732
- "require-dev": {
733
- "phpunit/phpunit": "^7.0"
734
- },
735
- "type": "library",
736
- "extra": {
737
- "branch-alias": {
738
- "dev-master": "3.1-dev"
739
- }
740
- },
741
- "autoload": {
742
- "classmap": [
743
- "src/"
744
- ]
745
- },
746
- "notification-url": "https://packagist.org/downloads/",
747
- "license": [
748
- "BSD-3-Clause"
749
- ],
750
- "authors": [
751
- {
752
- "name": "Sebastian Bergmann",
753
- "email": "sebastian@phpunit.de"
754
- }
755
- ],
756
- "description": "Wrapper around PHP's tokenizer extension.",
757
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
758
- "keywords": [
759
- "tokenizer"
760
- ],
761
- "time": "2019-09-17T06:23:10+00:00"
762
- },
763
- {
764
- "name": "phpunit/phpunit",
765
- "version": "7.5.20",
766
- "source": {
767
- "type": "git",
768
- "url": "https://github.com/sebastianbergmann/phpunit.git",
769
- "reference": "9467db479d1b0487c99733bb1e7944d32deded2c"
770
- },
771
- "dist": {
772
- "type": "zip",
773
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c",
774
- "reference": "9467db479d1b0487c99733bb1e7944d32deded2c",
775
- "shasum": ""
776
- },
777
- "require": {
778
- "doctrine/instantiator": "^1.1",
779
- "ext-dom": "*",
780
- "ext-json": "*",
781
- "ext-libxml": "*",
782
- "ext-mbstring": "*",
783
- "ext-xml": "*",
784
- "myclabs/deep-copy": "^1.7",
785
- "phar-io/manifest": "^1.0.2",
786
- "phar-io/version": "^2.0",
787
- "php": "^7.1",
788
- "phpspec/prophecy": "^1.7",
789
- "phpunit/php-code-coverage": "^6.0.7",
790
- "phpunit/php-file-iterator": "^2.0.1",
791
- "phpunit/php-text-template": "^1.2.1",
792
- "phpunit/php-timer": "^2.1",
793
- "sebastian/comparator": "^3.0",
794
- "sebastian/diff": "^3.0",
795
- "sebastian/environment": "^4.0",
796
- "sebastian/exporter": "^3.1",
797
- "sebastian/global-state": "^2.0",
798
- "sebastian/object-enumerator": "^3.0.3",
799
- "sebastian/resource-operations": "^2.0",
800
- "sebastian/version": "^2.0.1"
801
- },
802
- "conflict": {
803
- "phpunit/phpunit-mock-objects": "*"
804
- },
805
- "require-dev": {
806
- "ext-pdo": "*"
807
- },
808
- "suggest": {
809
- "ext-soap": "*",
810
- "ext-xdebug": "*",
811
- "phpunit/php-invoker": "^2.0"
812
- },
813
- "bin": [
814
- "phpunit"
815
- ],
816
- "type": "library",
817
- "extra": {
818
- "branch-alias": {
819
- "dev-master": "7.5-dev"
820
- }
821
- },
822
- "autoload": {
823
- "classmap": [
824
- "src/"
825
- ]
826
- },
827
- "notification-url": "https://packagist.org/downloads/",
828
- "license": [
829
- "BSD-3-Clause"
830
- ],
831
- "authors": [
832
- {
833
- "name": "Sebastian Bergmann",
834
- "email": "sebastian@phpunit.de",
835
- "role": "lead"
836
- }
837
- ],
838
- "description": "The PHP Unit Testing framework.",
839
- "homepage": "https://phpunit.de/",
840
- "keywords": [
841
- "phpunit",
842
- "testing",
843
- "xunit"
844
- ],
845
- "time": "2020-01-08T08:45:45+00:00"
846
- },
847
- {
848
- "name": "sebastian/code-unit-reverse-lookup",
849
- "version": "1.0.1",
850
- "source": {
851
- "type": "git",
852
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
853
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
854
- },
855
- "dist": {
856
- "type": "zip",
857
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
858
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
859
- "shasum": ""
860
- },
861
- "require": {
862
- "php": "^5.6 || ^7.0"
863
- },
864
- "require-dev": {
865
- "phpunit/phpunit": "^5.7 || ^6.0"
866
- },
867
- "type": "library",
868
- "extra": {
869
- "branch-alias": {
870
- "dev-master": "1.0.x-dev"
871
- }
872
- },
873
- "autoload": {
874
- "classmap": [
875
- "src/"
876
- ]
877
- },
878
- "notification-url": "https://packagist.org/downloads/",
879
- "license": [
880
- "BSD-3-Clause"
881
- ],
882
- "authors": [
883
- {
884
- "name": "Sebastian Bergmann",
885
- "email": "sebastian@phpunit.de"
886
- }
887
- ],
888
- "description": "Looks up which function or method a line of code belongs to",
889
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
890
- "time": "2017-03-04T06:30:41+00:00"
891
- },
892
- {
893
- "name": "sebastian/comparator",
894
- "version": "3.0.2",
895
- "source": {
896
- "type": "git",
897
- "url": "https://github.com/sebastianbergmann/comparator.git",
898
- "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
899
- },
900
- "dist": {
901
- "type": "zip",
902
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
903
- "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
904
- "shasum": ""
905
- },
906
- "require": {
907
- "php": "^7.1",
908
- "sebastian/diff": "^3.0",
909
- "sebastian/exporter": "^3.1"
910
- },
911
- "require-dev": {
912
- "phpunit/phpunit": "^7.1"
913
- },
914
- "type": "library",
915
- "extra": {
916
- "branch-alias": {
917
- "dev-master": "3.0-dev"
918
- }
919
- },
920
- "autoload": {
921
- "classmap": [
922
- "src/"
923
- ]
924
- },
925
- "notification-url": "https://packagist.org/downloads/",
926
- "license": [
927
- "BSD-3-Clause"
928
- ],
929
- "authors": [
930
- {
931
- "name": "Jeff Welch",
932
- "email": "whatthejeff@gmail.com"
933
- },
934
- {
935
- "name": "Volker Dusch",
936
- "email": "github@wallbash.com"
937
- },
938
- {
939
- "name": "Bernhard Schussek",
940
- "email": "bschussek@2bepublished.at"
941
- },
942
- {
943
- "name": "Sebastian Bergmann",
944
- "email": "sebastian@phpunit.de"
945
- }
946
- ],
947
- "description": "Provides the functionality to compare PHP values for equality",
948
- "homepage": "https://github.com/sebastianbergmann/comparator",
949
- "keywords": [
950
- "comparator",
951
- "compare",
952
- "equality"
953
- ],
954
- "time": "2018-07-12T15:12:46+00:00"
955
- },
956
- {
957
- "name": "sebastian/diff",
958
- "version": "3.0.2",
959
- "source": {
960
- "type": "git",
961
- "url": "https://github.com/sebastianbergmann/diff.git",
962
- "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29"
963
- },
964
- "dist": {
965
- "type": "zip",
966
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
967
- "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
968
- "shasum": ""
969
- },
970
- "require": {
971
- "php": "^7.1"
972
- },
973
- "require-dev": {
974
- "phpunit/phpunit": "^7.5 || ^8.0",
975
- "symfony/process": "^2 || ^3.3 || ^4"
976
- },
977
- "type": "library",
978
- "extra": {
979
- "branch-alias": {
980
- "dev-master": "3.0-dev"
981
- }
982
- },
983
- "autoload": {
984
- "classmap": [
985
- "src/"
986
- ]
987
- },
988
- "notification-url": "https://packagist.org/downloads/",
989
- "license": [
990
- "BSD-3-Clause"
991
- ],
992
- "authors": [
993
- {
994
- "name": "Kore Nordmann",
995
- "email": "mail@kore-nordmann.de"
996
- },
997
- {
998
- "name": "Sebastian Bergmann",
999
- "email": "sebastian@phpunit.de"
1000
- }
1001
- ],
1002
- "description": "Diff implementation",
1003
- "homepage": "https://github.com/sebastianbergmann/diff",
1004
- "keywords": [
1005
- "diff",
1006
- "udiff",
1007
- "unidiff",
1008
- "unified diff"
1009
- ],
1010
- "time": "2019-02-04T06:01:07+00:00"
1011
- },
1012
- {
1013
- "name": "sebastian/environment",
1014
- "version": "4.2.3",
1015
- "source": {
1016
- "type": "git",
1017
- "url": "https://github.com/sebastianbergmann/environment.git",
1018
- "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368"
1019
- },
1020
- "dist": {
1021
- "type": "zip",
1022
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368",
1023
- "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368",
1024
- "shasum": ""
1025
- },
1026
- "require": {
1027
- "php": "^7.1"
1028
- },
1029
- "require-dev": {
1030
- "phpunit/phpunit": "^7.5"
1031
- },
1032
- "suggest": {
1033
- "ext-posix": "*"
1034
- },
1035
- "type": "library",
1036
- "extra": {
1037
- "branch-alias": {
1038
- "dev-master": "4.2-dev"
1039
- }
1040
- },
1041
- "autoload": {
1042
- "classmap": [
1043
- "src/"
1044
- ]
1045
- },
1046
- "notification-url": "https://packagist.org/downloads/",
1047
- "license": [
1048
- "BSD-3-Clause"
1049
- ],
1050
- "authors": [
1051
- {
1052
- "name": "Sebastian Bergmann",
1053
- "email": "sebastian@phpunit.de"
1054
- }
1055
- ],
1056
- "description": "Provides functionality to handle HHVM/PHP environments",
1057
- "homepage": "http://www.github.com/sebastianbergmann/environment",
1058
- "keywords": [
1059
- "Xdebug",
1060
- "environment",
1061
- "hhvm"
1062
- ],
1063
- "time": "2019-11-20T08:46:58+00:00"
1064
- },
1065
- {
1066
- "name": "sebastian/exporter",
1067
- "version": "3.1.2",
1068
- "source": {
1069
- "type": "git",
1070
- "url": "https://github.com/sebastianbergmann/exporter.git",
1071
- "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e"
1072
- },
1073
- "dist": {
1074
- "type": "zip",
1075
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e",
1076
- "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e",
1077
- "shasum": ""
1078
- },
1079
- "require": {
1080
- "php": "^7.0",
1081
- "sebastian/recursion-context": "^3.0"
1082
- },
1083
- "require-dev": {
1084
- "ext-mbstring": "*",
1085
- "phpunit/phpunit": "^6.0"
1086
- },
1087
- "type": "library",
1088
- "extra": {
1089
- "branch-alias": {
1090
- "dev-master": "3.1.x-dev"
1091
- }
1092
- },
1093
- "autoload": {
1094
- "classmap": [
1095
- "src/"
1096
- ]
1097
- },
1098
- "notification-url": "https://packagist.org/downloads/",
1099
- "license": [
1100
- "BSD-3-Clause"
1101
- ],
1102
- "authors": [
1103
- {
1104
- "name": "Sebastian Bergmann",
1105
- "email": "sebastian@phpunit.de"
1106
- },
1107
- {
1108
- "name": "Jeff Welch",
1109
- "email": "whatthejeff@gmail.com"
1110
- },
1111
- {
1112
- "name": "Volker Dusch",
1113
- "email": "github@wallbash.com"
1114
- },
1115
- {
1116
- "name": "Adam Harvey",
1117
- "email": "aharvey@php.net"
1118
- },
1119
- {
1120
- "name": "Bernhard Schussek",
1121
- "email": "bschussek@gmail.com"
1122
- }
1123
- ],
1124
- "description": "Provides the functionality to export PHP variables for visualization",
1125
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
1126
- "keywords": [
1127
- "export",
1128
- "exporter"
1129
- ],
1130
- "time": "2019-09-14T09:02:43+00:00"
1131
- },
1132
- {
1133
- "name": "sebastian/global-state",
1134
- "version": "2.0.0",
1135
- "source": {
1136
- "type": "git",
1137
- "url": "https://github.com/sebastianbergmann/global-state.git",
1138
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
1139
- },
1140
- "dist": {
1141
- "type": "zip",
1142
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
1143
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
1144
- "shasum": ""
1145
- },
1146
- "require": {
1147
- "php": "^7.0"
1148
- },
1149
- "require-dev": {
1150
- "phpunit/phpunit": "^6.0"
1151
- },
1152
- "suggest": {
1153
- "ext-uopz": "*"
1154
- },
1155
- "type": "library",
1156
- "extra": {
1157
- "branch-alias": {
1158
- "dev-master": "2.0-dev"
1159
- }
1160
- },
1161
- "autoload": {
1162
- "classmap": [
1163
- "src/"
1164
- ]
1165
- },
1166
- "notification-url": "https://packagist.org/downloads/",
1167
- "license": [
1168
- "BSD-3-Clause"
1169
- ],
1170
- "authors": [
1171
- {
1172
- "name": "Sebastian Bergmann",
1173
- "email": "sebastian@phpunit.de"
1174
- }
1175
- ],
1176
- "description": "Snapshotting of global state",
1177
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
1178
- "keywords": [
1179
- "global state"
1180
- ],
1181
- "time": "2017-04-27T15:39:26+00:00"
1182
- },
1183
- {
1184
- "name": "sebastian/object-enumerator",
1185
- "version": "3.0.3",
1186
- "source": {
1187
- "type": "git",
1188
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
1189
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
1190
- },
1191
- "dist": {
1192
- "type": "zip",
1193
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
1194
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
1195
- "shasum": ""
1196
- },
1197
- "require": {
1198
- "php": "^7.0",
1199
- "sebastian/object-reflector": "^1.1.1",
1200
- "sebastian/recursion-context": "^3.0"
1201
- },
1202
- "require-dev": {
1203
- "phpunit/phpunit": "^6.0"
1204
- },
1205
- "type": "library",
1206
- "extra": {
1207
- "branch-alias": {
1208
- "dev-master": "3.0.x-dev"
1209
- }
1210
- },
1211
- "autoload": {
1212
- "classmap": [
1213
- "src/"
1214
- ]
1215
- },
1216
- "notification-url": "https://packagist.org/downloads/",
1217
- "license": [
1218
- "BSD-3-Clause"
1219
- ],
1220
- "authors": [
1221
- {
1222
- "name": "Sebastian Bergmann",
1223
- "email": "sebastian@phpunit.de"
1224
- }
1225
- ],
1226
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
1227
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
1228
- "time": "2017-08-03T12:35:26+00:00"
1229
- },
1230
- {
1231
- "name": "sebastian/object-reflector",
1232
- "version": "1.1.1",
1233
- "source": {
1234
- "type": "git",
1235
- "url": "https://github.com/sebastianbergmann/object-reflector.git",
1236
- "reference": "773f97c67f28de00d397be301821b06708fca0be"
1237
- },
1238
- "dist": {
1239
- "type": "zip",
1240
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
1241
- "reference": "773f97c67f28de00d397be301821b06708fca0be",
1242
- "shasum": ""
1243
- },
1244
- "require": {
1245
- "php": "^7.0"
1246
- },
1247
- "require-dev": {
1248
- "phpunit/phpunit": "^6.0"
1249
- },
1250
- "type": "library",
1251
- "extra": {
1252
- "branch-alias": {
1253
- "dev-master": "1.1-dev"
1254
- }
1255
- },
1256
- "autoload": {
1257
- "classmap": [
1258
- "src/"
1259
- ]
1260
- },
1261
- "notification-url": "https://packagist.org/downloads/",
1262
- "license": [
1263
- "BSD-3-Clause"
1264
- ],
1265
- "authors": [
1266
- {
1267
- "name": "Sebastian Bergmann",
1268
- "email": "sebastian@phpunit.de"
1269
- }
1270
- ],
1271
- "description": "Allows reflection of object attributes, including inherited and non-public ones",
1272
- "homepage": "https://github.com/sebastianbergmann/object-reflector/",
1273
- "time": "2017-03-29T09:07:27+00:00"
1274
- },
1275
- {
1276
- "name": "sebastian/recursion-context",
1277
- "version": "3.0.0",
1278
- "source": {
1279
- "type": "git",
1280
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
1281
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
1282
- },
1283
- "dist": {
1284
- "type": "zip",
1285
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
1286
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
1287
- "shasum": ""
1288
- },
1289
- "require": {
1290
- "php": "^7.0"
1291
- },
1292
- "require-dev": {
1293
- "phpunit/phpunit": "^6.0"
1294
- },
1295
- "type": "library",
1296
- "extra": {
1297
- "branch-alias": {
1298
- "dev-master": "3.0.x-dev"
1299
- }
1300
- },
1301
- "autoload": {
1302
- "classmap": [
1303
- "src/"
1304
- ]
1305
- },
1306
- "notification-url": "https://packagist.org/downloads/",
1307
- "license": [
1308
- "BSD-3-Clause"
1309
- ],
1310
- "authors": [
1311
- {
1312
- "name": "Jeff Welch",
1313
- "email": "whatthejeff@gmail.com"
1314
- },
1315
- {
1316
- "name": "Sebastian Bergmann",
1317
- "email": "sebastian@phpunit.de"
1318
- },
1319
- {
1320
- "name": "Adam Harvey",
1321
- "email": "aharvey@php.net"
1322
- }
1323
- ],
1324
- "description": "Provides functionality to recursively process PHP variables",
1325
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1326
- "time": "2017-03-03T06:23:57+00:00"
1327
- },
1328
- {
1329
- "name": "sebastian/resource-operations",
1330
- "version": "2.0.1",
1331
- "source": {
1332
- "type": "git",
1333
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
1334
- "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
1335
- },
1336
- "dist": {
1337
- "type": "zip",
1338
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
1339
- "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
1340
- "shasum": ""
1341
- },
1342
- "require": {
1343
- "php": "^7.1"
1344
- },
1345
- "type": "library",
1346
- "extra": {
1347
- "branch-alias": {
1348
- "dev-master": "2.0-dev"
1349
- }
1350
- },
1351
- "autoload": {
1352
- "classmap": [
1353
- "src/"
1354
- ]
1355
- },
1356
- "notification-url": "https://packagist.org/downloads/",
1357
- "license": [
1358
- "BSD-3-Clause"
1359
- ],
1360
- "authors": [
1361
- {
1362
- "name": "Sebastian Bergmann",
1363
- "email": "sebastian@phpunit.de"
1364
- }
1365
- ],
1366
- "description": "Provides a list of PHP built-in functions that operate on resources",
1367
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
1368
- "time": "2018-10-04T04:07:39+00:00"
1369
- },
1370
- {
1371
- "name": "sebastian/version",
1372
- "version": "2.0.1",
1373
- "source": {
1374
- "type": "git",
1375
- "url": "https://github.com/sebastianbergmann/version.git",
1376
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
1377
- },
1378
- "dist": {
1379
- "type": "zip",
1380
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
1381
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
1382
- "shasum": ""
1383
- },
1384
- "require": {
1385
- "php": ">=5.6"
1386
- },
1387
- "type": "library",
1388
- "extra": {
1389
- "branch-alias": {
1390
- "dev-master": "2.0.x-dev"
1391
- }
1392
- },
1393
- "autoload": {
1394
- "classmap": [
1395
- "src/"
1396
- ]
1397
- },
1398
- "notification-url": "https://packagist.org/downloads/",
1399
- "license": [
1400
- "BSD-3-Clause"
1401
- ],
1402
- "authors": [
1403