Version Description
- Fix - Purchases over 1.000 USD fail. #84
Download this release
Release Info
Developer | automattic |
Plugin | WooCommerce PayPal Payments |
Version | 1.0.2 |
Comparing to | |
See all releases |
Code changes from version 1.0.1 to 1.0.2
- changelog.txt +3 -0
- modules/ppcp-api-client/src/Entity/class-amount.php +1 -1
- modules/ppcp-api-client/src/Entity/class-money.php +1 -1
- modules/ppcp-button/assets/js/hostedfields.js +0 -2
- modules/ppcp-button/assets/js/hostedfields.js.map +0 -1
- package-lock.json +5 -0
- readme.txt +4 -1
- vendor/autoload.php +1 -1
- vendor/composer/ClassLoader.php +1 -1
- vendor/composer/autoload_files.php +10 -0
- vendor/composer/autoload_psr4.php +2 -0
- vendor/composer/autoload_real.php +22 -4
- vendor/composer/autoload_static.php +18 -4
- vendor/composer/installed.json +142 -97
- vendor/dhii/collections-interface/.env.example +2 -0
- vendor/dhii/collections-interface/CHANGELOG.md +64 -0
- vendor/{wp-oop/transient-cache → dhii/collections-interface}/LICENSE +1 -1
- vendor/dhii/collections-interface/README.md +43 -0
- vendor/dhii/collections-interface/composer.json +42 -0
- vendor/dhii/{module-interface → collections-interface}/docker-compose.yml +6 -1
- vendor/dhii/{module-interface → collections-interface}/docker/Dockerfile_php +1 -1
- vendor/dhii/collections-interface/phpcs.xml.dist +48 -0
- vendor/dhii/collections-interface/phpunit.xml.dist +23 -0
- vendor/dhii/collections-interface/psalm.xml.dist +25 -0
- vendor/dhii/collections-interface/src/ClearableContainerInterface.php +18 -0
- vendor/dhii/collections-interface/src/ContainerFactoryInterface.php +27 -0
- vendor/dhii/collections-interface/src/ContainerInterface.php +16 -0
- vendor/dhii/collections-interface/src/CountableListInterface.php +21 -0
- vendor/dhii/collections-interface/src/CountableMapInterface.php +21 -0
- vendor/dhii/collections-interface/src/CountableSetInterface.php +21 -0
- vendor/dhii/collections-interface/src/HasCapableInterface.php +29 -0
- vendor/dhii/collections-interface/src/HasItemCapableInterface.php +30 -0
- vendor/dhii/collections-interface/src/MapFactoryInterface.php +27 -0
- vendor/dhii/collections-interface/src/MapInterface.php +21 -0
- vendor/dhii/collections-interface/src/MutableContainerInterface.php +42 -0
- vendor/dhii/collections-interface/src/SetFactoryInterface.php +30 -0
- vendor/dhii/collections-interface/src/SetInterface.php +21 -0
- vendor/dhii/collections-interface/src/WritableContainerFactoryInterface.php +20 -0
- vendor/dhii/collections-interface/src/WritableContainerInterface.php +58 -0
- vendor/dhii/collections-interface/src/WritableMapFactoryInterface.php +22 -0
- vendor/dhii/collections-interface/src/WritableMapInterface.php +15 -0
- vendor/dhii/collections-interface/src/WritableSetFactoryInterface.php +20 -0
- vendor/dhii/collections-interface/src/WritableSetInterface.php +54 -0
- vendor/dhii/containers/.codeclimate.yml +0 -21
- vendor/dhii/containers/.php_cs +0 -27
- vendor/dhii/containers/CHANGELOG.md +3 -0
- vendor/dhii/containers/composer.json +3 -3
- vendor/dhii/containers/docker/Dockerfile_php +2 -2
- vendor/dhii/containers/phpunit.xml +0 -35
- vendor/dhii/containers/src/AliasingContainer.php +84 -0
- vendor/dhii/containers/src/CachingContainer.php +10 -15
- vendor/dhii/containers/src/CompositeCachingServiceProvider.php +3 -3
- vendor/dhii/containers/src/CompositeContainer.php +10 -16
- vendor/dhii/containers/src/DataStructureBasedFactory.php +43 -0
- vendor/dhii/containers/src/DataStructureBasedFactoryInterface.php +26 -0
- vendor/dhii/containers/src/DelegatingContainer.php +14 -18
- vendor/dhii/containers/src/DeprefixingContainer.php +96 -0
- vendor/dhii/containers/src/Dictionary.php +115 -0
- vendor/dhii/containers/src/DictionaryFactory.php +21 -0
- vendor/dhii/containers/src/Exception/ContainerException.php +3 -16
- vendor/dhii/containers/src/Exception/NotFoundException.php +4 -17
- vendor/dhii/containers/src/HierarchyContainer.php +87 -0
- vendor/dhii/containers/src/MappingContainer.php +88 -0
- vendor/dhii/containers/src/MaskingContainer.php +100 -0
- vendor/dhii/containers/src/PathContainer.php +125 -0
- vendor/dhii/containers/src/PrefixingContainer.php +121 -0
- vendor/dhii/containers/src/SegmentingContainer.php +116 -0
- vendor/dhii/containers/test/functional/CompositeCachingServiceProviderTest.php +0 -119
- vendor/dhii/containers/test/functional/DelegatingContainerTest.php +0 -109
- vendor/dhii/containers/test/functional/Dhii/Container/FuncTest/CachingContainerTest.php +0 -88
- vendor/dhii/containers/test/functional/Dhii/Container/FuncTest/CompositeContainerTest.php +0 -130
- vendor/dhii/containers/test/functional/Exception/ContainerExceptionTest.php +0 -63
- vendor/dhii/containers/test/functional/Exception/NotFoundExceptionTest.php +0 -63
- vendor/dhii/containers/test/functional/ServiceProviderTest.php +0 -78
- vendor/dhii/containers/test/helpers/ComponentMockeryTrait.php +0 -267
- vendor/dhii/containers/test/unit/CompositeCachingServiceProviderTest.php +0 -136
- vendor/dhii/containers/test/unit/ProxyContainerTest.php +0 -112
- vendor/dhii/{module-interface → data-key-value-aware-interface}/.codeclimate.yml +0 -4
- vendor/dhii/{module-interface → data-key-value-aware-interface}/.php_cs +2 -2
- vendor/dhii/data-key-value-aware-interface/CHANGELOG.md +12 -0
- vendor/dhii/data-key-value-aware-interface/README.md +6 -0
- vendor/dhii/data-key-value-aware-interface/composer.json +27 -0
- vendor/dhii/{containers → data-key-value-aware-interface}/composer.lock +807 -742
- vendor/dhii/data-key-value-aware-interface/nbproject/project.properties +25 -0
- vendor/dhii/data-key-value-aware-interface/nbproject/project.xml +9 -0
- vendor/dhii/{module-interface → data-key-value-aware-interface}/phpunit.xml +1 -1
- vendor/dhii/data-key-value-aware-interface/src/KeyAwareInterface.php +22 -0
- vendor/dhii/data-key-value-aware-interface/src/KeyValueAwareInterface.php +16 -0
- vendor/dhii/data-key-value-aware-interface/src/ValueAwareInterface.php +20 -0
- vendor/dhii/{containers → data-key-value-aware-interface}/test/bootstrap.php +0 -0
- vendor/dhii/data-key-value-aware-interface/test/functional/KeyAwareInterfaceTest.php +41 -0
- vendor/dhii/data-key-value-aware-interface/test/functional/KeyValueAwareInterfaceTest.php +42 -0
- vendor/dhii/data-key-value-aware-interface/test/functional/ValueAwareInterfaceTest.php +41 -0
- vendor/dhii/module-interface/.env.example +0 -1
- vendor/dhii/module-interface/CHANGELOG.md +0 -16
- vendor/dhii/module-interface/README.md +14 -274
- vendor/dhii/module-interface/composer.json +14 -8
- vendor/dhii/module-interface/composer.lock +0 -1569
- vendor/dhii/module-interface/src/DependenciesAwareInterface.php +24 -0
- vendor/dhii/module-interface/src/Exception/ModuleExceptionInterface.php +3 -3
- vendor/dhii/module-interface/src/ModuleAwareInterface.php +2 -2
- vendor/dhii/module-interface/src/ModuleFactoryInterface.php +22 -0
- vendor/dhii/module-interface/src/ModuleInterface.php +21 -29
- vendor/dhii/module-interface/src/ModuleKeyAwareInterface.php +22 -0
- vendor/dhii/module-interface/test/bootstrap.php +0 -5
- vendor/dhii/module-interface/test/stubs/GetImplementingMockBuilderCapableTrait.php +0 -46
- vendor/dhii/module-interface/test/unit/Exception/ModuleExceptionInterfaceTest.php +0 -64
- vendor/dhii/module-interface/test/unit/ModuleAwareInterfaceTest.php +0 -46
- vendor/dhii/module-interface/test/unit/ModuleInterfaceTest.php +0 -46
- vendor/dhii/module-interface/travis.php.ini +1 -0
- vendor/psr/simple-cache/.editorconfig +0 -12
- vendor/psr/simple-cache/LICENSE.md +0 -21
- vendor/psr/simple-cache/README.md +0 -8
- vendor/psr/simple-cache/composer.json +0 -25
- vendor/psr/simple-cache/src/CacheException.php +0 -10
- vendor/psr/simple-cache/src/CacheInterface.php +0 -114
- vendor/psr/simple-cache/src/InvalidArgumentException.php +0 -13
- vendor/ralouphie/getallheaders/LICENSE +21 -0
- vendor/ralouphie/getallheaders/README.md +27 -0
- vendor/ralouphie/getallheaders/composer.json +26 -0
- vendor/ralouphie/getallheaders/src/getallheaders.php +46 -0
- vendor/wp-oop/transient-cache/CHANGELOG.md +0 -30
- vendor/wp-oop/transient-cache/README.md +0 -105
- vendor/wp-oop/transient-cache/composer.json +0 -37
- vendor/wp-oop/transient-cache/src/CachePool.php +0 -609
- vendor/wp-oop/transient-cache/src/CachePoolFactory.php +0 -46
- vendor/wp-oop/transient-cache/src/CachePoolFactoryInterface.php +0 -21
- vendor/wp-oop/transient-cache/src/Exception/CacheException.php +0 -14
- vendor/wp-oop/transient-cache/src/Exception/InvalidArgumentException.php +0 -14
- vendor/wp-oop/transient-cache/src/SilentPool.php +0 -154
- vendor/wp-oop/transient-cache/src/SilentPoolFactory.php +0 -33
- 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.
|
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
|
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',
|
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
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit21689d596dda2cee10278dd72c8d9cfa
|
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
-
spl_autoload_register(array('
|
26 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
27 |
-
spl_autoload_unregister(array('
|
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\
|
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
|
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 =
|
242 |
-
$loader->prefixDirsPsr4 =
|
243 |
-
$loader->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": "
|
177 |
-
"version_normalized": "
|
178 |
"source": {
|
179 |
"type": "git",
|
180 |
"url": "https://github.com/Dhii/containers.git",
|
181 |
-
"reference": "
|
182 |
},
|
183 |
"dist": {
|
184 |
"type": "zip",
|
185 |
-
"url": "https://api.github.com/repos/Dhii/containers/zipball/
|
186 |
-
"reference": "
|
187 |
"shasum": ""
|
188 |
},
|
189 |
"require": {
|
190 |
"container-interop/service-provider": "^0.4",
|
191 |
-
"dhii/
|
192 |
-
"php": "^7.
|
193 |
},
|
194 |
"require-dev": {
|
195 |
"gmazzap/andrew": "^1.1",
|
196 |
-
"phpunit/phpunit": "^
|
197 |
"psr/container": "^1.0",
|
198 |
"slevomat/coding-standard": "~4.0"
|
199 |
},
|
200 |
-
"time": "2020-
|
201 |
"type": "library",
|
202 |
"extra": {
|
203 |
"branch-alias": {
|
204 |
"dev-develop": "0.1.x-dev"
|
205 |
}
|
206 |
},
|
207 |
-
"installation-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": "
|
391 |
-
"version_normalized": "
|
392 |
"source": {
|
393 |
"type": "git",
|
394 |
"url": "https://github.com/Dhii/module-interface.git",
|
395 |
-
"reference": "
|
396 |
},
|
397 |
"dist": {
|
398 |
"type": "zip",
|
399 |
-
"url": "https://api.github.com/repos/Dhii/module-interface/zipball/
|
400 |
-
"reference": "
|
401 |
"shasum": ""
|
402 |
},
|
403 |
"require": {
|
404 |
-
"
|
405 |
-
"
|
406 |
-
"
|
|
|
407 |
},
|
408 |
"require-dev": {
|
409 |
-
"
|
|
|
|
|
|
|
|
|
|
|
410 |
},
|
411 |
-
"time": "
|
412 |
"type": "library",
|
413 |
"extra": {
|
414 |
"branch-alias": {
|
415 |
-
"dev-develop": "0.
|
416 |
}
|
417 |
},
|
418 |
-
"installation-source": "
|
419 |
"autoload": {
|
420 |
"psr-4": {
|
421 |
"Dhii\\Modular\\Module\\": "src"
|
@@ -679,91 +782,34 @@
|
|
679 |
]
|
680 |
},
|
681 |
{
|
682 |
-
"name": "
|
683 |
-
"version": "
|
684 |
-
"version_normalized": "
|
685 |
"source": {
|
686 |
"type": "git",
|
687 |
-
"url": "https://github.com/
|
688 |
-
"reference": "
|
689 |
},
|
690 |
"dist": {
|
691 |
"type": "zip",
|
692 |
-
"url": "https://api.github.com/repos/
|
693 |
-
"reference": "
|
694 |
"shasum": ""
|
695 |
},
|
696 |
"require": {
|
697 |
-
"php": ">=5.
|
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 |
-
"
|
752 |
-
"
|
753 |
-
"phpunit/phpunit": "^7.1"
|
754 |
},
|
755 |
-
"time": "
|
756 |
"type": "library",
|
757 |
-
"extra": {
|
758 |
-
"branch-alias": {
|
759 |
-
"dev-develop": "0.1.x-dev"
|
760 |
-
}
|
761 |
-
},
|
762 |
"installation-source": "dist",
|
763 |
"autoload": {
|
764 |
-
"
|
765 |
-
"
|
766 |
-
|
767 |
},
|
768 |
"notification-url": "https://packagist.org/downloads/",
|
769 |
"license": [
|
@@ -771,11 +817,10 @@
|
|
771 |
],
|
772 |
"authors": [
|
773 |
{
|
774 |
-
"name": "
|
775 |
-
"email": "
|
776 |
-
"role": "Developer"
|
777 |
}
|
778 |
],
|
779 |
-
"description": "A
|
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)
|
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.
|
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.
|
20 |
-
"dhii/
|
21 |
"container-interop/service-provider": "^0.4"
|
22 |
},
|
23 |
"require-dev": {
|
24 |
"slevomat/coding-standard": "~4.0",
|
25 |
-
"phpunit/phpunit": "^
|
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.
|
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 |
+
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
|
11 |
use Psr\Container\NotFoundExceptionInterface;
|
12 |
|
13 |
/**
|
@@ -24,14 +24,14 @@ class CachingContainer implements ContainerInterface
|
|
24 |
*/
|
25 |
protected $cache;
|
26 |
/**
|
27 |
-
* @var
|
28 |
*/
|
29 |
protected $container;
|
30 |
|
31 |
/**
|
32 |
-
* @param
|
33 |
*/
|
34 |
-
public function __construct(
|
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 (
|
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
|
|
|
12 |
use Traversable;
|
13 |
use UnexpectedValueException;
|
14 |
|
@@ -17,12 +17,12 @@ class CompositeContainer implements ContainerInterface
|
|
17 |
use StringTranslatingTrait;
|
18 |
|
19 |
/**
|
20 |
-
* @var array|
|
21 |
*/
|
22 |
protected $containers;
|
23 |
|
24 |
/**
|
25 |
-
* @param
|
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
|
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
|
23 |
*/
|
24 |
protected $parent;
|
25 |
|
26 |
/**
|
27 |
-
* @param ServiceProviderInterface
|
28 |
-
* @param
|
29 |
*/
|
30 |
-
public function __construct(ServiceProviderInterface $provider,
|
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
|
154 |
-
* Otherwise, this instance.
|
155 |
*/
|
156 |
-
protected function _getBaseContainer():
|
157 |
{
|
158 |
-
return $this->parent instanceof
|
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
|
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
|
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#
|
5 |
"This file is @generated automatically"
|
6 |
],
|
7 |
-
"
|
8 |
-
"
|
9 |
-
|
10 |
-
|
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": "
|
42 |
-
"version": "v0.2
|
43 |
"source": {
|
44 |
"type": "git",
|
45 |
-
"url": "https://github.com/
|
46 |
-
"reference": "
|
47 |
},
|
48 |
"dist": {
|
49 |
"type": "zip",
|
50 |
-
"url": "https://api.github.com/repos/
|
51 |
-
"reference": "
|
52 |
"shasum": ""
|
53 |
},
|
54 |
"require": {
|
55 |
-
"
|
56 |
-
"
|
57 |
-
"php": "
|
58 |
-
"
|
59 |
},
|
60 |
"require-dev": {
|
61 |
-
"
|
62 |
-
"
|
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 |
-
"
|
82 |
-
|
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-
|
122 |
}
|
123 |
},
|
124 |
"autoload": {
|
125 |
-
"psr-
|
126 |
-
"
|
|
|
127 |
}
|
128 |
},
|
129 |
"notification-url": "https://packagist.org/downloads/",
|
@@ -132,90 +53,44 @@
|
|
132 |
],
|
133 |
"authors": [
|
134 |
{
|
135 |
-
"name": "
|
136 |
-
"email": "
|
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 |
-
"
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
],
|
189 |
-
"
|
190 |
-
"time": "2018-08-29T11:15:09+00:00"
|
191 |
},
|
192 |
{
|
193 |
-
"name": "dhii/
|
194 |
-
"version": "
|
195 |
"source": {
|
196 |
"type": "git",
|
197 |
-
"url": "https://github.com/Dhii/
|
198 |
-
"reference": "
|
199 |
},
|
200 |
"dist": {
|
201 |
"type": "zip",
|
202 |
-
"url": "https://api.github.com/repos/Dhii/
|
203 |
-
"reference": "
|
204 |
"shasum": ""
|
205 |
},
|
206 |
"require": {
|
|
|
207 |
"php": "^5.3 | ^7.0"
|
208 |
},
|
209 |
"require-dev": {
|
210 |
-
"
|
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\\
|
219 |
}
|
220 |
},
|
221 |
"notification-url": "https://packagist.org/downloads/",
|
@@ -228,72 +103,21 @@
|
|
228 |
"email": "development@dhii.co"
|
229 |
}
|
230 |
],
|
231 |
-
"description": "
|
232 |
-
"time": "
|
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": "
|
288 |
"source": {
|
289 |
"type": "git",
|
290 |
"url": "https://github.com/doctrine/instantiator.git",
|
291 |
-
"reference": "
|
292 |
},
|
293 |
"dist": {
|
294 |
"type": "zip",
|
295 |
-
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/
|
296 |
-
"reference": "
|
297 |
"shasum": ""
|
298 |
},
|
299 |
"require": {
|
@@ -334,37 +158,47 @@
|
|
334 |
"constructor",
|
335 |
"instantiate"
|
336 |
],
|
337 |
-
"time": "
|
338 |
},
|
339 |
{
|
340 |
-
"name": "
|
341 |
-
"version": "
|
342 |
"source": {
|
343 |
"type": "git",
|
344 |
-
"url": "https://github.com/
|
345 |
-
"reference": "
|
346 |
},
|
347 |
"dist": {
|
348 |
"type": "zip",
|
349 |
-
"url": "https://api.github.com/repos/
|
350 |
-
"reference": "
|
351 |
"shasum": ""
|
352 |
},
|
353 |
"require": {
|
354 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
},
|
356 |
-
"
|
357 |
-
"
|
358 |
},
|
359 |
-
"
|
360 |
-
|
361 |
-
"
|
362 |
-
"dev-master": "1.x-dev"
|
363 |
-
}
|
364 |
},
|
|
|
|
|
|
|
|
|
365 |
"autoload": {
|
366 |
"psr-4": {
|
367 |
-
"
|
368 |
}
|
369 |
},
|
370 |
"notification-url": "https://packagist.org/downloads/",
|
@@ -373,179 +207,125 @@
|
|
373 |
],
|
374 |
"authors": [
|
375 |
{
|
376 |
-
"name": "
|
377 |
-
"email": "
|
378 |
-
|
379 |
-
|
|
|
|
|
380 |
}
|
381 |
],
|
382 |
-
"description": "
|
383 |
-
"
|
384 |
-
"keywords": [
|
385 |
-
"proxy objects",
|
386 |
-
"unit tests"
|
387 |
-
],
|
388 |
-
"time": "2016-09-15T17:29:10+00:00"
|
389 |
},
|
390 |
{
|
391 |
-
"name": "
|
392 |
-
"version": "
|
393 |
"source": {
|
394 |
"type": "git",
|
395 |
-
"url": "https://github.com/
|
396 |
-
"reference": "
|
397 |
},
|
398 |
"dist": {
|
399 |
"type": "zip",
|
400 |
-
"url": "https://api.github.com/repos/
|
401 |
-
"reference": "
|
402 |
"shasum": ""
|
403 |
},
|
404 |
"require": {
|
405 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
406 |
},
|
407 |
"require-dev": {
|
408 |
-
"doctrine/
|
409 |
-
"
|
410 |
-
"phpunit/phpunit": "
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
"
|
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 |
-
"
|
450 |
-
"
|
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": "
|
459 |
}
|
460 |
},
|
461 |
"autoload": {
|
462 |
-
"
|
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 |
-
"
|
516 |
],
|
517 |
"authors": [
|
518 |
{
|
519 |
-
"name": "
|
520 |
-
"email": "
|
521 |
-
"
|
522 |
},
|
523 |
{
|
524 |
-
"name": "
|
525 |
-
"
|
526 |
-
"role": "Developer"
|
527 |
-
},
|
528 |
-
{
|
529 |
-
"name": "Sebastian Bergmann",
|
530 |
-
"email": "sebastian@phpunit.de",
|
531 |
-
"role": "Developer"
|
532 |
}
|
533 |
],
|
534 |
-
"description": "
|
535 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
536 |
},
|
537 |
{
|
538 |
"name": "phpdocumentor/reflection-common",
|
539 |
-
"version": "
|
540 |
"source": {
|
541 |
"type": "git",
|
542 |
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
|
543 |
-
"reference": "
|
544 |
},
|
545 |
"dist": {
|
546 |
"type": "zip",
|
547 |
-
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/
|
548 |
-
"reference": "
|
549 |
"shasum": ""
|
550 |
},
|
551 |
"require": {
|
@@ -586,39 +366,33 @@
|
|
586 |
"reflection",
|
587 |
"static analysis"
|
588 |
],
|
589 |
-
"time": "
|
590 |
},
|
591 |
{
|
592 |
"name": "phpdocumentor/reflection-docblock",
|
593 |
-
"version": "
|
594 |
"source": {
|
595 |
"type": "git",
|
596 |
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
597 |
-
"reference": "
|
598 |
},
|
599 |
"dist": {
|
600 |
"type": "zip",
|
601 |
-
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/
|
602 |
-
"reference": "
|
603 |
"shasum": ""
|
604 |
},
|
605 |
"require": {
|
606 |
-
"php": "
|
607 |
-
"phpdocumentor/reflection-common": "^1.0
|
608 |
-
"phpdocumentor/type-resolver": "^0.
|
609 |
"webmozart/assert": "^1.0"
|
610 |
},
|
611 |
"require-dev": {
|
612 |
-
"
|
613 |
-
"
|
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": "
|
641 |
},
|
642 |
{
|
643 |
"name": "phpdocumentor/type-resolver",
|
644 |
-
"version": "0.
|
645 |
"source": {
|
646 |
"type": "git",
|
647 |
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
648 |
-
"reference": "
|
649 |
},
|
650 |
"dist": {
|
651 |
"type": "zip",
|
652 |
-
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/
|
653 |
-
"reference": "
|
654 |
"shasum": ""
|
655 |
},
|
656 |
"require": {
|
657 |
-
"php": "
|
658 |
"phpdocumentor/reflection-common": "^1.0"
|
659 |
},
|
660 |
"require-dev": {
|
@@ -684,37 +458,37 @@
|
|
684 |
"email": "me@mikevanriel.com"
|
685 |
}
|
686 |
],
|
687 |
-
"time": "
|
688 |
},
|
689 |
{
|
690 |
"name": "phpspec/prophecy",
|
691 |
-
"version": "
|
692 |
"source": {
|
693 |
"type": "git",
|
694 |
"url": "https://github.com/phpspec/prophecy.git",
|
695 |
-
"reference": "
|
696 |
},
|
697 |
"dist": {
|
698 |
"type": "zip",
|
699 |
-
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/
|
700 |
-
"reference": "
|
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
|
707 |
-
"sebastian/comparator": "^1.1
|
708 |
-
"sebastian/recursion-context": "^1.0|^2.0
|
709 |
},
|
710 |
"require-dev": {
|
711 |
-
"phpspec/phpspec": "^2.
|
712 |
-
"phpunit/phpunit": "^4.8
|
713 |
},
|
714 |
"type": "library",
|
715 |
"extra": {
|
716 |
"branch-alias": {
|
717 |
-
"dev-master": "1.
|
718 |
}
|
719 |
},
|
720 |
"autoload": {
|
@@ -747,44 +521,43 @@
|
|
747 |
"spy",
|
748 |
"stub"
|
749 |
],
|
750 |
-
"time": "
|
751 |
},
|
752 |
{
|
753 |
"name": "phpunit/php-code-coverage",
|
754 |
-
"version": "
|
755 |
"source": {
|
756 |
"type": "git",
|
757 |
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
758 |
-
"reference": "
|
759 |
},
|
760 |
"dist": {
|
761 |
"type": "zip",
|
762 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/
|
763 |
-
"reference": "
|
764 |
"shasum": ""
|
765 |
},
|
766 |
"require": {
|
767 |
-
"
|
768 |
-
"
|
769 |
-
"php": "
|
770 |
-
"phpunit/php-
|
771 |
-
"
|
772 |
-
"
|
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 |
-
"
|
|
|
780 |
},
|
781 |
"suggest": {
|
782 |
-
"ext-
|
|
|
|
|
783 |
},
|
784 |
"type": "library",
|
785 |
"extra": {
|
786 |
"branch-alias": {
|
787 |
-
"dev-master": "
|
788 |
}
|
789 |
},
|
790 |
"autoload": {
|
@@ -799,7 +572,7 @@
|
|
799 |
"authors": [
|
800 |
{
|
801 |
"name": "Sebastian Bergmann",
|
802 |
-
"email": "sebastian
|
803 |
"role": "lead"
|
804 |
}
|
805 |
],
|
@@ -810,20 +583,20 @@
|
|
810 |
"testing",
|
811 |
"xunit"
|
812 |
],
|
813 |
-
"time": "
|
814 |
},
|
815 |
{
|
816 |
"name": "phpunit/php-file-iterator",
|
817 |
-
"version": "
|
818 |
"source": {
|
819 |
"type": "git",
|
820 |
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
|
821 |
-
"reference": "
|
822 |
},
|
823 |
"dist": {
|
824 |
"type": "zip",
|
825 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/
|
826 |
-
"reference": "
|
827 |
"shasum": ""
|
828 |
},
|
829 |
"require": {
|
@@ -857,7 +630,7 @@
|
|
857 |
"filesystem",
|
858 |
"iterator"
|
859 |
],
|
860 |
-
"time": "
|
861 |
},
|
862 |
{
|
863 |
"name": "phpunit/php-text-template",
|
@@ -898,34 +671,29 @@
|
|
898 |
"keywords": [
|
899 |
"template"
|
900 |
],
|
901 |
-
"time": "2015-06-
|
902 |
},
|
903 |
{
|
904 |
"name": "phpunit/php-timer",
|
905 |
-
"version": "1.0.
|
906 |
"source": {
|
907 |
"type": "git",
|
908 |
"url": "https://github.com/sebastianbergmann/php-timer.git",
|
909 |
-
"reference": "
|
910 |
},
|
911 |
"dist": {
|
912 |
"type": "zip",
|
913 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/
|
914 |
-
"reference": "
|
915 |
"shasum": ""
|
916 |
},
|
917 |
"require": {
|
918 |
-
"php": "
|
919 |
},
|
920 |
"require-dev": {
|
921 |
-
"phpunit/phpunit": "
|
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": "
|
951 |
},
|
952 |
{
|
953 |
"name": "phpunit/php-token-stream",
|
954 |
-
"version": "
|
955 |
"source": {
|
956 |
"type": "git",
|
957 |
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
|
958 |
-
"reference": "
|
959 |
},
|
960 |
"dist": {
|
961 |
"type": "zip",
|
962 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/
|
963 |
-
"reference": "
|
964 |
"shasum": ""
|
965 |
},
|
966 |
"require": {
|
967 |
"ext-tokenizer": "*",
|
968 |
-
"php": "
|
969 |
},
|
970 |
"require-dev": {
|
971 |
-
"phpunit/phpunit": "
|
972 |
},
|
973 |
"type": "library",
|
974 |
"extra": {
|
975 |
"branch-alias": {
|
976 |
-
"dev-master": "
|
977 |
}
|
978 |
},
|
979 |
"autoload": {
|
@@ -996,57 +764,45 @@
|
|
996 |
"keywords": [
|
997 |
"tokenizer"
|
998 |
],
|
999 |
-
"time": "
|
1000 |
},
|
1001 |
{
|
1002 |
"name": "phpunit/phpunit",
|
1003 |
-
"version": "
|
1004 |
"source": {
|
1005 |
"type": "git",
|
1006 |
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
1007 |
-
"reference": "
|
1008 |
},
|
1009 |
"dist": {
|
1010 |
"type": "zip",
|
1011 |
-
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/
|
1012 |
-
"reference": "
|
1013 |
"shasum": ""
|
1014 |
},
|
1015 |
"require": {
|
1016 |
"ext-dom": "*",
|
1017 |
"ext-json": "*",
|
1018 |
-
"ext-
|
1019 |
-
"ext-
|
1020 |
-
"ext-
|
1021 |
-
"
|
1022 |
-
"
|
1023 |
-
"
|
1024 |
-
"php": "
|
1025 |
-
"
|
1026 |
-
"phpunit/php-
|
1027 |
-
"phpunit/
|
1028 |
-
"
|
1029 |
-
"
|
1030 |
-
"
|
1031 |
-
"sebastian/
|
1032 |
-
"sebastian/
|
1033 |
-
"sebastian/
|
1034 |
-
"
|
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 |
-
"
|
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": "
|
1058 |
}
|
1059 |
},
|
1060 |
"autoload": {
|
@@ -1080,33 +836,30 @@
|
|
1080 |
"testing",
|
1081 |
"xunit"
|
1082 |
],
|
1083 |
-
"time": "
|
1084 |
},
|
1085 |
{
|
1086 |
"name": "phpunit/phpunit-mock-objects",
|
1087 |
-
"version": "
|
1088 |
"source": {
|
1089 |
"type": "git",
|
1090 |
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
|
1091 |
-
"reference": "
|
1092 |
},
|
1093 |
"dist": {
|
1094 |
"type": "zip",
|
1095 |
-
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/
|
1096 |
-
"reference": "
|
1097 |
"shasum": ""
|
1098 |
},
|
1099 |
"require": {
|
1100 |
-
"doctrine/instantiator": "^1.0.
|
1101 |
-
"php": "
|
1102 |
-
"phpunit/php-text-template": "
|
1103 |
-
"sebastian/exporter": "
|
1104 |
-
},
|
1105 |
-
"conflict": {
|
1106 |
-
"phpunit/phpunit": "<6.0"
|
1107 |
},
|
1108 |
"require-dev": {
|
1109 |
-
"phpunit/phpunit": "
|
1110 |
},
|
1111 |
"suggest": {
|
1112 |
"ext-soap": "*"
|
@@ -1114,7 +867,7 @@
|
|
1114 |
"type": "library",
|
1115 |
"extra": {
|
1116 |
"branch-alias": {
|
1117 |
-
"dev-master": "
|
1118 |
}
|
1119 |
},
|
1120 |
"autoload": {
|
@@ -1129,7 +882,7 @@
|
|
1129 |
"authors": [
|
1130 |
{
|
1131 |
"name": "Sebastian Bergmann",
|
1132 |
-
"email": "sebastian
|
1133 |
"role": "lead"
|
1134 |
}
|
1135 |
],
|
@@ -1139,28 +892,24 @@
|
|
1139 |
"mock",
|
1140 |
"xunit"
|
1141 |
],
|
1142 |
-
"
|
1143 |
-
"time": "2018-08-09T05:50:03+00:00"
|
1144 |
},
|
1145 |
{
|
1146 |
-
"name": "
|
1147 |
-
"version": "
|
1148 |
"source": {
|
1149 |
"type": "git",
|
1150 |
-
"url": "https://github.com/
|
1151 |
-
"reference": "
|
1152 |
},
|
1153 |
"dist": {
|
1154 |
"type": "zip",
|
1155 |
-
"url": "https://api.github.com/repos/
|
1156 |
-
"reference": "
|
1157 |
"shasum": ""
|
1158 |
},
|
1159 |
"require": {
|
1160 |
-
"php": "
|
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 |
-
"
|
1173 |
-
"
|
1174 |
-
|
1175 |
},
|
1176 |
"notification-url": "https://packagist.org/downloads/",
|
1177 |
"license": [
|
1178 |
-
"
|
1179 |
],
|
1180 |
"authors": [
|
1181 |
{
|
1182 |
-
"name": "
|
1183 |
-
"
|
1184 |
}
|
1185 |
],
|
1186 |
-
"description": "
|
1187 |
-
"homepage": "https://github.com/
|
1188 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1189 |
},
|
1190 |
{
|
1191 |
"name": "sebastian/comparator",
|
1192 |
-
"version": "
|
1193 |
"source": {
|
1194 |
"type": "git",
|
1195 |
"url": "https://github.com/sebastianbergmann/comparator.git",
|
1196 |
-
"reference": "
|
1197 |
},
|
1198 |
"dist": {
|
1199 |
"type": "zip",
|
1200 |
-
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/
|
1201 |
-
"reference": "
|
1202 |
"shasum": ""
|
1203 |
},
|
1204 |
"require": {
|
1205 |
-
"php": "^7.0",
|
1206 |
-
"sebastian/diff": "^2
|
1207 |
-
"sebastian/exporter": "^
|
1208 |
},
|
1209 |
"require-dev": {
|
1210 |
-
"phpunit/phpunit": "^
|
1211 |
},
|
1212 |
"type": "library",
|
1213 |
"extra": {
|
1214 |
"branch-alias": {
|
1215 |
-
"dev-master": "2.
|
1216 |
}
|
1217 |
},
|
1218 |
"autoload": {
|
@@ -1243,38 +1088,38 @@
|
|
1243 |
}
|
1244 |
],
|
1245 |
"description": "Provides the functionality to compare PHP values for equality",
|
1246 |
-
"homepage": "
|
1247 |
"keywords": [
|
1248 |
"comparator",
|
1249 |
"compare",
|
1250 |
"equality"
|
1251 |
],
|
1252 |
-
"time": "
|
1253 |
},
|
1254 |
{
|
1255 |
"name": "sebastian/diff",
|
1256 |
-
"version": "
|
1257 |
"source": {
|
1258 |
"type": "git",
|
1259 |
"url": "https://github.com/sebastianbergmann/diff.git",
|
1260 |
-
"reference": "
|
1261 |
},
|
1262 |
"dist": {
|
1263 |
"type": "zip",
|
1264 |
-
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/
|
1265 |
-
"reference": "
|
1266 |
"shasum": ""
|
1267 |
},
|
1268 |
"require": {
|
1269 |
-
"php": "
|
1270 |
},
|
1271 |
"require-dev": {
|
1272 |
-
"phpunit/phpunit": "
|
1273 |
},
|
1274 |
"type": "library",
|
1275 |
"extra": {
|
1276 |
"branch-alias": {
|
1277 |
-
"dev-master": "
|
1278 |
}
|
1279 |
},
|
1280 |
"autoload": {
|
@@ -1301,32 +1146,32 @@
|
|
1301 |
"keywords": [
|
1302 |
"diff"
|
1303 |
],
|
1304 |
-
"time": "
|
1305 |
},
|
1306 |
{
|
1307 |
"name": "sebastian/environment",
|
1308 |
-
"version": "3.
|
1309 |
"source": {
|
1310 |
"type": "git",
|
1311 |
"url": "https://github.com/sebastianbergmann/environment.git",
|
1312 |
-
"reference": "
|
1313 |
},
|
1314 |
"dist": {
|
1315 |
"type": "zip",
|
1316 |
-
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/
|
1317 |
-
"reference": "
|
1318 |
"shasum": ""
|
1319 |
},
|
1320 |
"require": {
|
1321 |
-
"php": "^7.0"
|
1322 |
},
|
1323 |
"require-dev": {
|
1324 |
-
"phpunit/phpunit": "^
|
1325 |
},
|
1326 |
"type": "library",
|
1327 |
"extra": {
|
1328 |
"branch-alias": {
|
1329 |
-
"dev-master": "3.
|
1330 |
}
|
1331 |
},
|
1332 |
"autoload": {
|
@@ -1351,34 +1196,34 @@
|
|
1351 |
"environment",
|
1352 |
"hhvm"
|
1353 |
],
|
1354 |
-
"time": "
|
1355 |
},
|
1356 |
{
|
1357 |
"name": "sebastian/exporter",
|
1358 |
-
"version": "
|
1359 |
"source": {
|
1360 |
"type": "git",
|
1361 |
"url": "https://github.com/sebastianbergmann/exporter.git",
|
1362 |
-
"reference": "
|
1363 |
},
|
1364 |
"dist": {
|
1365 |
"type": "zip",
|
1366 |
-
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/
|
1367 |
-
"reference": "
|
1368 |
"shasum": ""
|
1369 |
},
|
1370 |
"require": {
|
1371 |
-
"php": "
|
1372 |
-
"sebastian/recursion-context": "
|
1373 |
},
|
1374 |
"require-dev": {
|
1375 |
"ext-mbstring": "*",
|
1376 |
-
"phpunit/phpunit": "
|
1377 |
},
|
1378 |
"type": "library",
|
1379 |
"extra": {
|
1380 |
"branch-alias": {
|
1381 |
-
"dev-master": "3.
|
1382 |
}
|
1383 |
},
|
1384 |
"autoload": {
|
@@ -1418,27 +1263,27 @@
|
|
1418 |
"export",
|
1419 |
"exporter"
|
1420 |
],
|
1421 |
-
"time": "
|
1422 |
},
|
1423 |
{
|
1424 |
"name": "sebastian/global-state",
|
1425 |
-
"version": "
|
1426 |
"source": {
|
1427 |
"type": "git",
|
1428 |
"url": "https://github.com/sebastianbergmann/global-state.git",
|
1429 |
-
"reference": "
|
1430 |
},
|
1431 |
"dist": {
|
1432 |
"type": "zip",
|
1433 |
-
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/
|
1434 |
-
"reference": "
|
1435 |
"shasum": ""
|
1436 |
},
|
1437 |
"require": {
|
1438 |
-
"php": "
|
1439 |
},
|
1440 |
"require-dev": {
|
1441 |
-
"phpunit/phpunit": "
|
1442 |
},
|
1443 |
"suggest": {
|
1444 |
"ext-uopz": "*"
|
@@ -1446,7 +1291,7 @@
|
|
1446 |
"type": "library",
|
1447 |
"extra": {
|
1448 |
"branch-alias": {
|
1449 |
-
"dev-master": "
|
1450 |
}
|
1451 |
},
|
1452 |
"autoload": {
|
@@ -1469,34 +1314,32 @@
|
|
1469 |
"keywords": [
|
1470 |
"global state"
|
1471 |
],
|
1472 |
-
"time": "
|
1473 |
},
|
1474 |
{
|
1475 |
-
"name": "sebastian/
|
1476 |
-
"version": "
|
1477 |
"source": {
|
1478 |
"type": "git",
|
1479 |
-
"url": "https://github.com/sebastianbergmann/
|
1480 |
-
"reference": "
|
1481 |
},
|
1482 |
"dist": {
|
1483 |
"type": "zip",
|
1484 |
-
"url": "https://api.github.com/repos/sebastianbergmann/
|
1485 |
-
"reference": "
|
1486 |
"shasum": ""
|
1487 |
},
|
1488 |
"require": {
|
1489 |
-
"php": "
|
1490 |
-
"sebastian/object-reflector": "^1.1.1",
|
1491 |
-
"sebastian/recursion-context": "^3.0"
|
1492 |
},
|
1493 |
"require-dev": {
|
1494 |
-
"phpunit/phpunit": "
|
1495 |
},
|
1496 |
"type": "library",
|
1497 |
"extra": {
|
1498 |
"branch-alias": {
|
1499 |
-
"dev-master": "
|
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": "
|
1518 |
-
"homepage": "
|
1519 |
-
"time": "
|
1520 |
},
|
1521 |
{
|
1522 |
-
"name": "sebastian/
|
1523 |
-
"version": "1.
|
1524 |
"source": {
|
1525 |
"type": "git",
|
1526 |
-
"url": "https://github.com/sebastianbergmann/
|
1527 |
-
"reference": "
|
1528 |
},
|
1529 |
"dist": {
|
1530 |
"type": "zip",
|
1531 |
-
"url": "https://api.github.com/repos/sebastianbergmann/
|
1532 |
-
"reference": "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1533 |
"shasum": ""
|
1534 |
},
|
1535 |
"require": {
|
1536 |
-
"php": "
|
|
|
1537 |
},
|
1538 |
"require-dev": {
|
1539 |
-
"
|
|
|
|
|
|
|
1540 |
},
|
1541 |
"type": "library",
|
1542 |
"extra": {
|
1543 |
"branch-alias": {
|
1544 |
-
"dev-master": "
|
1545 |
}
|
1546 |
},
|
1547 |
"autoload": {
|
1548 |
-
"
|
1549 |
-
"
|
|
|
|
|
|
|
1550 |
]
|
1551 |
},
|
1552 |
"notification-url": "https://packagist.org/downloads/",
|
1553 |
"license": [
|
1554 |
-
"
|
1555 |
],
|
1556 |
"authors": [
|
1557 |
{
|
1558 |
-
"name": "
|
1559 |
-
"email": "
|
|
|
|
|
|
|
|
|
1560 |
}
|
1561 |
],
|
1562 |
-
"description": "
|
1563 |
-
"homepage": "https://
|
1564 |
-
"time": "2017-
|
1565 |
},
|
1566 |
{
|
1567 |
-
"name": "
|
1568 |
-
"version": "
|
1569 |
"source": {
|
1570 |
"type": "git",
|
1571 |
-
"url": "https://github.com/
|
1572 |
-
"reference": "
|
1573 |
},
|
1574 |
"dist": {
|
1575 |
"type": "zip",
|
1576 |
-
"url": "https://api.github.com/repos/
|
1577 |
-
"reference": "
|
1578 |
"shasum": ""
|
1579 |
},
|
1580 |
"require": {
|
1581 |
-
"php": "
|
|
|
|
|
1582 |
},
|
1583 |
"require-dev": {
|
1584 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1585 |
},
|
1586 |
"type": "library",
|
1587 |
"extra": {
|
1588 |
"branch-alias": {
|
1589 |
-
"dev-master": "3.
|
1590 |
}
|
1591 |
},
|
1592 |
"autoload": {
|
1593 |
-
"
|
1594 |
-
"
|
|
|
|
|
|
|
1595 |
]
|
1596 |
},
|
1597 |
"notification-url": "https://packagist.org/downloads/",
|
1598 |
"license": [
|
1599 |
-
"
|
1600 |
],
|
1601 |
"authors": [
|
1602 |
{
|
1603 |
-
"name": "
|
1604 |
-
"email": "
|
1605 |
-
},
|
1606 |
-
{
|
1607 |
-
"name": "Sebastian Bergmann",
|
1608 |
-
"email": "sebastian@phpunit.de"
|
1609 |
},
|
1610 |
{
|
1611 |
-
"name": "
|
1612 |
-
"
|
1613 |
}
|
1614 |
],
|
1615 |
-
"description": "
|
1616 |
-
"homepage": "
|
1617 |
-
"time": "2017-
|
1618 |
},
|
1619 |
{
|
1620 |
-
"name": "
|
1621 |
-
"version": "
|
1622 |
"source": {
|
1623 |
"type": "git",
|
1624 |
-
"url": "https://github.com/
|
1625 |
-
"reference": "
|
1626 |
},
|
1627 |
"dist": {
|
1628 |
"type": "zip",
|
1629 |
-
"url": "https://api.github.com/repos/
|
1630 |
-
"reference": "
|
1631 |
"shasum": ""
|
1632 |
},
|
1633 |
"require": {
|
1634 |
-
"php": ">=5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1635 |
},
|
1636 |
"type": "library",
|
1637 |
"extra": {
|
1638 |
"branch-alias": {
|
1639 |
-
"dev-master": "
|
1640 |
}
|
1641 |
},
|
1642 |
"autoload": {
|
1643 |
-
"
|
1644 |
-
"
|
|
|
|
|
|
|
1645 |
]
|
1646 |
},
|
1647 |
"notification-url": "https://packagist.org/downloads/",
|
1648 |
"license": [
|
1649 |
-
"
|
1650 |
],
|
1651 |
"authors": [
|
1652 |
{
|
1653 |
-
"name": "
|
1654 |
-
"email": "
|
|
|
|
|
|
|
|
|
1655 |
}
|
1656 |
],
|
1657 |
-
"description": "
|
1658 |
-
"homepage": "https://
|
1659 |
-
"time": "
|
1660 |
},
|
1661 |
{
|
1662 |
-
"name": "
|
1663 |
-
"version": "2.
|
1664 |
"source": {
|
1665 |
"type": "git",
|
1666 |
-
"url": "https://github.com/
|
1667 |
-
"reference": "
|
1668 |
},
|
1669 |
"dist": {
|
1670 |
"type": "zip",
|
1671 |
-
"url": "https://api.github.com/repos/
|
1672 |
-
"reference": "
|
1673 |
"shasum": ""
|
1674 |
},
|
1675 |
"require": {
|
1676 |
-
"php": ">=5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1677 |
},
|
1678 |
"type": "library",
|
1679 |
"extra": {
|
1680 |
"branch-alias": {
|
1681 |
-
"dev-master": "2.
|
1682 |
}
|
1683 |
},
|
1684 |
"autoload": {
|
1685 |
-
"
|
1686 |
-
"
|
|
|
|
|
|
|
1687 |
]
|
1688 |
},
|
1689 |
"notification-url": "https://packagist.org/downloads/",
|
1690 |
"license": [
|
1691 |
-
"
|
1692 |
],
|
1693 |
"authors": [
|
1694 |
{
|
1695 |
-
"name": "
|
1696 |
-
"email": "
|
1697 |
-
|
|
|
|
|
|
|
1698 |
}
|
1699 |
],
|
1700 |
-
"description": "
|
1701 |
-
"homepage": "https://
|
1702 |
-
"time": "
|
1703 |
},
|
1704 |
{
|
1705 |
-
"name": "
|
1706 |
-
"version": "
|
1707 |
"source": {
|
1708 |
"type": "git",
|
1709 |
-
"url": "https://github.com/
|
1710 |
-
"reference": "
|
1711 |
},
|
1712 |
"dist": {
|
1713 |
"type": "zip",
|
1714 |
-
"url": "https://api.github.com/repos/
|
1715 |
-
"reference": "
|
1716 |
"shasum": ""
|
1717 |
},
|
1718 |
"require": {
|
1719 |
-
"php": "
|
1720 |
-
"squizlabs/php_codesniffer": "^3.0.1"
|
1721 |
},
|
1722 |
-
"
|
1723 |
-
|
1724 |
-
"
|
1725 |
-
|
1726 |
-
|
1727 |
},
|
1728 |
-
"type": "phpcodesniffer-standard",
|
1729 |
"autoload": {
|
1730 |
"psr-4": {
|
1731 |
-
"
|
1732 |
-
}
|
|
|
|
|
|
|
1733 |
},
|
1734 |
"notification-url": "https://packagist.org/downloads/",
|
1735 |
"license": [
|
1736 |
"MIT"
|
1737 |
],
|
1738 |
-
"
|
1739 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1740 |
},
|
1741 |
{
|
1742 |
-
"name": "
|
1743 |
-
"version": "
|
1744 |
"source": {
|
1745 |
"type": "git",
|
1746 |
-
"url": "https://github.com/
|
1747 |
-
"reference": "
|
1748 |
},
|
1749 |
"dist": {
|
1750 |
"type": "zip",
|
1751 |
-
"url": "https://api.github.com/repos/
|
1752 |
-
"reference": "
|
1753 |
"shasum": ""
|
1754 |
},
|
1755 |
"require": {
|
1756 |
-
"
|
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.
|
1772 |
}
|
1773 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1774 |
"notification-url": "https://packagist.org/downloads/",
|
1775 |
"license": [
|
1776 |
-
"
|
1777 |
],
|
1778 |
"authors": [
|
1779 |
{
|
1780 |
-
"name": "
|
1781 |
-
"
|
|
|
|
|
|
|
|
|
1782 |
}
|
1783 |
],
|
1784 |
-
"description": "
|
1785 |
-
"homepage": "https://
|
1786 |
-
"
|
1787 |
-
"phpcs",
|
1788 |
-
"standards"
|
1789 |
-
],
|
1790 |
-
"time": "2019-04-10T23:49:02+00:00"
|
1791 |
},
|
1792 |
{
|
1793 |
-
"name": "symfony/polyfill-
|
1794 |
-
"version": "
|
1795 |
"source": {
|
1796 |
"type": "git",
|
1797 |
-
"url": "https://github.com/symfony/polyfill-
|
1798 |
-
"reference": "
|
1799 |
},
|
1800 |
"dist": {
|
1801 |
"type": "zip",
|
1802 |
-
"url": "https://api.github.com/repos/symfony/polyfill-
|
1803 |
-
"reference": "
|
1804 |
"shasum": ""
|
1805 |
},
|
1806 |
"require": {
|
1807 |
"php": ">=5.3.3"
|
1808 |
},
|
1809 |
"suggest": {
|
1810 |
-
"ext-
|
1811 |
},
|
1812 |
"type": "library",
|
1813 |
"extra": {
|
1814 |
"branch-alias": {
|
1815 |
-
"dev-master": "1.
|
1816 |
}
|
1817 |
},
|
1818 |
"autoload": {
|
1819 |
"psr-4": {
|
1820 |
-
"Symfony\\Polyfill\\
|
1821 |
},
|
1822 |
"files": [
|
1823 |
"bootstrap.php"
|
@@ -1829,81 +1779,194 @@
|
|
1829 |
],
|
1830 |
"authors": [
|
1831 |
{
|
1832 |
-
"name": "
|
1833 |
-
"
|
1834 |
},
|
1835 |
{
|
1836 |
-
"name": "
|
1837 |
-
"
|
1838 |
}
|
1839 |
],
|
1840 |
-
"description": "Symfony polyfill for
|
1841 |
"homepage": "https://symfony.com",
|
1842 |
"keywords": [
|
1843 |
"compatibility",
|
1844 |
-
"
|
1845 |
"polyfill",
|
1846 |
-
"portable"
|
|
|
1847 |
],
|
1848 |
-
"time": "
|
1849 |
},
|
1850 |
{
|
1851 |
-
"name": "
|
1852 |
-
"version": "
|
1853 |
"source": {
|
1854 |
"type": "git",
|
1855 |
-
"url": "https://github.com/
|
1856 |
-
"reference": "
|
1857 |
},
|
1858 |
"dist": {
|
1859 |
"type": "zip",
|
1860 |
-
"url": "https://api.github.com/repos/
|
1861 |
-
"reference": "
|
1862 |
"shasum": ""
|
1863 |
},
|
1864 |
"require": {
|
1865 |
-
"
|
1866 |
-
"ext-tokenizer": "*",
|
1867 |
-
"ext-xmlwriter": "*",
|
1868 |
-
"php": "^7.0"
|
1869 |
},
|
1870 |
"type": "library",
|
|
|
|
|
|
|
|
|
|
|
1871 |
"autoload": {
|
1872 |
-
"
|
1873 |
-
"
|
|
|
|
|
|
|
1874 |
]
|
1875 |
},
|
1876 |
"notification-url": "https://packagist.org/downloads/",
|
1877 |
"license": [
|
1878 |
-
"
|
1879 |
],
|
1880 |
"authors": [
|
1881 |
{
|
1882 |
-
"name": "
|
1883 |
-
"email": "
|
1884 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1885 |
}
|
1886 |
],
|
1887 |
-
"description": "
|
1888 |
-
"
|
|
|
1889 |
},
|
1890 |
{
|
1891 |
"name": "webmozart/assert",
|
1892 |
-
"version": "
|
1893 |
"source": {
|
1894 |
"type": "git",
|
1895 |
"url": "https://github.com/webmozart/assert.git",
|
1896 |
-
"reference": "
|
1897 |
},
|
1898 |
"dist": {
|
1899 |
"type": "zip",
|
1900 |
-
"url": "https://api.github.com/repos/webmozart/assert/zipball/
|
1901 |
-
"reference": "
|
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": "
|
1940 |
}
|
1941 |
],
|
1942 |
"aliases": [],
|
1943 |
"minimum-stability": "dev",
|
1944 |
-
"stability-flags":
|
1945 |
-
|
|
|
|
|
1946 |
"prefer-lowest": false,
|
1947 |
"platform": {
|
1948 |
-
"php": "^
|
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`][] -
|
18 |
-
|
19 |
-
the
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
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 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
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 |
-
[
|
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.
|
16 |
-
"
|
17 |
-
"
|
|
|
18 |
},
|
19 |
"require-dev": {
|
20 |
-
"phpunit/phpunit": "^
|
|
|
|
|
|
|
|
|
|
|
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.
|
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 |
-
{
|
1404 |
-
"name": "Sebastian Bergmann",
|
1405 |
-
"email": "sebastian@phpunit.de",
|
1406 |
-
"role": "lead"
|
1407 |
-
}
|
1408 |
-
],
|
1409 |
-
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
|
1410 |
-
"homepage": "https://github.com/sebastianbergmann/version",
|
1411 |
-
"time": "2016-10-03T07:35:21+00:00"
|
1412 |
-
},
|
1413 |
-
{
|
1414 |
-
"name": "symfony/polyfill-ctype",
|
1415 |
-
"version": "v1.14.0",
|
1416 |
-
"source": {
|
1417 |
-
"type": "git",
|
1418 |
-
"url": "https://github.com/symfony/polyfill-ctype.git",
|
1419 |
-
"reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38"
|
1420 |
-
},
|
1421 |
-
"dist": {
|
1422 |
-
"type": "zip",
|
1423 |
-
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38",
|
1424 |
-
"reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38",
|
1425 |
-
"shasum": ""
|
1426 |
-
},
|
1427 |
-
"require": {
|
1428 |
-
"php": ">=5.3.3"
|
1429 |
-
},
|
1430 |
-
"suggest": {
|
1431 |
-
"ext-ctype": "For best performance"
|
1432 |
-
},
|
1433 |
-
"type": "library",
|
1434 |
-
"extra": {
|
1435 |
-
"branch-alias": {
|
1436 |
-
"dev-master": "1.14-dev"
|
1437 |
-
}
|
1438 |
-
},
|
1439 |
-
"autoload": {
|
1440 |
-
"psr-4": {
|
1441 |
-
"Symfony\\Polyfill\\Ctype\\": ""
|
1442 |
-
},
|
1443 |
-
"files": [
|
1444 |
-
"bootstrap.php"
|
1445 |
-
]
|
1446 |
-
},
|
1447 |
-
"notification-url": "https://packagist.org/downloads/",
|
1448 |
-
"license": [
|
1449 |
-
"MIT"
|
1450 |
-
],
|
1451 |
-
"authors": [
|
1452 |
-
{
|
1453 |
-
"name": "Gert de Pagter",
|
1454 |
-
"email": "BackEndTea@gmail.com"
|
1455 |
-
},
|
1456 |
-
{
|
1457 |
-
"name": "Symfony Community",
|
1458 |
-
"homepage": "https://symfony.com/contributors"
|
1459 |
-
}
|
1460 |
-
],
|
1461 |
-
"description": "Symfony polyfill for ctype functions",
|
1462 |
-
"homepage": "https://symfony.com",
|
1463 |
-
"keywords": [
|
1464 |
-
"compatibility",
|
1465 |
-
"ctype",
|
1466 |
-
"polyfill",
|
1467 |
-
"portable"
|
1468 |
-
],
|
1469 |
-
"time": "2020-01-13T11:15:53+00:00"
|
1470 |
-
},
|
1471 |
-
{
|
1472 |
-
"name": "theseer/tokenizer",
|
1473 |
-
"version": "1.1.3",
|
1474 |
-
"source": {
|
1475 |
-
"type": "git",
|
1476 |
-
"url": "https://github.com/theseer/tokenizer.git",
|
1477 |
-
"reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
|
1478 |
-
},
|
1479 |
-
"dist": {
|
1480 |
-
"type": "zip",
|
1481 |
-
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
|
1482 |
-
"reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
|
1483 |
-
"shasum": ""
|
1484 |
-
},
|
1485 |
-
"require": {
|
1486 |
-
"ext-dom": "*",
|
1487 |
-
"ext-tokenizer": "*",
|
1488 |
-
"ext-xmlwriter": "*",
|
1489 |
-
"php": "^7.0"
|
1490 |
-
},
|
1491 |
-
"type": "library",
|
1492 |
-
"autoload": {
|
1493 |
-
"classmap": [
|
1494 |
-
"src/"
|
1495 |
-
]
|
1496 |
-
},
|
1497 |
-
"notification-url": "https://packagist.org/downloads/",
|
1498 |
-
"license": [
|
1499 |
-
"BSD-3-Clause"
|
1500 |
-
],
|
1501 |
-
"authors": [
|
1502 |
-
{
|
1503 |
-
"name": "Arne Blankerts",
|
1504 |
-
"email": "arne@blankerts.de",
|
1505 |
-
"role": "Developer"
|
1506 |
-
}
|
1507 |
-
],
|
1508 |
-
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
|
1509 |
-
"time": "2019-06-13T22:48:21+00:00"
|
1510 |
-
},
|
1511 |
-
{
|
1512 |
-
"name": "webmozart/assert",
|
1513 |
-
"version": "1.7.0",
|
1514 |
-
"source": {
|
1515 |
-
"type": "git",
|
1516 |
-
"url": "https://github.com/webmozart/assert.git",
|
1517 |
-
"reference": "aed98a490f9a8f78468232db345ab9cf606cf598"
|
1518 |
-
},
|
1519 |
-
"dist": {
|
1520 |
-
"type": "zip",
|
1521 |
-
"url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598",
|
1522 |
-
"reference": "aed98a490f9a8f78468232db345ab9cf606cf598",
|
1523 |
-
"shasum": ""
|
1524 |
-
},
|
1525 |
-
"require": {
|
1526 |
-
"php": "^5.3.3 || ^7.0",
|
1527 |
-
"symfony/polyfill-ctype": "^1.8"
|
1528 |
-
},
|
1529 |
-
"conflict": {
|
1530 |
-
"vimeo/psalm": "<3.6.0"
|
1531 |
-
},
|
1532 |
-
"require-dev": {
|
1533 |
-
"phpunit/phpunit": "^4.8.36 || ^7.5.13"
|
1534 |
-
},
|
1535 |
-
"type": "library",
|
1536 |
-
"autoload": {
|
1537 |
-
"psr-4": {
|
1538 |
-
"Webmozart\\Assert\\": "src/"
|
1539 |
-
}
|
1540 |
-
},
|
1541 |
-
"notification-url": "https://packagist.org/downloads/",
|
1542 |
-
"license": [
|
1543 |
-
"MIT"
|
1544 |
-
],
|
1545 |
-
"authors": [
|
1546 |
-
{
|
1547 |
-
"name": "Bernhard Schussek",
|
1548 |
-
"email": "bschussek@gmail.com"
|
1549 |
-
}
|
1550 |
-
],
|
1551 |
-
"description": "Assertions to validate method input/output with nice error messages.",
|
1552 |
-
"keywords": [
|
1553 |
-
"assert",
|
1554 |
-
"check",
|
1555 |
-
"validate"
|
1556 |
-
],
|
1557 |
-
"time": "2020-02-14T12:15:55+00:00"
|
1558 |
-
}
|
1559 |
-
],
|
1560 |
-
"aliases": [],
|
1561 |
-
"minimum-stability": "dev",
|
1562 |
-
"stability-flags": [],
|
1563 |
-
"prefer-stable": true,
|
1564 |
-
"prefer-lowest": false,
|
1565 |
-
"platform": {
|
1566 |
-
"php": "^7.1"
|
1567 |
-
},
|
1568 |
-
"platform-dev": []
|
1569 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/src/DependenciesAwareInterface.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Dhii\Modular\Module;
|
4 |
+
|
5 |
+
use Dhii\Util\String\StringableInterface as Stringable;
|
6 |
+
use stdClass;
|
7 |
+
use Traversable;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Something that is aware of, and can provide, a list of dependencies.
|
11 |
+
*
|
12 |
+
* @since [*next-version*]
|
13 |
+
*/
|
14 |
+
interface DependenciesAwareInterface
|
15 |
+
{
|
16 |
+
/**
|
17 |
+
* Retrieves the dependencies.
|
18 |
+
*
|
19 |
+
* @since [*next-version*]
|
20 |
+
*
|
21 |
+
* @return string[]|Stringable[]|stdClass|Traversable A list of dependencies.
|
22 |
+
*/
|
23 |
+
public function getDependencies();
|
24 |
+
}
|
vendor/dhii/module-interface/src/Exception/ModuleExceptionInterface.php
CHANGED
@@ -3,15 +3,15 @@
|
|
3 |
namespace Dhii\Modular\Module\Exception;
|
4 |
|
5 |
use Dhii\Modular\Module\ModuleAwareInterface;
|
6 |
-
use
|
7 |
|
8 |
/**
|
9 |
* Represents an exception that is thrown in relation to a module.
|
10 |
*
|
11 |
-
* @since
|
12 |
*/
|
13 |
interface ModuleExceptionInterface extends
|
14 |
-
|
15 |
ModuleAwareInterface
|
16 |
{
|
17 |
}
|
3 |
namespace Dhii\Modular\Module\Exception;
|
4 |
|
5 |
use Dhii\Modular\Module\ModuleAwareInterface;
|
6 |
+
use Dhii\Exception\ThrowableInterface;
|
7 |
|
8 |
/**
|
9 |
* Represents an exception that is thrown in relation to a module.
|
10 |
*
|
11 |
+
* @since [*next-version*]
|
12 |
*/
|
13 |
interface ModuleExceptionInterface extends
|
14 |
+
ThrowableInterface,
|
15 |
ModuleAwareInterface
|
16 |
{
|
17 |
}
|
vendor/dhii/module-interface/src/ModuleAwareInterface.php
CHANGED
@@ -5,14 +5,14 @@ namespace Dhii\Modular\Module;
|
|
5 |
/**
|
6 |
* Something that can have a module instance retrieved.
|
7 |
*
|
8 |
-
* @since
|
9 |
*/
|
10 |
interface ModuleAwareInterface
|
11 |
{
|
12 |
/**
|
13 |
* Retrieves the module that is associated with this instance.
|
14 |
*
|
15 |
-
* @since
|
16 |
*
|
17 |
* @return ModuleInterface|null The module, if applicable; otherwise, null.
|
18 |
*/
|
5 |
/**
|
6 |
* Something that can have a module instance retrieved.
|
7 |
*
|
8 |
+
* @since [*next-version*]
|
9 |
*/
|
10 |
interface ModuleAwareInterface
|
11 |
{
|
12 |
/**
|
13 |
* Retrieves the module that is associated with this instance.
|
14 |
*
|
15 |
+
* @since [*next-version*]
|
16 |
*
|
17 |
* @return ModuleInterface|null The module, if applicable; otherwise, null.
|
18 |
*/
|
vendor/dhii/module-interface/src/ModuleFactoryInterface.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Dhii\Modular\Module;
|
4 |
+
|
5 |
+
use Dhii\Factory\FactoryInterface;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Something that can create new module instances from module configuration.
|
9 |
+
*
|
10 |
+
* @since [*next-version*]
|
11 |
+
*/
|
12 |
+
interface ModuleFactoryInterface extends FactoryInterface
|
13 |
+
{
|
14 |
+
/**
|
15 |
+
* {@inheritdoc}
|
16 |
+
*
|
17 |
+
* @since [*next-version*]
|
18 |
+
*
|
19 |
+
* @return ModuleInterface The created module instance.
|
20 |
+
*/
|
21 |
+
public function make($config = null);
|
22 |
+
}
|
vendor/dhii/module-interface/src/ModuleInterface.php
CHANGED
@@ -2,51 +2,43 @@
|
|
2 |
|
3 |
namespace Dhii\Modular\Module;
|
4 |
|
5 |
-
use Dhii\
|
6 |
-
use Interop\Container\ServiceProviderInterface;
|
7 |
use Psr\Container\ContainerInterface;
|
8 |
|
9 |
/**
|
10 |
-
*
|
11 |
*
|
12 |
-
*
|
|
|
|
|
|
|
13 |
*/
|
14 |
-
interface ModuleInterface
|
15 |
{
|
16 |
/**
|
17 |
-
* Performs module-specific setup and provides a
|
18 |
-
*
|
19 |
-
* This method SHOULD be called at least once before {@link ModuleInterface::run()} may be invoked for a particular
|
20 |
-
* module instance. The returned service provider instance SHOULD be incorporated by the application into the
|
21 |
-
* container instance that is then given to this module's {@link ModuleInterface::run()} method.
|
22 |
*
|
23 |
-
*
|
24 |
-
*
|
25 |
-
*
|
26 |
-
* optionally integrating with other modules.
|
27 |
*
|
28 |
-
* @since
|
29 |
*
|
30 |
-
* @return
|
31 |
-
*
|
32 |
-
* @throws ModuleExceptionInterface If module setup failed and/or a service provider instance could not be returned.
|
33 |
*/
|
34 |
-
public function setup()
|
35 |
|
36 |
/**
|
37 |
* Runs the module.
|
38 |
*
|
39 |
-
* This method MUST be called
|
40 |
-
* container
|
41 |
-
*
|
42 |
-
*
|
43 |
-
* referencing services from other modules.
|
44 |
-
*
|
45 |
-
* @since 0.2
|
46 |
*
|
47 |
-
* @
|
48 |
*
|
49 |
-
* @
|
50 |
*/
|
51 |
-
public function run(ContainerInterface $c);
|
52 |
}
|
2 |
|
3 |
namespace Dhii\Modular\Module;
|
4 |
|
5 |
+
use Dhii\Data\KeyAwareInterface;
|
|
|
6 |
use Psr\Container\ContainerInterface;
|
7 |
|
8 |
/**
|
9 |
+
* Anything that represents a system module.
|
10 |
*
|
11 |
+
* A module is represented by an key, which is not limited to any type or form. It can be numeric, a slug, a hash or
|
12 |
+
* even a user-friendly name. What matters is that it **uniquely** identifies the module.
|
13 |
+
*
|
14 |
+
* @since [*next-version*]
|
15 |
*/
|
16 |
+
interface ModuleInterface extends KeyAwareInterface
|
17 |
{
|
18 |
/**
|
19 |
+
* Performs module-specific setup and optionally provides a container.
|
|
|
|
|
|
|
|
|
20 |
*
|
21 |
+
* This method SHOULD be used to allow the module to set up and prepare itself for invocation.
|
22 |
+
* If required, the module MAY provide services in a container. However, the usage of this container is dependent on
|
23 |
+
* the consumer and as such there is no guarantee that the container will actually be utilized.
|
|
|
24 |
*
|
25 |
+
* @since [*next-version*]
|
26 |
*
|
27 |
+
* @return ContainerInterface|null A DI container instance, if any.
|
|
|
|
|
28 |
*/
|
29 |
+
public function setup();
|
30 |
|
31 |
/**
|
32 |
* Runs the module.
|
33 |
*
|
34 |
+
* This method MUST be called when the module has been set up and is ready for invocation.
|
35 |
+
* A service container MAY be given to this method, which MAY consume its services. This container is not
|
36 |
+
* necessarily the same container returned by the instance's `setup()` method. In fact, it is strongly advised to
|
37 |
+
* assume that this is not the case.
|
|
|
|
|
|
|
38 |
*
|
39 |
+
* @since [*next-version*]
|
40 |
*
|
41 |
+
* @param ContainerInterface|null $c Optional DI container instance.
|
42 |
*/
|
43 |
+
public function run(ContainerInterface $c = null);
|
44 |
}
|
vendor/dhii/module-interface/src/ModuleKeyAwareInterface.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Dhii\Modular\Module;
|
4 |
+
|
5 |
+
use Dhii\Util\String\StringableInterface as Stringable;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Something that can have a module key retrieved.
|
9 |
+
*
|
10 |
+
* @since [*next-version*]
|
11 |
+
*/
|
12 |
+
interface ModuleKeyAwareInterface
|
13 |
+
{
|
14 |
+
/**
|
15 |
+
* Retrieves the module key associated with this instance.
|
16 |
+
*
|
17 |
+
* @since [*next-version*]
|
18 |
+
*
|
19 |
+
* @return string|Stringable|null The key, if applicable; otherwise, null.
|
20 |
+
*/
|
21 |
+
public function getModuleKey();
|
22 |
+
}
|
vendor/dhii/module-interface/test/bootstrap.php
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
error_reporting(E_ALL | E_STRICT);
|
4 |
-
|
5 |
-
require_once dirname(__FILE__).'/../vendor/autoload.php';
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/test/stubs/GetImplementingMockBuilderCapableTrait.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Dhii\Modular\Module\Test;
|
4 |
-
|
5 |
-
use PHPUnit\Framework\MockObject\MockBuilder;
|
6 |
-
use Throwable;
|
7 |
-
use Exception;
|
8 |
-
use Error;
|
9 |
-
use PHPUnit\Framework\TestCase;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Eases development of tests by allowing creation of more complex mocks.
|
13 |
-
*
|
14 |
-
* The original {@see TestCase::getMockBuilder()} allows mocking only a class or an interface.
|
15 |
-
* But sometimes, it is necessary to mock a class that implements one or more interfaces.
|
16 |
-
* One such case is with exceptions: testing an interface that extends {@see Throwable} requires the extension
|
17 |
-
* of {@see Exception} or {@see Error} by the mock.
|
18 |
-
*/
|
19 |
-
trait GetImplementingMockBuilderCapableTrait
|
20 |
-
{
|
21 |
-
/**
|
22 |
-
* Retrieves a builder for a class that extends the specified base class, while implementing the specified interfaces.
|
23 |
-
*
|
24 |
-
* @param string $baseClassName The name of the base class to extend.
|
25 |
-
* @param array $interfaceNames The names of interfaces to implement
|
26 |
-
* @return MockBuilder A builder for the new class.
|
27 |
-
*/
|
28 |
-
public function getImplementingMockBuilder(string $baseClassName, array $interfaceNames)
|
29 |
-
{
|
30 |
-
$className = uniqid("{$baseClassName}_");
|
31 |
-
$interfaceNames = implode(', ', $interfaceNames);
|
32 |
-
$classString = "abstract class $className extends $baseClassName implements $interfaceNames {}";
|
33 |
-
|
34 |
-
eval($classString);
|
35 |
-
|
36 |
-
return $this->getMockBuilder($className);
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* Retrieves a mock builder for the specified classname.
|
41 |
-
*
|
42 |
-
* @param string $className
|
43 |
-
* @return MockBuilder The builder.
|
44 |
-
*/
|
45 |
-
abstract public function getMockBuilder($className): MockBuilder;
|
46 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/test/unit/Exception/ModuleExceptionInterfaceTest.php
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Dhii\Modular\UnitTest\Exception;
|
4 |
-
|
5 |
-
use Dhii\Modular\Module\Exception\ModuleExceptionInterface as TestSubject;
|
6 |
-
use Dhii\Modular\Module\ModuleAwareInterface;
|
7 |
-
use Dhii\Modular\Module\Test\GetImplementingMockBuilderCapableTrait;
|
8 |
-
use Exception;
|
9 |
-
use PHPUnit\Framework\MockObject\MockObject;
|
10 |
-
use PHPUnit\Framework\TestCase;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Tests {@see TestSubject}.
|
14 |
-
*
|
15 |
-
* @since 0.2
|
16 |
-
*/
|
17 |
-
class ModuleExceptionInterfaceTest extends TestCase
|
18 |
-
{
|
19 |
-
use GetImplementingMockBuilderCapableTrait;
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Creates a new instance of the test subject.
|
23 |
-
*
|
24 |
-
* @since 0.2
|
25 |
-
*
|
26 |
-
* @return TestSubject&MockObject
|
27 |
-
*/
|
28 |
-
public function createInstance()
|
29 |
-
{
|
30 |
-
$mock = $this->getImplementingMockBuilder(Exception::class, [TestSubject::class])
|
31 |
-
->setMethods([])
|
32 |
-
->getMock();
|
33 |
-
|
34 |
-
return $mock;
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Tests whether a valid instance of the test subject can be created.
|
39 |
-
*
|
40 |
-
* @since 0.2
|
41 |
-
*/
|
42 |
-
public function testCanBeCreated()
|
43 |
-
{
|
44 |
-
$subject = $this->createInstance();
|
45 |
-
|
46 |
-
$this->assertInstanceOf(
|
47 |
-
TestSubject::class,
|
48 |
-
$subject,
|
49 |
-
'A valid instance of the test subject could not be created'
|
50 |
-
);
|
51 |
-
|
52 |
-
$this->assertInstanceOf(
|
53 |
-
'Throwable',
|
54 |
-
$subject,
|
55 |
-
'Exception must be throwable'
|
56 |
-
);
|
57 |
-
|
58 |
-
$this->assertInstanceOf(
|
59 |
-
ModuleAwareInterface::class,
|
60 |
-
$subject,
|
61 |
-
'Subject does not implement required interface'
|
62 |
-
);
|
63 |
-
}
|
64 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/test/unit/ModuleAwareInterfaceTest.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Dhii\Modular\UnitTest\Module;
|
4 |
-
|
5 |
-
use Dhii\Modular\Module\ModuleAwareInterface as TestSubject;
|
6 |
-
use PHPUnit_Framework_MockObject_MockObject as MockObject;
|
7 |
-
use PHPUnit\Framework\TestCase;
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Tests {@see TestSubject}.
|
11 |
-
*
|
12 |
-
* @since 0.2
|
13 |
-
*/
|
14 |
-
class ModuleAwareInterfaceTest extends TestCase
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* Creates a new instance of the test subject.
|
18 |
-
*
|
19 |
-
* @since 0.2
|
20 |
-
*
|
21 |
-
* @return TestSubject&MockObject
|
22 |
-
*/
|
23 |
-
public function createInstance()
|
24 |
-
{
|
25 |
-
$mock = $this->getMockBuilder(TestSubject::class)
|
26 |
-
->getMock();
|
27 |
-
|
28 |
-
return $mock;
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Tests whether a valid instance of the test subject can be created.
|
33 |
-
*
|
34 |
-
* @since 0.2
|
35 |
-
*/
|
36 |
-
public function testCanBeCreated()
|
37 |
-
{
|
38 |
-
$subject = $this->createInstance();
|
39 |
-
|
40 |
-
$this->assertInstanceOf(
|
41 |
-
TestSubject::class,
|
42 |
-
$subject,
|
43 |
-
'A valid instance of the test subject could not be created'
|
44 |
-
);
|
45 |
-
}
|
46 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/test/unit/ModuleInterfaceTest.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Dhii\Modular\UnitTest\Module;
|
4 |
-
|
5 |
-
use Dhii\Modular\Module\ModuleInterface as TestSubject;
|
6 |
-
use PHPUnit\Framework\MockObject\MockObject as MockObject;
|
7 |
-
use PHPUnit\Framework\TestCase;
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Tests {@see TestSubject}.
|
11 |
-
*
|
12 |
-
* @since 0.2
|
13 |
-
*/
|
14 |
-
class ModuleInterfaceTest extends TestCase
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* Creates a new instance of the test subject.
|
18 |
-
*
|
19 |
-
* @since 0.2
|
20 |
-
*
|
21 |
-
* @return TestSubject&MockObject
|
22 |
-
*/
|
23 |
-
public function createInstance()
|
24 |
-
{
|
25 |
-
$mock = $this->getMockBuilder(TestSubject::class)
|
26 |
-
->getMock();
|
27 |
-
|
28 |
-
return $mock;
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Tests whether a valid instance of the test subject can be created.
|
33 |
-
*
|
34 |
-
* @since 0.2
|
35 |
-
*/
|
36 |
-
public function testCanBeCreated()
|
37 |
-
{
|
38 |
-
$subject = $this->createInstance();
|
39 |
-
|
40 |
-
$this->assertInstanceOf(
|
41 |
-
TestSubject::class,
|
42 |
-
$subject,
|
43 |
-
'A valid instance of the test subject could not be created'
|
44 |
-
);
|
45 |
-
}
|
46 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/dhii/module-interface/travis.php.ini
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
memory_limit = 2048M
|
vendor/psr/simple-cache/.editorconfig
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
; This file is for unifying the coding style for different editors and IDEs.
|
2 |
-
; More information at http://editorconfig.org
|
3 |
-
|
4 |
-
root = true
|
5 |
-
|
6 |
-
[*]
|
7 |
-
charset = utf-8
|
8 |
-
indent_size = 4
|
9 |
-
indent_style = space
|
10 |
-
end_of_line = lf
|
11 |
-
insert_final_newline = true
|
12 |
-
trim_trailing_whitespace = true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/psr/simple-cache/LICENSE.md
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
# The MIT License (MIT)
|
2 |
-
|
3 |
-
Copyright (c) 2016 PHP Framework Interoperability Group
|
4 |
-
|
5 |
-
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
-
> of this software and associated documentation files (the "Software"), to deal
|
7 |
-
> in the Software without restriction, including without limitation the rights
|
8 |
-
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
-
> copies of the Software, and to permit persons to whom the Software is
|
10 |
-
> furnished to do so, subject to the following conditions:
|
11 |
-
>
|
12 |
-
> The above copyright notice and this permission notice shall be included in
|
13 |
-
> all copies or substantial portions of the Software.
|
14 |
-
>
|
15 |
-
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
-
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
-
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
-
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
-
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
-
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21 |
-
> THE SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/psr/simple-cache/README.md
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
PHP FIG Simple Cache PSR
|
2 |
-
========================
|
3 |
-
|
4 |
-
This repository holds all interfaces related to PSR-16.
|
5 |
-
|
6 |
-
Note that this is not a cache implementation of its own. It is merely an interface that describes a cache implementation. See [the specification](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-16-simple-cache.md) for more details.
|
7 |
-
|
8 |
-
You can find implementations of the specification by looking for packages providing the [psr/simple-cache-implementation](https://packagist.org/providers/psr/simple-cache-implementation) virtual package.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/psr/simple-cache/composer.json
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "psr/simple-cache",
|
3 |
-
"description": "Common interfaces for simple caching",
|
4 |
-
"keywords": ["psr", "psr-16", "cache", "simple-cache", "caching"],
|
5 |
-
"license": "MIT",
|
6 |
-
"authors": [
|
7 |
-
{
|
8 |
-
"name": "PHP-FIG",
|
9 |
-
"homepage": "http://www.php-fig.org/"
|
10 |
-
}
|
11 |
-
],
|
12 |
-
"require": {
|
13 |
-
"php": ">=5.3.0"
|
14 |
-
},
|
15 |
-
"autoload": {
|
16 |
-
"psr-4": {
|
17 |
-
"Psr\\SimpleCache\\": "src/"
|
18 |
-
}
|
19 |
-
},
|
20 |
-
"extra": {
|
21 |
-
"branch-alias": {
|
22 |
-
"dev-master": "1.0.x-dev"
|
23 |
-
}
|
24 |
-
}
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/psr/simple-cache/src/CacheException.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Psr\SimpleCache;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Interface used for all types of exceptions thrown by the implementing library.
|
7 |
-
*/
|
8 |
-
interface CacheException
|
9 |
-
{
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/psr/simple-cache/src/CacheInterface.php
DELETED
@@ -1,114 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Psr\SimpleCache;
|
4 |
-
|
5 |
-
interface CacheInterface
|
6 |
-
{
|
7 |
-
/**
|
8 |
-
* Fetches a value from the cache.
|
9 |
-
*
|
10 |
-
* @param string $key The unique key of this item in the cache.
|
11 |
-
* @param mixed $default Default value to return if the key does not exist.
|
12 |
-
*
|
13 |
-
* @return mixed The value of the item from the cache, or $default in case of cache miss.
|
14 |
-
*
|
15 |
-
* @throws \Psr\SimpleCache\InvalidArgumentException
|
16 |
-
* MUST be thrown if the $key string is not a legal value.
|
17 |
-
*/
|
18 |
-
public function get($key, $default = null);
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time.
|
22 |
-
*
|
23 |
-
* @param string $key The key of the item to store.
|
24 |
-
* @param mixed $value The value of the item to store, must be serializable.
|
25 |
-
* @param null|int|\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and
|
26 |
-
* the driver supports TTL then the library may set a default value
|
27 |
-
* for it or let the driver take care of that.
|
28 |
-
*
|
29 |
-
* @return bool True on success and false on failure.
|
30 |
-
*
|
31 |
-
* @throws \Psr\SimpleCache\InvalidArgumentException
|
32 |
-
* MUST be thrown if the $key string is not a legal value.
|
33 |
-
*/
|
34 |
-
public function set($key, $value, $ttl = null);
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Delete an item from the cache by its unique key.
|
38 |
-
*
|
39 |
-
* @param string $key The unique cache key of the item to delete.
|
40 |
-
*
|
41 |
-
* @return bool True if the item was successfully removed. False if there was an error.
|
42 |
-
*
|
43 |
-
* @throws \Psr\SimpleCache\InvalidArgumentException
|
44 |
-
* MUST be thrown if the $key string is not a legal value.
|
45 |
-
*/
|
46 |
-
public function delete($key);
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Wipes clean the entire cache's keys.
|
50 |
-
*
|
51 |
-
* @return bool True on success and false on failure.
|
52 |
-
*/
|
53 |
-
public function clear();
|
54 |
-
|
55 |
-
/**
|
56 |
-
* Obtains multiple cache items by their unique keys.
|
57 |
-
*
|
58 |
-
* @param iterable $keys A list of keys that can obtained in a single operation.
|
59 |
-
* @param mixed $default Default value to return for keys that do not exist.
|
60 |
-
*
|
61 |
-
* @return iterable A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value.
|
62 |
-
*
|
63 |
-
* @throws \Psr\SimpleCache\InvalidArgumentException
|
64 |
-
* MUST be thrown if $keys is neither an array nor a Traversable,
|
65 |
-
* or if any of the $keys are not a legal value.
|
66 |
-
*/
|
67 |
-
public function getMultiple($keys, $default = null);
|
68 |
-
|
69 |
-
/**
|
70 |
-
* Persists a set of key => value pairs in the cache, with an optional TTL.
|
71 |
-
*
|
72 |
-
* @param iterable $values A list of key => value pairs for a multiple-set operation.
|
73 |
-
* @param null|int|\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and
|
74 |
-
* the driver supports TTL then the library may set a default value
|
75 |
-
* for it or let the driver take care of that.
|
76 |
-
*
|
77 |
-
* @return bool True on success and false on failure.
|
78 |
-
*
|
79 |
-
* @throws \Psr\SimpleCache\InvalidArgumentException
|
80 |
-
* MUST be thrown if $values is neither an array nor a Traversable,
|
81 |
-
* or if any of the $values are not a legal value.
|
82 |
-
*/
|
83 |
-
public function setMultiple($values, $ttl = null);
|
84 |
-
|
85 |
-
/**
|
86 |
-
* Deletes multiple cache items in a single operation.
|
87 |
-
*
|
88 |
-
* @param iterable $keys A list of string-based keys to be deleted.
|
89 |
-
*
|
90 |
-
* @return bool True if the items were successfully removed. False if there was an error.
|
91 |
-
*
|
92 |
-
* @throws \Psr\SimpleCache\InvalidArgumentException
|
93 |
-
* MUST be thrown if $keys is neither an array nor a Traversable,
|
94 |
-
* or if any of the $keys are not a legal value.
|
95 |
-
*/
|
96 |
-
public function deleteMultiple($keys);
|
97 |
-
|
98 |
-
/**
|
99 |
-
* Determines whether an item is present in the cache.
|
100 |
-
*
|
101 |
-
* NOTE: It is recommended that has() is only to be used for cache warming type purposes
|
102 |
-
* and not to be used within your live applications operations for get/set, as this method
|
103 |
-
* is subject to a race condition where your has() will return true and immediately after,
|
104 |
-
* another script can remove it making the state of your app out of date.
|
105 |
-
*
|
106 |
-
* @param string $key The cache item key.
|
107 |
-
*
|
108 |
-
* @return bool
|
109 |
-
*
|
110 |
-
* @throws \Psr\SimpleCache\InvalidArgumentException
|
111 |
-
* MUST be thrown if the $key string is not a legal value.
|
112 |
-
*/
|
113 |
-
public function has($key);
|
114 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/psr/simple-cache/src/InvalidArgumentException.php
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Psr\SimpleCache;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Exception interface for invalid cache arguments.
|
7 |
-
*
|
8 |
-
* When an invalid argument is passed it must throw an exception which implements
|
9 |
-
* this interface
|
10 |
-
*/
|
11 |
-
interface InvalidArgumentException extends CacheException
|
12 |
-
{
|
13 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/ralouphie/getallheaders/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
The MIT License (MIT)
|
2 |
+
|
3 |
+
Copyright (c) 2014 Ralph Khattar
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
of this software and associated documentation files (the "Software"), to deal
|
7 |
+
in the Software without restriction, including without limitation the rights
|
8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
copies of the Software, and to permit persons to whom the Software is
|
10 |
+
furnished to do so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in all
|
13 |
+
copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
+
SOFTWARE.
|
vendor/ralouphie/getallheaders/README.md
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
getallheaders
|
2 |
+
=============
|
3 |
+
|
4 |
+
PHP `getallheaders()` polyfill. Compatible with PHP >= 5.3.
|
5 |
+
|
6 |
+
[![Build Status](https://travis-ci.org/ralouphie/getallheaders.svg?branch=master)](https://travis-ci.org/ralouphie/getallheaders)
|
7 |
+
[![Coverage Status](https://coveralls.io/repos/ralouphie/getallheaders/badge.png?branch=master)](https://coveralls.io/r/ralouphie/getallheaders?branch=master)
|
8 |
+
[![Latest Stable Version](https://poser.pugx.org/ralouphie/getallheaders/v/stable.png)](https://packagist.org/packages/ralouphie/getallheaders)
|
9 |
+
[![Latest Unstable Version](https://poser.pugx.org/ralouphie/getallheaders/v/unstable.png)](https://packagist.org/packages/ralouphie/getallheaders)
|
10 |
+
[![License](https://poser.pugx.org/ralouphie/getallheaders/license.png)](https://packagist.org/packages/ralouphie/getallheaders)
|
11 |
+
|
12 |
+
|
13 |
+
This is a simple polyfill for [`getallheaders()`](http://www.php.net/manual/en/function.getallheaders.php).
|
14 |
+
|
15 |
+
## Install
|
16 |
+
|
17 |
+
For PHP version **`>= 5.6`**:
|
18 |
+
|
19 |
+
```
|
20 |
+
composer require ralouphie/getallheaders
|
21 |
+
```
|
22 |
+
|
23 |
+
For PHP version **`< 5.6`**:
|
24 |
+
|
25 |
+
```
|
26 |
+
composer require ralouphie/getallheaders "^2"
|
27 |
+
```
|
vendor/ralouphie/getallheaders/composer.json
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "ralouphie/getallheaders",
|
3 |
+
"description": "A polyfill for getallheaders.",
|
4 |
+
"license": "MIT",
|
5 |
+
"authors": [
|
6 |
+
{
|
7 |
+
"name": "Ralph Khattar",
|
8 |
+
"email": "ralph.khattar@gmail.com"
|
9 |
+
}
|
10 |
+
],
|
11 |
+
"require": {
|
12 |
+
"php": ">=5.6"
|
13 |
+
},
|
14 |
+
"require-dev": {
|
15 |
+
"phpunit/phpunit": "^5 || ^6.5",
|
16 |
+
"php-coveralls/php-coveralls": "^2.1"
|
17 |
+
},
|
18 |
+
"autoload": {
|
19 |
+
"files": ["src/getallheaders.php"]
|
20 |
+
},
|
21 |
+
"autoload-dev": {
|
22 |
+
"psr-4": {
|
23 |
+
"getallheaders\\Tests\\": "tests/"
|
24 |
+
}
|
25 |
+
}
|
26 |
+
}
|
vendor/ralouphie/getallheaders/src/getallheaders.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if (!function_exists('getallheaders')) {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Get all HTTP header key/values as an associative array for the current request.
|
7 |
+
*
|
8 |
+
* @return string[string] The HTTP header key/value pairs.
|
9 |
+
*/
|
10 |
+
function getallheaders()
|
11 |
+
{
|
12 |
+
$headers = array();
|
13 |
+
|
14 |
+
$copy_server = array(
|
15 |
+
'CONTENT_TYPE' => 'Content-Type',
|
16 |
+
'CONTENT_LENGTH' => 'Content-Length',
|
17 |
+
'CONTENT_MD5' => 'Content-Md5',
|
18 |
+
);
|
19 |
+
|
20 |
+
foreach ($_SERVER as $key => $value) {
|
21 |
+
if (substr($key, 0, 5) === 'HTTP_') {
|
22 |
+
$key = substr($key, 5);
|
23 |
+
if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) {
|
24 |
+
$key = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $key))));
|
25 |
+
$headers[$key] = $value;
|
26 |
+
}
|
27 |
+
} elseif (isset($copy_server[$key])) {
|
28 |
+
$headers[$copy_server[$key]] = $value;
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
if (!isset($headers['Authorization'])) {
|
33 |
+
if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
|
34 |
+
$headers['Authorization'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
|
35 |
+
} elseif (isset($_SERVER['PHP_AUTH_USER'])) {
|
36 |
+
$basic_pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
|
37 |
+
$headers['Authorization'] = 'Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $basic_pass);
|
38 |
+
} elseif (isset($_SERVER['PHP_AUTH_DIGEST'])) {
|
39 |
+
$headers['Authorization'] = $_SERVER['PHP_AUTH_DIGEST'];
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
return $headers;
|
44 |
+
}
|
45 |
+
|
46 |
+
}
|
vendor/wp-oop/transient-cache/CHANGELOG.md
DELETED
@@ -1,30 +0,0 @@
|
|
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.1.0-alpha3] - 2020-07-08
|
10 |
-
### Added
|
11 |
-
- Missing function imports.
|
12 |
-
|
13 |
-
### Changed
|
14 |
-
- (#13) Improved exception messages
|
15 |
-
|
16 |
-
## [0.1.0-alpha2] - 2020-04-19
|
17 |
-
### Fixed
|
18 |
-
- False-negative check used to confirm the negative because of wrong option name.
|
19 |
-
- Non-getter interface methods of `CachePool` now return `true` on success.
|
20 |
-
- Non-getter interface methods of `CachePool` now declare and throw proper exceptions.
|
21 |
-
|
22 |
-
### Added
|
23 |
-
- `SilentPool`, which wraps cache pools that throw non-PSR-16 exceptions and suppress them, making the pool compatible (#7).
|
24 |
-
- Missing documentation.
|
25 |
-
|
26 |
-
### Changed
|
27 |
-
- Centralized behaviour like option deletion, and option/transient retrieval/assignment.
|
28 |
-
|
29 |
-
## [0.1.0-alpha1] - 2020-04-14
|
30 |
-
Initial version.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/wp-oop/transient-cache/README.md
DELETED
@@ -1,105 +0,0 @@
|
|
1 |
-
# WP Transient Cache
|
2 |
-
|
3 |
-
[![Build Status](https://travis-ci.com/wp-oop/transient-cache.svg?branch=develop)](https://travis-ci.org/wp-oop/transient-cache)
|
4 |
-
[![Latest Stable Version](https://poser.pugx.org/wp-oop/transient-cache/version)](https://packagist.org/packages/wp-oop/transient-cache)
|
5 |
-
|
6 |
-
A fully compliant [PSR-16][] wrapper for WP transients.
|
7 |
-
|
8 |
-
## Details
|
9 |
-
A common means of caching values in WordPress is by using [transients][transients-api]. However, this approach suffers
|
10 |
-
from several problems:
|
11 |
-
|
12 |
-
1. Coupling to WordPress. You can't just suddenly substitute the caching mechanism you are using for another mechanism,
|
13 |
-
and everything still works.
|
14 |
-
2. No namespacing. All transients live in the same namespace, and independent consumers cannot reliably use
|
15 |
-
arbitrary keys without the risk of possible conflict.
|
16 |
-
3. No true modularity. Due to the above, if your application is [modular][`dhii/module-interface`], it cannot
|
17 |
-
decide which caching mechanisms to use for what, because that would have already been decided by your modules.
|
18 |
-
4. Missing features. For example, it is not possible to clear all values related to a particular thing in one go.
|
19 |
-
Exceptions are missing too, and you have to rely on ambiguous return values.
|
20 |
-
|
21 |
-
This standards-compliant wrapper addresses all of the above. It is a true PSR-16 cache, which uses WordPress
|
22 |
-
transients as storage. Exceptions are raised, interfaces implemented, and true false-negative detection is in place.
|
23 |
-
Each instance of the cache pool is logically independent from other instances, provided that it is given a unique
|
24 |
-
name. The application is once again in control, and modules that use cache can become platform agnostic.
|
25 |
-
|
26 |
-
### Compatibility
|
27 |
-
- `CachePool` and `CachePoolFactory` offer best-practices error handling, throwing meaningful exceptions
|
28 |
-
when something goes wrong. This violates PSR-16, but allows you to know what is failing.
|
29 |
-
- `SilentPool` and `SilentPoolFactory` offer PSR-16 compatibility at the cost of error handling,
|
30 |
-
hiding exceptions, and returning standards-compatible values. This complies with PSR-16, but at the cost of
|
31 |
-
clarity and verbosity.
|
32 |
-
|
33 |
-
### Usage
|
34 |
-
```php
|
35 |
-
/*
|
36 |
-
* Set up the factory - usually in a service definition
|
37 |
-
*/
|
38 |
-
use wpdb;
|
39 |
-
use Psr\SimpleCache\CacheInterface;
|
40 |
-
use WpOop\TransientCache\CachePoolFactory;
|
41 |
-
use WpOop\TransientCache\SilentPoolFactory;
|
42 |
-
|
43 |
-
/* @var $wpdb wpdb */
|
44 |
-
$factory = new CachePoolFactory($wpdb);
|
45 |
-
// Optionally hide exceptions for PSR-16 compatibility
|
46 |
-
$factory = new SilentPoolFactory($factory); // Optional, and not recommended for testing environments!
|
47 |
-
|
48 |
-
/*
|
49 |
-
* Create cache pools - usually somewhere else
|
50 |
-
*/
|
51 |
-
// Same wpdb instance used, default value generated automatically
|
52 |
-
$pool1 = $factory->createCachePool('client-access-tokens');
|
53 |
-
$pool2 = $factory->createCachePool('remote-api-responses');
|
54 |
-
$pool3 = $factory->createCachePool('other-stuff');
|
55 |
-
|
56 |
-
/*
|
57 |
-
* Use cache pools - usually injected into a client class
|
58 |
-
*/
|
59 |
-
|
60 |
-
// No collision of key between different pools
|
61 |
-
$pool1->set('123', $someToken);
|
62 |
-
$pool2->set('123', $someResponseBody);
|
63 |
-
$pool3->set('123', false);
|
64 |
-
|
65 |
-
// Depend on an interop standard
|
66 |
-
(function (CacheInterface $cache) {
|
67 |
-
// False negative detection: correctly determines that the value is actually `false`
|
68 |
-
$cache->has('123'); // true
|
69 |
-
$cache->get('123', uniqid('default')) === false; // true
|
70 |
-
})($pool3);
|
71 |
-
|
72 |
-
// Clear all values within a pool
|
73 |
-
$pool2->clear();
|
74 |
-
$pool2->has('123'); // false
|
75 |
-
$pool1->has('123'); // true
|
76 |
-
```
|
77 |
-
|
78 |
-
### Limitations
|
79 |
-
#### Key Length
|
80 |
-
Due to the way the underlying backend (the WordPress transients via options) works, **the combined length of the
|
81 |
-
pool name and cache key MUST NOT exceed a 171 char limit**. This is because (at least in WP 5.0+)
|
82 |
-
the [length of the `option_name` field of the `options` table is 191 chars][1], and transients require the longest
|
83 |
-
prefix of `_transient_timeout_` to the option name, which together with the 1-char separator is 20 chars. Using
|
84 |
-
anything greater than this length will result in potentially devastating behaviour described in [Trac #15058][].
|
85 |
-
|
86 |
-
In any case, the general recommendation is that **consumers SHOULD NOT use cache keys longer than 64 chars**,
|
87 |
-
as this is the minimal length required for support by the PSR-16 spec. Using anything longer than that will
|
88 |
-
cause consumers to become dependent on implementation detail, which breaks interoperability.
|
89 |
-
Given that, **the cache pool name SHOULD NOT exceed 107 chars**.
|
90 |
-
|
91 |
-
#### Value Length
|
92 |
-
The storage backend (WP options) [declares][2] the corresponding field to be of type [`LONGTEXT`][], which
|
93 |
-
[allows][3] up to **4 GB** (2<sup>32</sup>) of data. This is therefore the limit on cache values.
|
94 |
-
|
95 |
-
|
96 |
-
[transients-api]: https://codex.wordpress.org/Transients_API
|
97 |
-
[`dhii/module-interface`]: https://github.com/Dhii/module-interface
|
98 |
-
|
99 |
-
[PSR-16]: https://www.php-fig.org/psr/psr-16/
|
100 |
-
[`LONGTEXT`]: https://dev.mysql.com/doc/refman/8.0/en/blob.html
|
101 |
-
|
102 |
-
[1]: https://github.com/WordPress/WordPress/blob/5.0-branch/wp-admin/includes/schema.php#L142
|
103 |
-
[2]: https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/schema.php#L144
|
104 |
-
[3]: https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html#data-types-storage-reqs-strings
|
105 |
-
[Trac #15058]: https://core.trac.wordpress.org/ticket/15058
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/wp-oop/transient-cache/composer.json
DELETED
@@ -1,37 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "wp-oop/transient-cache",
|
3 |
-
"description": "A PSR-16 wrapper for WP transients.",
|
4 |
-
"minimum-stability": "dev",
|
5 |
-
"license": "MIT",
|
6 |
-
"authors": [
|
7 |
-
{
|
8 |
-
"name": "Anton Ukhanev",
|
9 |
-
"email": "xedin.unknown@gmail.com",
|
10 |
-
"role": "Developer"
|
11 |
-
}
|
12 |
-
],
|
13 |
-
"require": {
|
14 |
-
"php": "^7.1",
|
15 |
-
"psr/simple-cache": "^1.0"
|
16 |
-
},
|
17 |
-
"require-dev": {
|
18 |
-
"phpunit/phpunit": "^7.1",
|
19 |
-
"johnpbloch/wordpress-core": "^5.0",
|
20 |
-
"brain/monkey": "^2.3"
|
21 |
-
},
|
22 |
-
"autoload": {
|
23 |
-
"psr-4": {
|
24 |
-
"WpOop\\TransientCache\\": "src"
|
25 |
-
}
|
26 |
-
},
|
27 |
-
"autoload-dev": {
|
28 |
-
"psr-4": {
|
29 |
-
"WpOop\\TransientCache\\Tests\\Func\\": "tests/functional"
|
30 |
-
}
|
31 |
-
},
|
32 |
-
"extra": {
|
33 |
-
"branch-alias": {
|
34 |
-
"dev-develop": "0.1.x-dev"
|
35 |
-
}
|
36 |
-
}
|
37 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/wp-oop/transient-cache/src/CachePool.php
DELETED
@@ -1,609 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
declare(strict_types=1);
|
3 |
-
|
4 |
-
namespace WpOop\TransientCache;
|
5 |
-
|
6 |
-
use DateInterval;
|
7 |
-
use DateTimeImmutable;
|
8 |
-
use Exception;
|
9 |
-
use Psr\SimpleCache\CacheInterface;
|
10 |
-
use RangeException;
|
11 |
-
use RuntimeException;
|
12 |
-
use wpdb;
|
13 |
-
use WpOop\TransientCache\Exception\CacheException;
|
14 |
-
use WpOop\TransientCache\Exception\InvalidArgumentException;
|
15 |
-
use Psr\SimpleCache\InvalidArgumentException as InvalidArgumentExceptionInterface;
|
16 |
-
|
17 |
-
use function is_int;
|
18 |
-
use function is_iterable;
|
19 |
-
use function is_null;
|
20 |
-
use function sprintf;
|
21 |
-
use function strlen;
|
22 |
-
use function strpos;
|
23 |
-
use function str_split;
|
24 |
-
use function substr;
|
25 |
-
use function delete_transient;
|
26 |
-
use function get_option;
|
27 |
-
use function get_transient;
|
28 |
-
use function set_transient;
|
29 |
-
|
30 |
-
/**
|
31 |
-
* {@inheritDoc}
|
32 |
-
*
|
33 |
-
* Uses WordPress transients as storage medium.
|
34 |
-
*/
|
35 |
-
class CachePool implements CacheInterface
|
36 |
-
{
|
37 |
-
public const RESERVED_KEY_SYMBOLS = '{}()/\@:';
|
38 |
-
public const NAMESPACE_SEPARATOR = '/';
|
39 |
-
|
40 |
-
protected const TABLE_NAME_OPTIONS = 'options';
|
41 |
-
protected const FIELD_NAME_OPTION_NAME = 'option_name';
|
42 |
-
protected const OPTION_NAME_PREFIX_TRANSIENT = '_transient_';
|
43 |
-
protected const OPTION_NAME_PREFIX_TIMEOUT = 'timeout_';
|
44 |
-
protected const OPTION_NAME_MAX_LENGTH = 191;
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @var wpdb
|
48 |
-
*/
|
49 |
-
protected $wpdb;
|
50 |
-
/**
|
51 |
-
* @var string
|
52 |
-
*/
|
53 |
-
protected $poolName;
|
54 |
-
/**
|
55 |
-
* @var mixed
|
56 |
-
*/
|
57 |
-
protected $defaultValue;
|
58 |
-
/**
|
59 |
-
* @var int|DateInterval
|
60 |
-
*/
|
61 |
-
protected $defaultTtl;
|
62 |
-
|
63 |
-
/**
|
64 |
-
* @param wpdb $wpdb The WP database object.
|
65 |
-
* @param string $poolName The name of this cache pool. Must be unique to this instance.
|
66 |
-
* @param mixed $defaultValue A random value. Used for false-negative detection. The more chaotic - the better.
|
67 |
-
* @param int|DateInterval $defaultTtl Default TTL to use when caching new entries.
|
68 |
-
*/
|
69 |
-
public function __construct(wpdb $wpdb, string $poolName, $defaultValue, $defaultTtl = 0)
|
70 |
-
{
|
71 |
-
if ($poolName === static::OPTION_NAME_PREFIX_TIMEOUT) {
|
72 |
-
throw new RangeException(sprintf('Pool name cannot be "%1$s"', static::OPTION_NAME_PREFIX_TIMEOUT));
|
73 |
-
}
|
74 |
-
|
75 |
-
$this->wpdb = $wpdb;
|
76 |
-
$this->poolName = $poolName;
|
77 |
-
$this->defaultValue = $defaultValue;
|
78 |
-
$this->defaultTtl = $defaultTtl;
|
79 |
-
}
|
80 |
-
|
81 |
-
/**
|
82 |
-
* @inheritDoc
|
83 |
-
*
|
84 |
-
* @throws CacheException If problem retrieving.
|
85 |
-
*/
|
86 |
-
public function get($key, $default = null)
|
87 |
-
{
|
88 |
-
$this->validateKey($key);
|
89 |
-
$transientKey = $this->prepareKey($key);
|
90 |
-
|
91 |
-
try {
|
92 |
-
$value = $this->getTransient($transientKey);
|
93 |
-
} catch (RangeException $e) {
|
94 |
-
return $default;
|
95 |
-
} catch (RuntimeException $e) {
|
96 |
-
$message = sprintf('Could not retrieve cache for key "%1$s": %2$s', $key, $e->getMessage());
|
97 |
-
throw new CacheException($message, 0, $e);
|
98 |
-
}
|
99 |
-
|
100 |
-
return $value;
|
101 |
-
}
|
102 |
-
|
103 |
-
/**
|
104 |
-
* @inheritDoc
|
105 |
-
*
|
106 |
-
* @throws CacheException If TTL cannot be normalized to a number of seconds.
|
107 |
-
* @throws InvalidArgumentException If TTL is invalid.
|
108 |
-
*/
|
109 |
-
public function set($key, $value, $ttl = null)
|
110 |
-
{
|
111 |
-
$this->validateKey($key);
|
112 |
-
$origKey = $key;
|
113 |
-
$key = $this->prepareKey($key);
|
114 |
-
|
115 |
-
$ttl = is_null($ttl) ? $this->defaultTtl : $ttl;
|
116 |
-
|
117 |
-
try {
|
118 |
-
$ttl = $ttl instanceof DateInterval
|
119 |
-
? $this->getIntervalDuration($ttl)
|
120 |
-
: $ttl;
|
121 |
-
} catch (Exception $e) {
|
122 |
-
throw new CacheException(sprintf('Could not normalize cache TTL: %s', $e->getMessage()));
|
123 |
-
}
|
124 |
-
|
125 |
-
if (!is_int($ttl)) {
|
126 |
-
throw new InvalidArgumentException('The specified cache TTL is invalid');
|
127 |
-
}
|
128 |
-
|
129 |
-
try {
|
130 |
-
$this->setTransient($key, $value, $ttl);
|
131 |
-
} catch (RuntimeException $e) {
|
132 |
-
$message = sprintf('Could not write value for key "%1$s" to cache: %2$s', $origKey, $e->getMessage());
|
133 |
-
throw new CacheException($message, 0, $e);
|
134 |
-
}
|
135 |
-
|
136 |
-
return true;
|
137 |
-
}
|
138 |
-
|
139 |
-
/**
|
140 |
-
* @inheritDoc
|
141 |
-
*
|
142 |
-
* @throws CacheException If problem deleting.
|
143 |
-
*/
|
144 |
-
public function delete($key)
|
145 |
-
{
|
146 |
-
$this->validateKey($key);
|
147 |
-
$origKey = $key;
|
148 |
-
$key = $this->prepareKey($key);
|
149 |
-
|
150 |
-
try {
|
151 |
-
$this->deleteTransient($key);
|
152 |
-
} catch (Exception $e) {
|
153 |
-
$message = sprintf('Failed to delete cache for key "%1$s": %2$s', $origKey, $e->getMessage());
|
154 |
-
throw new CacheException($message, 0, $e);
|
155 |
-
}
|
156 |
-
|
157 |
-
return true;
|
158 |
-
}
|
159 |
-
|
160 |
-
/**
|
161 |
-
* @inheritDoc
|
162 |
-
*
|
163 |
-
* @throws CacheException If problem clearing.
|
164 |
-
*/
|
165 |
-
public function clear()
|
166 |
-
{
|
167 |
-
try {
|
168 |
-
$keys = $this->getAllKeys();
|
169 |
-
$this->deleteMultiple($keys);
|
170 |
-
} catch (Exception|InvalidArgumentExceptionInterface $e) {
|
171 |
-
throw new CacheException(sprintf('Failed to clear cache: %s', $e->getMessage()), 0, $e);
|
172 |
-
}
|
173 |
-
|
174 |
-
return true;
|
175 |
-
}
|
176 |
-
|
177 |
-
/**
|
178 |
-
* @inheritDoc
|
179 |
-
*
|
180 |
-
* @throws CacheException If problem retrieving.
|
181 |
-
*/
|
182 |
-
public function getMultiple($keys, $default = null)
|
183 |
-
{
|
184 |
-
if (!is_iterable($keys)) {
|
185 |
-
throw new InvalidArgumentException('List of keys is not an iterable value');
|
186 |
-
}
|
187 |
-
|
188 |
-
$entries = [];
|
189 |
-
foreach ($keys as $key) {
|
190 |
-
$value = $this->get($key, $default);
|
191 |
-
$entries[$key] = $value;
|
192 |
-
}
|
193 |
-
|
194 |
-
return $entries;
|
195 |
-
}
|
196 |
-
|
197 |
-
/**
|
198 |
-
* @inheritDoc
|
199 |
-
*
|
200 |
-
* @throws CacheException If problem persisting.
|
201 |
-
*/
|
202 |
-
public function setMultiple($values, $ttl = null)
|
203 |
-
{
|
204 |
-
if (!is_iterable($values)) {
|
205 |
-
throw new InvalidArgumentException('List of keys is not an iterable value');
|
206 |
-
}
|
207 |
-
|
208 |
-
try {
|
209 |
-
$ttl = $ttl instanceof DateInterval
|
210 |
-
? $this->getIntervalDuration($ttl)
|
211 |
-
: $ttl;
|
212 |
-
} catch (Exception $e) {
|
213 |
-
throw new CacheException(sprintf('Could not normalize cache TTL: %s', $e->getMessage()));
|
214 |
-
}
|
215 |
-
|
216 |
-
foreach ($values as $key => $value) {
|
217 |
-
$this->set($key, $value, $ttl);
|
218 |
-
}
|
219 |
-
|
220 |
-
return true;
|
221 |
-
}
|
222 |
-
|
223 |
-
/**
|
224 |
-
* @inheritDoc
|
225 |
-
*
|
226 |
-
* @throws CacheException If problem deleting.
|
227 |
-
*/
|
228 |
-
public function deleteMultiple($keys)
|
229 |
-
{
|
230 |
-
if (!is_iterable($keys)) {
|
231 |
-
throw new InvalidArgumentException('List of keys is not an iterable value');
|
232 |
-
}
|
233 |
-
|
234 |
-
foreach ($keys as $key) {
|
235 |
-
$this->delete($key);
|
236 |
-
}
|
237 |
-
|
238 |
-
return true;
|
239 |
-
}
|
240 |
-
|
241 |
-
/**
|
242 |
-
* @inheritDoc
|
243 |
-
*
|
244 |
-
* @throws CacheException If problem determining.
|
245 |
-
*/
|
246 |
-
public function has($key)
|
247 |
-
{
|
248 |
-
$default = $this->defaultValue;
|
249 |
-
$value = $this->get($key, $default);
|
250 |
-
|
251 |
-
return $value !== $default;
|
252 |
-
}
|
253 |
-
|
254 |
-
/**
|
255 |
-
* Retrieves a transient value, by key.
|
256 |
-
*
|
257 |
-
* @param string $key The transient key.
|
258 |
-
*
|
259 |
-
* @return mixed The transient value.
|
260 |
-
*
|
261 |
-
* @throws RangeException If transient for key not found.
|
262 |
-
* @throws RuntimeException If problem retrieving.
|
263 |
-
*/
|
264 |
-
protected function getTransient(string $key)
|
265 |
-
{
|
266 |
-
$value = $this->getTransientOriginal($key);
|
267 |
-
|
268 |
-
if ($value !== false) {
|
269 |
-
return $value;
|
270 |
-
}
|
271 |
-
|
272 |
-
$prefix = static::OPTION_NAME_PREFIX_TRANSIENT;
|
273 |
-
$optionKey = "{$prefix}{$key}";
|
274 |
-
|
275 |
-
try {
|
276 |
-
$this->getOption($optionKey);
|
277 |
-
} catch (RangeException $e) {
|
278 |
-
throw new RangeException(sprintf('Transient for key "%1$s" does not exist', $key), 0, $e);
|
279 |
-
} catch (RuntimeException $e) {
|
280 |
-
throw new RuntimeException(sprintf('Could not verify existence of transient "%1$s"', $key), 0, $e);
|
281 |
-
}
|
282 |
-
|
283 |
-
return $value;
|
284 |
-
}
|
285 |
-
|
286 |
-
/**
|
287 |
-
* Retrieves a transient value as is.
|
288 |
-
*
|
289 |
-
* @param string $key The transient key.
|
290 |
-
*
|
291 |
-
* @return mixed The transient value.
|
292 |
-
*/
|
293 |
-
protected function getTransientOriginal(string $key)
|
294 |
-
{
|
295 |
-
$value = get_transient($key);
|
296 |
-
|
297 |
-
return $value;
|
298 |
-
}
|
299 |
-
|
300 |
-
/**
|
301 |
-
* Assigns a transient value, by key.
|
302 |
-
*
|
303 |
-
* @param string $key The transient key.
|
304 |
-
* @param mixed $value The transient value. Any serializable object.
|
305 |
-
* @param int $ttl The amount of seconds after which the transient will expire.
|
306 |
-
*
|
307 |
-
* @throws RangeException If key invalid.
|
308 |
-
* @throws RuntimeException If problem setting.
|
309 |
-
*/
|
310 |
-
protected function setTransient(string $key, $value, int $ttl): void
|
311 |
-
{
|
312 |
-
$this->validateTransientKey($key);
|
313 |
-
|
314 |
-
if(!set_transient($key, $value, $ttl)) {
|
315 |
-
throw new RuntimeException(sprintf('set_transient() failed with key "%1$s" with TTL %2$ss', $key, $ttl));
|
316 |
-
}
|
317 |
-
}
|
318 |
-
|
319 |
-
/**
|
320 |
-
* Retrieves an option value by name.
|
321 |
-
*
|
322 |
-
* @param string $key The option name.
|
323 |
-
*
|
324 |
-
* @return mixed The option value.
|
325 |
-
*
|
326 |
-
* @throws RangeException If option value does not exist.
|
327 |
-
* @throws RuntimeException If problem retrieving option.
|
328 |
-
*/
|
329 |
-
protected function getOption(string $key)
|
330 |
-
{
|
331 |
-
$errorValue = $this->defaultValue;
|
332 |
-
$value = $this->getOptionOriginal($key, $errorValue);
|
333 |
-
|
334 |
-
if ($value === $errorValue) {
|
335 |
-
throw new RangeException(sprintf('Option for key "%1$s" does not exist', $key));
|
336 |
-
}
|
337 |
-
|
338 |
-
return $value;
|
339 |
-
}
|
340 |
-
|
341 |
-
/**
|
342 |
-
* Retrieves an option value by name.
|
343 |
-
*
|
344 |
-
* @param string $key The option key.
|
345 |
-
* @param null $default The value to return if option not found.
|
346 |
-
*
|
347 |
-
* @return mixed The option value.
|
348 |
-
*/
|
349 |
-
protected function getOptionOriginal(string $key, $default = null)
|
350 |
-
{
|
351 |
-
return get_option($key, $default);
|
352 |
-
}
|
353 |
-
|
354 |
-
/**
|
355 |
-
* Deletes a transient with the specified key.
|
356 |
-
*
|
357 |
-
* @param string $key The key to delete a transient for.
|
358 |
-
*
|
359 |
-
* @throws RuntimeException If problem deleting.
|
360 |
-
*/
|
361 |
-
protected function deleteTransient(string $key): void
|
362 |
-
{
|
363 |
-
if (!delete_transient($key)) {
|
364 |
-
throw new RuntimeException(sprintf('delete_transient() failed for key "%1$s"', $key));
|
365 |
-
}
|
366 |
-
}
|
367 |
-
|
368 |
-
/**
|
369 |
-
* Validates a cache key.
|
370 |
-
*
|
371 |
-
* @param string $key The key to validate.
|
372 |
-
*
|
373 |
-
* @throws InvalidArgumentException If key is invalid.
|
374 |
-
*/
|
375 |
-
protected function validateKey(string $key)
|
376 |
-
{
|
377 |
-
$prefix = $this->getTimeoutOptionNamePrefix();
|
378 |
-
if (strlen("{$prefix}{$key}") > static::OPTION_NAME_MAX_LENGTH) {
|
379 |
-
throw new InvalidArgumentException(sprintf(
|
380 |
-
'Given the %1$d char length of this cache pool\'s name, the key length must not exceed %2$d chars',
|
381 |
-
strlen($this->poolName),
|
382 |
-
static::OPTION_NAME_MAX_LENGTH - strlen($prefix)
|
383 |
-
));
|
384 |
-
}
|
385 |
-
|
386 |
-
$reservedSymbols = str_split(static::RESERVED_KEY_SYMBOLS, 1);
|
387 |
-
|
388 |
-
foreach ($reservedSymbols as $symbol) {
|
389 |
-
if (strpos($key, $symbol) !== false) {
|
390 |
-
throw new InvalidArgumentException(sprintf('Cache key "%1$s" is invalid', $key));
|
391 |
-
}
|
392 |
-
}
|
393 |
-
}
|
394 |
-
|
395 |
-
/**
|
396 |
-
* Validates a transient key.
|
397 |
-
*
|
398 |
-
* @param string $key The key to validate.
|
399 |
-
*
|
400 |
-
* @throws RangeException If key is invalid.
|
401 |
-
*/
|
402 |
-
protected function validateTransientKey(string $key): void
|
403 |
-
{
|
404 |
-
$maxLength = $this->getTransientKeyMaxLength();
|
405 |
-
$keyLength = strlen($key);
|
406 |
-
if ($keyLength > $maxLength) {
|
407 |
-
throw new RangeException(sprintf('Transient key "%1$s" length is %2$d chars, which exceeds max length of %3$d chars', $key, $keyLength, $maxLength));
|
408 |
-
}
|
409 |
-
}
|
410 |
-
|
411 |
-
/**
|
412 |
-
* Retrieves the amount of characters at most allowed in a transient key.
|
413 |
-
*
|
414 |
-
* @return int The amount of characters.
|
415 |
-
*/
|
416 |
-
protected function getTransientKeyMaxLength(): int
|
417 |
-
{
|
418 |
-
$longestPrefix = $this->getTransientTimeoutOptionNamePrefix();
|
419 |
-
$keyMaxLength = static::OPTION_NAME_MAX_LENGTH - strlen($longestPrefix);
|
420 |
-
|
421 |
-
return $keyMaxLength;
|
422 |
-
}
|
423 |
-
|
424 |
-
/**
|
425 |
-
* Prepares a cache key, giving it a namespace.
|
426 |
-
*
|
427 |
-
* @param string $key The key to prepare.
|
428 |
-
*
|
429 |
-
* @return string The prepared key.
|
430 |
-
*/
|
431 |
-
protected function prepareKey(string $key): string
|
432 |
-
{
|
433 |
-
$namespace = $this->poolName;
|
434 |
-
$separator = static::NAMESPACE_SEPARATOR;
|
435 |
-
return "{$namespace}{$separator}{$key}";
|
436 |
-
}
|
437 |
-
|
438 |
-
/**
|
439 |
-
* Retrieves all keys that correspond to this cache pool.
|
440 |
-
*
|
441 |
-
* @throws Exception If problem retrieving.
|
442 |
-
*
|
443 |
-
* @return iterable A list of keys.
|
444 |
-
*/
|
445 |
-
protected function getAllKeys(): iterable
|
446 |
-
{
|
447 |
-
$tableName = $this->getTableName(static::TABLE_NAME_OPTIONS);
|
448 |
-
$fieldName = static::FIELD_NAME_OPTION_NAME;
|
449 |
-
$prefix = $this->getOptionNamePrefix();
|
450 |
-
$query = "SELECT `$fieldName` FROM `$tableName` WHERE `$fieldName` LIKE '%$prefix'";
|
451 |
-
$results = $this->selectColumn($query, $fieldName);
|
452 |
-
$keys = $this->getCacheKeysFromOptionNames($results);
|
453 |
-
|
454 |
-
return $keys;
|
455 |
-
}
|
456 |
-
|
457 |
-
/**
|
458 |
-
* Runs a SELECT query, and retrieves a list of values for a field with the specified name.
|
459 |
-
*
|
460 |
-
* @param string $query The SELECT query.
|
461 |
-
* @param string $columnName The name of the field to retrieve.
|
462 |
-
* @param array $args Query parameters.
|
463 |
-
*
|
464 |
-
* @return iterable The list of values for the specified field.
|
465 |
-
*/
|
466 |
-
protected function selectColumn(string $query, string $columnName, array $args = []): iterable
|
467 |
-
{
|
468 |
-
$query = $this->prepareQuery($query, $args);
|
469 |
-
$results = $this->wpdb->get_col($query, $columnName);
|
470 |
-
|
471 |
-
return $results;
|
472 |
-
}
|
473 |
-
|
474 |
-
/**
|
475 |
-
* Retrieve the name of a DB table by its identifier.
|
476 |
-
*
|
477 |
-
* @param string $identifier The table identifier.
|
478 |
-
*
|
479 |
-
* @return string The table name in the DB.
|
480 |
-
*/
|
481 |
-
protected function getTableName(string $identifier): string
|
482 |
-
{
|
483 |
-
$prefix = $this->wpdb->prefix;
|
484 |
-
$tableName = "{$prefix}{$identifier}";
|
485 |
-
|
486 |
-
return $tableName;
|
487 |
-
}
|
488 |
-
|
489 |
-
/**
|
490 |
-
* Prepares a parameterized query.
|
491 |
-
*
|
492 |
-
* @param string $query The query to prepare. May include placeholders.
|
493 |
-
* @param array $params The parameters that will replace corresponding placeholders in the query.
|
494 |
-
*
|
495 |
-
* @return string The prepared query. Parameters will be interpolated.
|
496 |
-
*/
|
497 |
-
protected function prepareQuery(string $query, array $params = []): string
|
498 |
-
{
|
499 |
-
if (empty($params)) {
|
500 |
-
return $query;
|
501 |
-
}
|
502 |
-
|
503 |
-
$prepared = $this->wpdb->prepare($query, ...$params);
|
504 |
-
|
505 |
-
return $prepared;
|
506 |
-
}
|
507 |
-
|
508 |
-
/**
|
509 |
-
* Retrieves all cache keys that correspond to the given list of option names
|
510 |
-
*
|
511 |
-
* @param iterable $optionNames
|
512 |
-
*
|
513 |
-
* @throws Exception If problem retrieving.
|
514 |
-
*
|
515 |
-
* @return iterable A list of cache keys.
|
516 |
-
*/
|
517 |
-
protected function getCacheKeysFromOptionNames(iterable $optionNames): iterable
|
518 |
-
{
|
519 |
-
$keys = [];
|
520 |
-
|
521 |
-
foreach ($optionNames as $name) {
|
522 |
-
$key = $this->getCacheKeyFromOptionName($name);
|
523 |
-
$keys[] = $key;
|
524 |
-
}
|
525 |
-
|
526 |
-
return $keys;
|
527 |
-
}
|
528 |
-
|
529 |
-
/**
|
530 |
-
* Retrieves the prefix of option names that represent transients of this cache pool.
|
531 |
-
*
|
532 |
-
* @return string The prefix.
|
533 |
-
*/
|
534 |
-
protected function getOptionNamePrefix(): string
|
535 |
-
{
|
536 |
-
$transientPrefix = static::OPTION_NAME_PREFIX_TRANSIENT;
|
537 |
-
$separator = static::NAMESPACE_SEPARATOR;
|
538 |
-
$namespace = $this->poolName;
|
539 |
-
$prefix = "{$transientPrefix}{$namespace}{$separator}";
|
540 |
-
|
541 |
-
return $prefix;
|
542 |
-
}
|
543 |
-
|
544 |
-
/**
|
545 |
-
* Retrieves the prefix of option names that represent transient timeouts of this cache pool.
|
546 |
-
*
|
547 |
-
* @return string The prefix.
|
548 |
-
*/
|
549 |
-
protected function getTimeoutOptionNamePrefix(): string
|
550 |
-
{
|
551 |
-
$transientPrefix = $this->getTransientTimeoutOptionNamePrefix();
|
552 |
-
$separator = static::NAMESPACE_SEPARATOR;
|
553 |
-
$namespace = $this->poolName;
|
554 |
-
$prefix = "{$transientPrefix}{$namespace}{$separator}";
|
555 |
-
|
556 |
-
return $prefix;
|
557 |
-
}
|
558 |
-
|
559 |
-
/**
|
560 |
-
* Retrieves the prefix of an option name that represents a transient timeout.
|
561 |
-
*
|
562 |
-
* This is the longest prefix of transient options.
|
563 |
-
*
|
564 |
-
* @return string The prefix.
|
565 |
-
*/
|
566 |
-
protected function getTransientTimeoutOptionNamePrefix(): string
|
567 |
-
{
|
568 |
-
return static::OPTION_NAME_PREFIX_TRANSIENT . static::OPTION_NAME_PREFIX_TIMEOUT;
|
569 |
-
}
|
570 |
-
|
571 |
-
/**
|
572 |
-
* Retrieves the cache key that corresponds to the specified option name.
|
573 |
-
*
|
574 |
-
* @param string $name The option name.
|
575 |
-
*
|
576 |
-
* @return string The cache key.
|
577 |
-
*
|
578 |
-
* @throws Exception If problem determining key.
|
579 |
-
*/
|
580 |
-
protected function getCacheKeyFromOptionName(string $name): string
|
581 |
-
{
|
582 |
-
$prefix = $this->getOptionNamePrefix();
|
583 |
-
|
584 |
-
if (strpos($name, $prefix) !== 0) {
|
585 |
-
throw new RangeException(sprintf('Option name "%1$s" is not formed according to this cache pool', $name));
|
586 |
-
}
|
587 |
-
|
588 |
-
$key = substr($name, strlen($prefix));
|
589 |
-
|
590 |
-
return $key;
|
591 |
-
}
|
592 |
-
|
593 |
-
/**
|
594 |
-
* Retrieves the total duration from an interval.
|
595 |
-
*
|
596 |
-
* @param DateInterval $interval The interval.
|
597 |
-
*
|
598 |
-
* @throws Exception If problem retrieving.
|
599 |
-
*
|
600 |
-
* @return int The duration in seconds.
|
601 |
-
*/
|
602 |
-
protected function getIntervalDuration(DateInterval $interval): int
|
603 |
-
{
|
604 |
-
$reference = new DateTimeImmutable();
|
605 |
-
$endTime = $reference->add($interval);
|
606 |
-
|
607 |
-
return $endTime->getTimestamp() - $reference->getTimestamp();
|
608 |
-
}
|
609 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/wp-oop/transient-cache/src/CachePoolFactory.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
declare(strict_types=1);
|
3 |
-
|
4 |
-
namespace WpOop\TransientCache;
|
5 |
-
|
6 |
-
use DateInterval;
|
7 |
-
use Psr\SimpleCache\CacheInterface;
|
8 |
-
use wpdb;
|
9 |
-
|
10 |
-
use function uniqid;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* @inheritDoc
|
14 |
-
*/
|
15 |
-
class CachePoolFactory implements CachePoolFactoryInterface
|
16 |
-
{
|
17 |
-
/**
|
18 |
-
* @var wpdb
|
19 |
-
*/
|
20 |
-
protected $wpdb;
|
21 |
-
/**
|
22 |
-
* @var int|DateInterval
|
23 |
-
*/
|
24 |
-
protected $defaultTtl;
|
25 |
-
|
26 |
-
/**
|
27 |
-
* @param wpdb $wpdb The WP database adapter.
|
28 |
-
* @param int $defaultTtl The TTL to use if no TTL is supplied at consumption time.
|
29 |
-
*/
|
30 |
-
public function __construct(wpdb $wpdb, $defaultTtl = 0)
|
31 |
-
{
|
32 |
-
$this->wpdb = $wpdb;
|
33 |
-
$this->defaultTtl = $defaultTtl;
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* @inheritDoc
|
38 |
-
*/
|
39 |
-
public function createCachePool(string $poolName): CacheInterface
|
40 |
-
{
|
41 |
-
$default = uniqid('default');
|
42 |
-
$pool = new CachePool($this->wpdb, $poolName, $default, $this->defaultTtl);
|
43 |
-
|
44 |
-
return $pool;
|
45 |
-
}
|
46 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/wp-oop/transient-cache/src/CachePoolFactoryInterface.php
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
declare(strict_types=1);
|
3 |
-
|
4 |
-
namespace WpOop\TransientCache;
|
5 |
-
|
6 |
-
use Psr\SimpleCache\CacheInterface;
|
7 |
-
|
8 |
-
/**
|
9 |
-
* A factory that can create cache pool.
|
10 |
-
*/
|
11 |
-
interface CachePoolFactoryInterface
|
12 |
-
{
|
13 |
-
/**
|
14 |
-
* Creates a new cache pool.
|
15 |
-
*
|
16 |
-
* @param string $poolName The unique pool name.
|
17 |
-
*
|
18 |
-
* @return CacheInterface The new pool.
|
19 |
-
*/
|
20 |
-
public function createCachePool(string $poolName): CacheInterface;
|
21 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/wp-oop/transient-cache/src/Exception/CacheException.php
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
declare(strict_types=1);
|
3 |
-
|
4 |
-
namespace WpOop\TransientCache\Exception;
|
5 |
-
|
6 |
-
use Exception;
|
7 |
-
use Psr\SimpleCache\CacheException as CacheExceptionInterface;
|
8 |
-
|
9 |
-
/**
|
10 |
-
* @inheritDoc
|
11 |
-
*/
|
12 |
-
class CacheException extends Exception implements CacheExceptionInterface
|
13 |
-
{
|
14 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/wp-oop/transient-cache/src/Exception/InvalidArgumentException.php
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
declare(strict_types=1);
|
3 |
-
|
4 |
-
namespace WpOop\TransientCache\Exception;
|
5 |
-
|
6 |
-
use InvalidArgumentException as NativeInvalidArgumentException;
|
7 |
-
use Psr\SimpleCache\InvalidArgumentException as PsrInvalidArgumentException;
|
8 |
-
|
9 |
-
/**
|
10 |
-
* @inheritDoc
|
11 |
-
*/
|
12 |
-
class InvalidArgumentException extends NativeInvalidArgumentException implements PsrInvalidArgumentException
|
13 |
-
{
|
14 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/wp-oop/transient-cache/src/SilentPool.php
DELETED
@@ -1,154 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
declare(strict_types=1);
|
3 |
-
|
4 |
-
namespace WpOop\TransientCache;
|
5 |
-
|
6 |
-
use Exception;
|
7 |
-
use Psr\SimpleCache\InvalidArgumentException as InvalidArgumentExceptionInterface;
|
8 |
-
use Psr\SimpleCache\CacheInterface;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Wraps a pool that throws wrong exceptions in a 100% PSR-compliant one by hiding exceptions :(
|
12 |
-
*
|
13 |
-
* Homage to excellent SilentPool gin.
|
14 |
-
*/
|
15 |
-
class SilentPool implements CacheInterface
|
16 |
-
{
|
17 |
-
/**
|
18 |
-
* @var CacheInterface
|
19 |
-
*/
|
20 |
-
protected $cache;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* @param CacheInterface $cache A possibly non-compliant cache pool.
|
24 |
-
*/
|
25 |
-
public function __construct(CacheInterface $cache)
|
26 |
-
{
|
27 |
-
$this->cache = $cache;
|
28 |
-
}
|
29 |
-
|
30 |
-
/**
|
31 |
-
* @inheritDoc
|
32 |
-
*/
|
33 |
-
public function get($key, $default = null)
|
34 |
-
{
|
35 |
-
try {
|
36 |
-
return $this->cache->get($key);
|
37 |
-
} catch (Exception $e) {
|
38 |
-
if ($e instanceof InvalidArgumentExceptionInterface) {
|
39 |
-
throw $e;
|
40 |
-
}
|
41 |
-
|
42 |
-
return $default;
|
43 |
-
}
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @inheritDoc
|
48 |
-
*/
|
49 |
-
public function set($key, $value, $ttl = null)
|
50 |
-
{
|
51 |
-
try {
|
52 |
-
return $this->cache->set($key, $value, $ttl);
|
53 |
-
} catch (Exception $e) {
|
54 |
-
if ($e instanceof InvalidArgumentExceptionInterface) {
|
55 |
-
throw $e;
|
56 |
-
}
|
57 |
-
|
58 |
-
return false;
|
59 |
-
}
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* @inheritDoc
|
64 |
-
*/
|
65 |
-
public function delete($key)
|
66 |
-
{
|
67 |
-
try {
|
68 |
-
return $this->cache->delete($key);
|
69 |
-
} catch (Exception $e) {
|
70 |
-
if ($e instanceof InvalidArgumentExceptionInterface) {
|
71 |
-
throw $e;
|
72 |
-
}
|
73 |
-
|
74 |
-
return false;
|
75 |
-
}
|
76 |
-
}
|
77 |
-
|
78 |
-
/**
|
79 |
-
* @inheritDoc
|
80 |
-
*/
|
81 |
-
public function clear()
|
82 |
-
{
|
83 |
-
try {
|
84 |
-
return $this->cache->clear();
|
85 |
-
} catch (Exception $e) {
|
86 |
-
|
87 |
-
return false;
|
88 |
-
}
|
89 |
-
}
|
90 |
-
|
91 |
-
/**
|
92 |
-
* @inheritDoc
|
93 |
-
*/
|
94 |
-
public function getMultiple($keys, $default = null)
|
95 |
-
{
|
96 |
-
try {
|
97 |
-
return $this->cache->getMultiple($keys, $default);
|
98 |
-
} catch (Exception $e) {
|
99 |
-
if ($e instanceof InvalidArgumentExceptionInterface) {
|
100 |
-
throw $e;
|
101 |
-
}
|
102 |
-
|
103 |
-
return [];
|
104 |
-
}
|
105 |
-
}
|
106 |
-
|
107 |
-
/**
|
108 |
-
* @inheritDoc
|
109 |
-
*/
|
110 |
-
public function setMultiple($values, $ttl = null)
|
111 |
-
{
|
112 |
-
try {
|
113 |
-
return $this->cache->setMultiple($values, $ttl);
|
114 |
-
} catch (Exception $e) {
|
115 |
-
if ($e instanceof InvalidArgumentExceptionInterface) {
|
116 |
-
throw $e;
|
117 |
-
}
|
118 |
-
|
119 |
-
return false;
|
120 |
-
}
|
121 |
-
}
|
122 |
-
|
123 |
-
/**
|
124 |
-
* @inheritDoc
|
125 |
-
*/
|
126 |
-
public function deleteMultiple($keys)
|
127 |
-
{
|
128 |
-
try {
|
129 |
-
return $this->cache->deleteMultiple($keys);
|
130 |
-
} catch (Exception $e) {
|
131 |
-
if ($e instanceof InvalidArgumentExceptionInterface) {
|
132 |
-
throw $e;
|
133 |
-
}
|
134 |
-
|
135 |
-
return false;
|
136 |
-
}
|
137 |
-
}
|
138 |
-
|
139 |
-
/**
|
140 |
-
* @inheritDoc
|
141 |
-
*/
|
142 |
-
public function has($key)
|
143 |
-
{
|
144 |
-
try {
|
145 |
-
return $this->cache->has($key);
|
146 |
-
} catch (Exception $e) {
|
147 |
-
if ($e instanceof InvalidArgumentExceptionInterface) {
|
148 |
-
throw $e;
|
149 |
-
}
|
150 |
-
|
151 |
-
return false;
|
152 |
-
}
|
153 |
-
}
|
154 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/wp-oop/transient-cache/src/SilentPoolFactory.php
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
declare(strict_types=1);
|
3 |
-
|
4 |
-
namespace WpOop\TransientCache;
|
5 |
-
|
6 |
-
use Psr\SimpleCache\CacheInterface;
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Creates cache pools that throw only PSR-legal exceptions.
|
10 |
-
*/
|
11 |
-
class SilentPoolFactory implements CachePoolFactoryInterface
|
12 |
-
{
|
13 |
-
/**
|
14 |
-
* @var CachePoolFactoryInterface
|
15 |
-
*/
|
16 |
-
protected $factory;
|
17 |
-
|
18 |
-
/**
|
19 |
-
* @param CachePoolFactoryInterface $factory A factory of possibly non-compliant cache pools.
|
20 |
-
*/
|
21 |
-
public function __construct(CachePoolFactoryInterface $factory)
|
22 |
-
{
|
23 |
-
$this->factory = $factory;
|
24 |
-
}
|
25 |
-
|
26 |
-
/**
|
27 |
-
* @inheritDoc
|
28 |
-
*/
|
29 |
-
public function createCachePool(string $poolName): CacheInterface
|
30 |
-
{
|
31 |
-
return new SilentPool($this->factory->createCachePool($poolName));
|
32 |
-
}
|
33 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
woocommerce-paypal-payments.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: WooCommerce PayPal Payments
|
4 |
* Plugin URI: https://woocommerce.com/products/woocommerce-paypal-payments/
|
5 |
* Description: PayPal's latest complete payments processing solution. Accept PayPal, PayPal Credit, credit/debit cards, alternative digital wallets local payment types and bank accounts. Turn on only PayPal options or process a full suite of payment methods. Enable global transaction with extensive currency and country coverage.
|
6 |
-
* Version: 1.0.
|
7 |
* Author: WooCommerce
|
8 |
* Author URI: https://woocommerce.com/
|
9 |
* License: GPL-2.0
|
3 |
* Plugin Name: WooCommerce PayPal Payments
|
4 |
* Plugin URI: https://woocommerce.com/products/woocommerce-paypal-payments/
|
5 |
* Description: PayPal's latest complete payments processing solution. Accept PayPal, PayPal Credit, credit/debit cards, alternative digital wallets local payment types and bank accounts. Turn on only PayPal options or process a full suite of payment methods. Enable global transaction with extensive currency and country coverage.
|
6 |
+
* Version: 1.0.2
|
7 |
* Author: WooCommerce
|
8 |
* Author URI: https://woocommerce.com/
|
9 |
* License: GPL-2.0
|