├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── composer.json ├── composer.lock ├── config └── handlers.php ├── phpunit.xml ├── src ├── AstProcessor.php ├── Expression.php ├── ExpressionParser.php ├── HandlerProxy.php └── Handlers │ ├── BaseHandler.php │ ├── LaravelCollectionAdapter.php │ ├── Logical.php │ └── Standard.php └── tests ├── Expression └── ExpressionTest.php └── Providers └── ExpressionDataProvider.php /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | /.idea 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | php: 4 | - 7.1 5 | - 7.2 6 | - 7.3 7 | 8 | addons: 9 | chrome: stable 10 | 11 | branches: 12 | - master 13 | 14 | before_install: 15 | - phpenv config-rm xdebug.ini || true 16 | - travis_retry composer self-update 17 | 18 | install: 19 | - composer self-update 20 | - composer install --prefer-dist --no-interaction 21 | 22 | sudo: true 23 | 24 | cache: 25 | directories: 26 | - $HOME/.composer/cache 27 | 28 | script: 29 | - composer lint 30 | - composer test 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Serhii Matrunchyk 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. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ⛓ Expression Parser v0.2.3 2 | 3 |
8 | 9 | This package allows to evaluate (parse with mapping) large amounts of data in flexible manner, providing various processing functions: 10 | 11 | ## 🔩 Install 12 | 13 | `composer install di/expression-parser` 14 | 15 | ## ⚒ Usage 16 | 17 | 18 | ``` 19 | // Signature 20 | $expression = new Expression(string $expression[, array $mappings = []]); 21 | ``` 22 | 23 | ## 👀 Example 24 | 25 | ``` 26 | use DI\ExpressionParser\Expression; 27 | 28 | $expression = 'or_x(equal([attr1], 1), in_array(explode([keywords]), "hello"))'; 29 | 30 | $mappings = [ 31 | 'attr1' => 1, 32 | 'keywords' => 'hello,world', 33 | ]; 34 | 35 | $ex = new Expression($expression, $mappings); 36 | 37 | echo $ex->value(); // true 38 | ``` 39 | 40 | 41 | 42 | 43 | ## Standard function handlers 44 | 45 | #### 🔗 Parameter substitution 46 | 47 | 📥 Input: 48 | 49 | ``` 50 | new Expression( 51 | '[attr1]', 52 | [ 53 | 'attr1' => 1, 54 | 'attr2' => 2, 55 | ] 56 | ) 57 | ``` 58 | 59 | 📤 Output: `1` 60 | 61 | 62 | 63 | #### 🔗 Parameter substitution with `has()` function 64 | 65 | 📥 Input: 66 | 67 | ``` 68 | new Expression( 69 | 'has([attr1])', 70 | [ 71 | 'attr1' => 1, 72 | 'attr2' => 2, 73 | ] 74 | ) 75 | ``` 76 | 77 | 📤 Output: `true` 78 | 79 | 80 | 81 | #### 🔗 Substitution with `in_array()` function and scalar value 82 | 83 | 📥 Input: 84 | 85 | ``` 86 | new Expression( 87 | 'in_array([keywords], "hello")', 88 | [ 89 | 'keywords' => [ 90 | 'hello', 91 | 'world', 92 | ], 93 | ] 94 | ) 95 | ``` 96 | 97 | 📤 Output: `true` 98 | 99 | 100 | #### 🔗 Nested `in_array()` and `explode()` function and scalar value 101 | 102 | 📥 Input: 103 | 104 | ``` 105 | new Expression( 106 | 'in_array(explode([keywords]), "hello")', 107 | [ 108 | 'keywords' => 'hello,world', 109 | ] 110 | ) 111 | ``` 112 | 113 | 📤 Output: `true` 114 | 115 | 116 | 117 | #### 🔗 Substitution with `matches_in_array()` function 118 | 119 | 📥 Input: 120 | 121 | ``` 122 | new Expression( 123 | 'matches_in_array([keywords], "pool")', 124 | [ 125 | 'keywords' => [ 126 | 'swimming pool', 127 | ], 128 | ] 129 | ) 130 | ``` 131 | 132 | 📤 Output: `true` 133 | 134 | 135 | 136 | #### 🔗 Nested `explode()` `is_empty()` and functions 137 | 138 | 📥 Input: 139 | 140 | ``` 141 | new Expression( 142 | 'is_empty(explode([keywords]))', 143 | [ 144 | 'keywords' => '', 145 | ] 146 | ) 147 | ``` 148 | 149 | 📤 Output: `true` 150 | 151 | 152 | 153 | #### 🔗 `implode()` with inline parameter substitution 154 | 155 | 📥 Input: 156 | 157 | ``` 158 | new Expression( 159 | 'implode(([attr1],[attr2]))', 160 | [ 161 | 'attr1' => 1, 162 | 'attr2' => 2, 163 | ] 164 | ) 165 | ``` 166 | 167 | 📤 Output: `hello world` 168 | 169 | 170 | 171 | #### 🔗 `implode()` with inline parameter substitution and a separator flag 172 | 173 | 📥 Input: 174 | 175 | ``` 176 | new Expression( 177 | 'implode(([attr1],[attr2]), ",")', 178 | [ 179 | 'attr1' => 1, 180 | 'attr2' => 2, 181 | ] 182 | ) 183 | ``` 184 | 185 | 📤 Output: `hello,world` 186 | 187 | 188 | 189 | #### 🔗 `explode()` with array substitution 190 | 191 | 📥 Input: 192 | 193 | ``` 194 | new Expression( 195 | 'explode([Rooms])', 196 | [ 197 | 'Rooms' => 'Pantry,Study', 198 | ] 199 | ) 200 | ``` 201 | 202 | 📤 Output: `['Pantry', 'Study']` 203 | 204 | 205 | 206 | ## Standard handlers with one or multiple flags 207 | 208 | 209 | #### 🔗 `explode()` with array substitution and a separator flag 210 | 211 | 📥 Input: 212 | 213 | ``` 214 | new Expression( 215 | 'explode([Rooms], ";")', 216 | [ 217 | 'Rooms' => 'Pantry;Study', 218 | ] 219 | ) 220 | ``` 221 | 222 | 📤 Output: `['Pantry', 'Study']` 223 | 224 | 225 | 226 | #### 🔗 `get()` function with `count` and `nullable` flags 227 | 228 | 📥 Input: 229 | 230 | ``` 231 | new Expression( 232 | 'get([attr1], {"count":true, "nullable":false})', 233 | [ 234 | 'attr1' => [ 235 | 'a', 236 | 'b', 237 | 'c', 238 | ], 239 | ] 240 | ) 241 | ``` 242 | 243 | 📤 Output: `3` 244 | 245 | 246 | 247 | #### 🔗 Nested mapping with `map` flag in `get()` function 248 | 249 | 📥 Input: 250 | 251 | ``` 252 | new Expression( 253 | 'get([attr1], {"map":{"a":1, "b": 2, "c": 3}})', 254 | [ 255 | 'attr1' => 'b', 256 | ] 257 | ) 258 | ``` 259 | 260 | 📤 Output: `2` 261 | 262 | 263 | #### 🔗 Case sensitive matching in array with `sensitive` flag 264 | 265 | 📥 Input: 266 | 267 | ``` 268 | new Expression( 269 | 'matches_in_array([keywords], "pool", {"sensitive":true})', 270 | [ 271 | 'keywords' => [ 272 | 'Swimming Pool', 273 | ], 274 | ] 275 | ) 276 | ``` 277 | 278 | 📤 Output: `false` 279 | 280 | 281 | 282 | ## Logical handlers 283 | 284 | 285 | #### 🔗 `equal()` function 286 | 287 | 📥 Input: 288 | 289 | ``` 290 | new Expression( 291 | 'equal([attr1], 1)', 292 | [ 293 | 'attr1' => 1, 294 | 'attr2' => 2, 295 | ] 296 | ) 297 | ``` 298 | 299 | 📤 Output: `true` 300 | 301 | 302 | 303 | #### 🔗 `great_than()` function 304 | 305 | 📥 Input: 306 | 307 | ``` 308 | new Expression( 309 | 'great_than([attr1], 0)', 310 | [ 311 | 'attr1' => 1, 312 | 'attr2' => 2, 313 | ] 314 | ) 315 | ``` 316 | 317 | 📤 Output: `true` 318 | 319 | 320 | 321 | #### 🔗 Nested `not()` and `equal()` functions 322 | 323 | 📥 Input: 324 | 325 | ``` 326 | new Expression( 327 | 'not(equal([attr1], 2))', 328 | [ 329 | 'attr1' => 1, 330 | 'attr2' => 2, 331 | ] 332 | ) 333 | ``` 334 | 335 | 📤 Output: `true` 336 | 337 | 338 | 339 | 340 | #### 🔗 Nested `not()` and `equal()` functions 341 | 342 | 📥 Input: 343 | 344 | ``` 345 | new Expression( 346 | 'not(equal([attr1], 2))', 347 | [ 348 | 'attr1' => 1, 349 | 'attr2' => 2, 350 | ] 351 | ) 352 | ``` 353 | 354 | 📤 Output: `true` 355 | 356 | 357 | ## Complex functions with unlimited nesting level 358 | 359 | 360 | #### 🔗 Multiple function parameter substitution with nesting with `and_x()` 361 | 362 | 📥 Input: 363 | 364 | ``` 365 | new Expression( 366 | 'and_x(equal([attr1], 1), in_array(explode([attr2]), "hello"))', 367 | [ 368 | 'attr1' => 1, 369 | 'attr2' => 'hello,world', 370 | ] 371 | ) 372 | ``` 373 | 374 | 📤 Output: `true` 375 | 376 | 377 | #### 🔗 Multiple function parameter substitution with nesting with `or_x()` 378 | 379 | 📥 Input: 380 | 381 | ``` 382 | new Expression( 383 | 'or_x(equal([attr1], 1), in_array(explode([attr2]), "hello"))', 384 | [ 385 | 'attr1' => 1, 386 | 'attr2' => 'hello,world', 387 | ] 388 | ) 389 | ``` 390 | 391 | 📤 Output: `true` 392 | 393 | 394 | #### 🔗 Multiple function parameter substitution with nesting with `or_x()` and `not()` 395 | 396 | 📥 Input: 397 | 398 | ``` 399 | new Expression( 400 | 'not(or_x(equal([attr1], 1), in_array(explode([attr2]), "word")))', 401 | [ 402 | 'attr1' => 2, 403 | 'attr2' => 'hello,world', 404 | ] 405 | ) 406 | ``` 407 | 408 | 📤 Output: `true` 409 | 410 | 411 | #### 😳 Multiple nesting with a Closure 412 | 413 | 📥 Input: 414 | 415 | ``` 416 | new Expression( 417 | 'first(take(sort(filter([attr1], [filter_func]), [dir]), [offset]))', 418 | [ 419 | 'attr1' => [ 420 | 10, 421 | 30, 422 | 20, 423 | ], 424 | 'filter_func' => function (ExpressionParser $context, $value) { 425 | return array_filter($value, function ($item) use ($context) { 426 | return $item < $context->getMappings('filter_attr'); 427 | }); 428 | }, 429 | 'filter_attr' => 30, 430 | 'dir' => 'desc', 431 | 'offset' => 1, 432 | ] 433 | ) 434 | ``` 435 | 436 | 📤 Output: `20` 437 | 438 | 439 | ## `Laravel Collection` helpers 440 | 441 | The package already has a built-in support of Laravel Collection helpers. 442 | For more informations about the available functions it supports please refer to the original Laravel Collection [documentation page](https://laravel.com/docs/5.6/collections#available-methods). 443 | 444 | 445 | #### 🔗 Example usage of Laravel Collection functions 446 | 447 | 📥 Input: 448 | 449 | ``` 450 | new Expression( 451 | 'first(collect([attr1], [attr2]))', 452 | [ 453 | 'attr1' => 'value 1', 454 | 'attr2' => 'value 2', 455 | ] 456 | ) 457 | ``` 458 | 459 | 📤 Output: `'value 1'` 460 | 461 | ## Extending with custom handlers 462 | 463 | In order to extend or override current functionality, you will need to add your own handler class name to `config/handlers.php` file: 464 | 465 | ``` 466 | use DI\ExpressionParser\Handlers\Logical; 467 | use DI\ExpressionParser\Handlers\Standard; 468 | use DI\ExpressionParser\Handlers\LaravelCollectionAdapter; 469 | 470 | return [ 471 | Standard::class, 472 | Logical::class, 473 | LaravelCollectionAdapter::class, 474 | 475 | // Add custom expression handlers here: 476 | // \Acme\Handlers\CustomHandler::class, 477 | // 'Acme\Handlers\CustomHandler', 478 | ]; 479 | ``` 480 | 481 | ## 😍 Contribution 482 | 483 | Please feel free to fork and help developing. 484 | 485 | 486 | ## 📃 License 487 | 488 | [MIT](http://opensource.org/licenses/MIT) 489 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "di/expression-parser", 3 | "description": "This package allows to evaluate (parse with mapping) large amounts of data in flexible manner, providing various processing functions", 4 | "keywords": ["library", "expression", "parser", "parsing", "evaluate", "laravel", "compiler"], 5 | "license": "BSD-3-Clause", 6 | "authors": [ 7 | { 8 | "name": "Serhii Matrunchyk", 9 | "email": "serhii@digitalidea.studio", 10 | "homepage": "https://digitalidea.studio", 11 | "role": "Developer" 12 | } 13 | ], 14 | "require": { 15 | "tightenco/collect": "^5.6", 16 | "phpunit/phpunit": "^7.1", 17 | "nikic/php-parser": "^4.0@dev", 18 | "localheinz/json-normalizer": "^0.6.0" 19 | }, 20 | "require-dev": { 21 | "phpmd/phpmd": "dev-master", 22 | "squizlabs/php_codesniffer": "^3.0@dev" 23 | }, 24 | "autoload-dev": { 25 | "psr-4": { 26 | "DI\\ExpressionParser\\": "src/", 27 | "DI\\ExpressionParser\\Tests\\": "tests/" 28 | } 29 | }, 30 | "scripts": { 31 | "phpcs": "vendor/bin/phpcs -p --standard=PSR2 . --ignore=vendor", 32 | "phpmd": "vendor/bin/phpmd ./src text codesize,cleancode,controversial,design,naming,unusedcode", 33 | "lint": "composer phpcs && composer phpmd", 34 | "test": "phpunit" 35 | }, 36 | "minimum-stability": "stable", 37 | "prefer-stable": true 38 | } 39 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 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": "10d9371ae64ffff18cbd1dd7822e954a", 8 | "packages": [ 9 | { 10 | "name": "doctrine/instantiator", 11 | "version": "1.2.0", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/doctrine/instantiator.git", 15 | "reference": "a2c590166b2133a4633738648b6b064edae0814a" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", 20 | "reference": "a2c590166b2133a4633738648b6b064edae0814a", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": "^7.1" 25 | }, 26 | "require-dev": { 27 | "doctrine/coding-standard": "^6.0", 28 | "ext-pdo": "*", 29 | "ext-phar": "*", 30 | "phpbench/phpbench": "^0.13", 31 | "phpstan/phpstan-phpunit": "^0.11", 32 | "phpstan/phpstan-shim": "^0.11", 33 | "phpunit/phpunit": "^7.0" 34 | }, 35 | "type": "library", 36 | "extra": { 37 | "branch-alias": { 38 | "dev-master": "1.2.x-dev" 39 | } 40 | }, 41 | "autoload": { 42 | "psr-4": { 43 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 44 | } 45 | }, 46 | "notification-url": "https://packagist.org/downloads/", 47 | "license": [ 48 | "MIT" 49 | ], 50 | "authors": [ 51 | { 52 | "name": "Marco Pivetta", 53 | "email": "ocramius@gmail.com", 54 | "homepage": "http://ocramius.github.com/" 55 | } 56 | ], 57 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 58 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 59 | "keywords": [ 60 | "constructor", 61 | "instantiate" 62 | ], 63 | "time": "2019-03-17T17:37:11+00:00" 64 | }, 65 | { 66 | "name": "justinrainbow/json-schema", 67 | "version": "5.2.8", 68 | "source": { 69 | "type": "git", 70 | "url": "https://github.com/justinrainbow/json-schema.git", 71 | "reference": "dcb6e1006bb5fd1e392b4daa68932880f37550d4" 72 | }, 73 | "dist": { 74 | "type": "zip", 75 | "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/dcb6e1006bb5fd1e392b4daa68932880f37550d4", 76 | "reference": "dcb6e1006bb5fd1e392b4daa68932880f37550d4", 77 | "shasum": "" 78 | }, 79 | "require": { 80 | "php": ">=5.3.3" 81 | }, 82 | "require-dev": { 83 | "friendsofphp/php-cs-fixer": "~2.2.20", 84 | "json-schema/json-schema-test-suite": "1.2.0", 85 | "phpunit/phpunit": "^4.8.35" 86 | }, 87 | "bin": [ 88 | "bin/validate-json" 89 | ], 90 | "type": "library", 91 | "extra": { 92 | "branch-alias": { 93 | "dev-master": "5.0.x-dev" 94 | } 95 | }, 96 | "autoload": { 97 | "psr-4": { 98 | "JsonSchema\\": "src/JsonSchema/" 99 | } 100 | }, 101 | "notification-url": "https://packagist.org/downloads/", 102 | "license": [ 103 | "MIT" 104 | ], 105 | "authors": [ 106 | { 107 | "name": "Bruno Prieto Reis", 108 | "email": "bruno.p.reis@gmail.com" 109 | }, 110 | { 111 | "name": "Justin Rainbow", 112 | "email": "justin.rainbow@gmail.com" 113 | }, 114 | { 115 | "name": "Igor Wiedler", 116 | "email": "igor@wiedler.ch" 117 | }, 118 | { 119 | "name": "Robert Schönthal", 120 | "email": "seroscho@googlemail.com" 121 | } 122 | ], 123 | "description": "A library to validate a json schema.", 124 | "homepage": "https://github.com/justinrainbow/json-schema", 125 | "keywords": [ 126 | "json", 127 | "schema" 128 | ], 129 | "time": "2019-01-14T23:55:14+00:00" 130 | }, 131 | { 132 | "name": "localheinz/json-normalizer", 133 | "version": "0.6.0", 134 | "source": { 135 | "type": "git", 136 | "url": "https://github.com/localheinz/json-normalizer.git", 137 | "reference": "f280f0b8125c7c26b2f8047fa84bfe14de785d84" 138 | }, 139 | "dist": { 140 | "type": "zip", 141 | "url": "https://api.github.com/repos/localheinz/json-normalizer/zipball/f280f0b8125c7c26b2f8047fa84bfe14de785d84", 142 | "reference": "f280f0b8125c7c26b2f8047fa84bfe14de785d84", 143 | "shasum": "" 144 | }, 145 | "require": { 146 | "justinrainbow/json-schema": "^4.0.0 || ^5.0.0", 147 | "localheinz/json-printer": "^2.0.0", 148 | "php": "^7.1" 149 | }, 150 | "require-dev": { 151 | "infection/infection": "~0.8.1", 152 | "localheinz/php-cs-fixer-config": "~1.13.1", 153 | "localheinz/test-util": "0.6.1", 154 | "phpbench/phpbench": "~0.14.0", 155 | "phpspec/prophecy": "^1.7.1", 156 | "phpunit/phpunit": "^7.1.1" 157 | }, 158 | "type": "library", 159 | "autoload": { 160 | "psr-4": { 161 | "Localheinz\\Json\\Normalizer\\": "src/" 162 | } 163 | }, 164 | "notification-url": "https://packagist.org/downloads/", 165 | "license": [ 166 | "MIT" 167 | ], 168 | "authors": [ 169 | { 170 | "name": "Andreas Möller", 171 | "email": "am@localheinz.com" 172 | } 173 | ], 174 | "description": "Provides normalizers for normalizing JSON documents.", 175 | "homepage": "https://github.com/localheinz/json-normalizer", 176 | "keywords": [ 177 | "json", 178 | "normalizer" 179 | ], 180 | "time": "2018-04-07T08:03:24+00:00" 181 | }, 182 | { 183 | "name": "localheinz/json-printer", 184 | "version": "2.0.1", 185 | "source": { 186 | "type": "git", 187 | "url": "https://github.com/localheinz/json-printer.git", 188 | "reference": "86f942599c8f9f922de4e21c2b9b6564c895cb0c" 189 | }, 190 | "dist": { 191 | "type": "zip", 192 | "url": "https://api.github.com/repos/localheinz/json-printer/zipball/86f942599c8f9f922de4e21c2b9b6564c895cb0c", 193 | "reference": "86f942599c8f9f922de4e21c2b9b6564c895cb0c", 194 | "shasum": "" 195 | }, 196 | "require": { 197 | "php": "^7.0" 198 | }, 199 | "require-dev": { 200 | "infection/infection": "~0.8.1", 201 | "localheinz/php-cs-fixer-config": "~1.14.0", 202 | "localheinz/test-util": "0.6.1", 203 | "phpbench/phpbench": "~0.14.0", 204 | "phpunit/phpunit": "^6.5.7" 205 | }, 206 | "type": "library", 207 | "autoload": { 208 | "psr-4": { 209 | "Localheinz\\Json\\Printer\\": "src/" 210 | } 211 | }, 212 | "notification-url": "https://packagist.org/downloads/", 213 | "license": [ 214 | "MIT" 215 | ], 216 | "authors": [ 217 | { 218 | "name": "Andreas Möller", 219 | "email": "am@localheinz.com" 220 | } 221 | ], 222 | "description": "Provides a JSON printer, allowing for flexible indentation.", 223 | "homepage": "https://github.com/localheinz/json-printer", 224 | "keywords": [ 225 | "formatter", 226 | "json", 227 | "printer" 228 | ], 229 | "time": "2018-08-11T23:54:50+00:00" 230 | }, 231 | { 232 | "name": "myclabs/deep-copy", 233 | "version": "1.9.3", 234 | "source": { 235 | "type": "git", 236 | "url": "https://github.com/myclabs/DeepCopy.git", 237 | "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" 238 | }, 239 | "dist": { 240 | "type": "zip", 241 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", 242 | "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", 243 | "shasum": "" 244 | }, 245 | "require": { 246 | "php": "^7.1" 247 | }, 248 | "replace": { 249 | "myclabs/deep-copy": "self.version" 250 | }, 251 | "require-dev": { 252 | "doctrine/collections": "^1.0", 253 | "doctrine/common": "^2.6", 254 | "phpunit/phpunit": "^7.1" 255 | }, 256 | "type": "library", 257 | "autoload": { 258 | "psr-4": { 259 | "DeepCopy\\": "src/DeepCopy/" 260 | }, 261 | "files": [ 262 | "src/DeepCopy/deep_copy.php" 263 | ] 264 | }, 265 | "notification-url": "https://packagist.org/downloads/", 266 | "license": [ 267 | "MIT" 268 | ], 269 | "description": "Create deep copies (clones) of your objects", 270 | "keywords": [ 271 | "clone", 272 | "copy", 273 | "duplicate", 274 | "object", 275 | "object graph" 276 | ], 277 | "time": "2019-08-09T12:45:53+00:00" 278 | }, 279 | { 280 | "name": "nikic/php-parser", 281 | "version": "v4.2.4", 282 | "source": { 283 | "type": "git", 284 | "url": "https://github.com/nikic/PHP-Parser.git", 285 | "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4" 286 | }, 287 | "dist": { 288 | "type": "zip", 289 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/97e59c7a16464196a8b9c77c47df68e4a39a45c4", 290 | "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4", 291 | "shasum": "" 292 | }, 293 | "require": { 294 | "ext-tokenizer": "*", 295 | "php": ">=7.0" 296 | }, 297 | "require-dev": { 298 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" 299 | }, 300 | "bin": [ 301 | "bin/php-parse" 302 | ], 303 | "type": "library", 304 | "extra": { 305 | "branch-alias": { 306 | "dev-master": "4.2-dev" 307 | } 308 | }, 309 | "autoload": { 310 | "psr-4": { 311 | "PhpParser\\": "lib/PhpParser" 312 | } 313 | }, 314 | "notification-url": "https://packagist.org/downloads/", 315 | "license": [ 316 | "BSD-3-Clause" 317 | ], 318 | "authors": [ 319 | { 320 | "name": "Nikita Popov" 321 | } 322 | ], 323 | "description": "A PHP parser written in PHP", 324 | "keywords": [ 325 | "parser", 326 | "php" 327 | ], 328 | "time": "2019-09-01T07:51:21+00:00" 329 | }, 330 | { 331 | "name": "phar-io/manifest", 332 | "version": "1.0.3", 333 | "source": { 334 | "type": "git", 335 | "url": "https://github.com/phar-io/manifest.git", 336 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" 337 | }, 338 | "dist": { 339 | "type": "zip", 340 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", 341 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", 342 | "shasum": "" 343 | }, 344 | "require": { 345 | "ext-dom": "*", 346 | "ext-phar": "*", 347 | "phar-io/version": "^2.0", 348 | "php": "^5.6 || ^7.0" 349 | }, 350 | "type": "library", 351 | "extra": { 352 | "branch-alias": { 353 | "dev-master": "1.0.x-dev" 354 | } 355 | }, 356 | "autoload": { 357 | "classmap": [ 358 | "src/" 359 | ] 360 | }, 361 | "notification-url": "https://packagist.org/downloads/", 362 | "license": [ 363 | "BSD-3-Clause" 364 | ], 365 | "authors": [ 366 | { 367 | "name": "Arne Blankerts", 368 | "email": "arne@blankerts.de", 369 | "role": "Developer" 370 | }, 371 | { 372 | "name": "Sebastian Heuer", 373 | "email": "sebastian@phpeople.de", 374 | "role": "Developer" 375 | }, 376 | { 377 | "name": "Sebastian Bergmann", 378 | "email": "sebastian@phpunit.de", 379 | "role": "Developer" 380 | } 381 | ], 382 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 383 | "time": "2018-07-08T19:23:20+00:00" 384 | }, 385 | { 386 | "name": "phar-io/version", 387 | "version": "2.0.1", 388 | "source": { 389 | "type": "git", 390 | "url": "https://github.com/phar-io/version.git", 391 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" 392 | }, 393 | "dist": { 394 | "type": "zip", 395 | "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", 396 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", 397 | "shasum": "" 398 | }, 399 | "require": { 400 | "php": "^5.6 || ^7.0" 401 | }, 402 | "type": "library", 403 | "autoload": { 404 | "classmap": [ 405 | "src/" 406 | ] 407 | }, 408 | "notification-url": "https://packagist.org/downloads/", 409 | "license": [ 410 | "BSD-3-Clause" 411 | ], 412 | "authors": [ 413 | { 414 | "name": "Arne Blankerts", 415 | "email": "arne@blankerts.de", 416 | "role": "Developer" 417 | }, 418 | { 419 | "name": "Sebastian Heuer", 420 | "email": "sebastian@phpeople.de", 421 | "role": "Developer" 422 | }, 423 | { 424 | "name": "Sebastian Bergmann", 425 | "email": "sebastian@phpunit.de", 426 | "role": "Developer" 427 | } 428 | ], 429 | "description": "Library for handling version information and constraints", 430 | "time": "2018-07-08T19:19:57+00:00" 431 | }, 432 | { 433 | "name": "phpdocumentor/reflection-common", 434 | "version": "2.0.0", 435 | "source": { 436 | "type": "git", 437 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 438 | "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" 439 | }, 440 | "dist": { 441 | "type": "zip", 442 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", 443 | "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", 444 | "shasum": "" 445 | }, 446 | "require": { 447 | "php": ">=7.1" 448 | }, 449 | "require-dev": { 450 | "phpunit/phpunit": "~6" 451 | }, 452 | "type": "library", 453 | "extra": { 454 | "branch-alias": { 455 | "dev-master": "2.x-dev" 456 | } 457 | }, 458 | "autoload": { 459 | "psr-4": { 460 | "phpDocumentor\\Reflection\\": "src/" 461 | } 462 | }, 463 | "notification-url": "https://packagist.org/downloads/", 464 | "license": [ 465 | "MIT" 466 | ], 467 | "authors": [ 468 | { 469 | "name": "Jaap van Otterdijk", 470 | "email": "opensource@ijaap.nl" 471 | } 472 | ], 473 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 474 | "homepage": "http://www.phpdoc.org", 475 | "keywords": [ 476 | "FQSEN", 477 | "phpDocumentor", 478 | "phpdoc", 479 | "reflection", 480 | "static analysis" 481 | ], 482 | "time": "2018-08-07T13:53:10+00:00" 483 | }, 484 | { 485 | "name": "phpdocumentor/reflection-docblock", 486 | "version": "4.3.2", 487 | "source": { 488 | "type": "git", 489 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 490 | "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e" 491 | }, 492 | "dist": { 493 | "type": "zip", 494 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e", 495 | "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e", 496 | "shasum": "" 497 | }, 498 | "require": { 499 | "php": "^7.0", 500 | "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", 501 | "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", 502 | "webmozart/assert": "^1.0" 503 | }, 504 | "require-dev": { 505 | "doctrine/instantiator": "^1.0.5", 506 | "mockery/mockery": "^1.0", 507 | "phpunit/phpunit": "^6.4" 508 | }, 509 | "type": "library", 510 | "extra": { 511 | "branch-alias": { 512 | "dev-master": "4.x-dev" 513 | } 514 | }, 515 | "autoload": { 516 | "psr-4": { 517 | "phpDocumentor\\Reflection\\": [ 518 | "src/" 519 | ] 520 | } 521 | }, 522 | "notification-url": "https://packagist.org/downloads/", 523 | "license": [ 524 | "MIT" 525 | ], 526 | "authors": [ 527 | { 528 | "name": "Mike van Riel", 529 | "email": "me@mikevanriel.com" 530 | } 531 | ], 532 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 533 | "time": "2019-09-12T14:27:41+00:00" 534 | }, 535 | { 536 | "name": "phpdocumentor/type-resolver", 537 | "version": "1.0.1", 538 | "source": { 539 | "type": "git", 540 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 541 | "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" 542 | }, 543 | "dist": { 544 | "type": "zip", 545 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", 546 | "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", 547 | "shasum": "" 548 | }, 549 | "require": { 550 | "php": "^7.1", 551 | "phpdocumentor/reflection-common": "^2.0" 552 | }, 553 | "require-dev": { 554 | "ext-tokenizer": "^7.1", 555 | "mockery/mockery": "~1", 556 | "phpunit/phpunit": "^7.0" 557 | }, 558 | "type": "library", 559 | "extra": { 560 | "branch-alias": { 561 | "dev-master": "1.x-dev" 562 | } 563 | }, 564 | "autoload": { 565 | "psr-4": { 566 | "phpDocumentor\\Reflection\\": "src" 567 | } 568 | }, 569 | "notification-url": "https://packagist.org/downloads/", 570 | "license": [ 571 | "MIT" 572 | ], 573 | "authors": [ 574 | { 575 | "name": "Mike van Riel", 576 | "email": "me@mikevanriel.com" 577 | } 578 | ], 579 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 580 | "time": "2019-08-22T18:11:29+00:00" 581 | }, 582 | { 583 | "name": "phpspec/prophecy", 584 | "version": "1.9.0", 585 | "source": { 586 | "type": "git", 587 | "url": "https://github.com/phpspec/prophecy.git", 588 | "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203" 589 | }, 590 | "dist": { 591 | "type": "zip", 592 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203", 593 | "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203", 594 | "shasum": "" 595 | }, 596 | "require": { 597 | "doctrine/instantiator": "^1.0.2", 598 | "php": "^5.3|^7.0", 599 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", 600 | "sebastian/comparator": "^1.1|^2.0|^3.0", 601 | "sebastian/recursion-context": "^1.0|^2.0|^3.0" 602 | }, 603 | "require-dev": { 604 | "phpspec/phpspec": "^2.5|^3.2", 605 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" 606 | }, 607 | "type": "library", 608 | "extra": { 609 | "branch-alias": { 610 | "dev-master": "1.8.x-dev" 611 | } 612 | }, 613 | "autoload": { 614 | "psr-4": { 615 | "Prophecy\\": "src/Prophecy" 616 | } 617 | }, 618 | "notification-url": "https://packagist.org/downloads/", 619 | "license": [ 620 | "MIT" 621 | ], 622 | "authors": [ 623 | { 624 | "name": "Konstantin Kudryashov", 625 | "email": "ever.zet@gmail.com", 626 | "homepage": "http://everzet.com" 627 | }, 628 | { 629 | "name": "Marcello Duarte", 630 | "email": "marcello.duarte@gmail.com" 631 | } 632 | ], 633 | "description": "Highly opinionated mocking framework for PHP 5.3+", 634 | "homepage": "https://github.com/phpspec/prophecy", 635 | "keywords": [ 636 | "Double", 637 | "Dummy", 638 | "fake", 639 | "mock", 640 | "spy", 641 | "stub" 642 | ], 643 | "time": "2019-10-03T11:07:50+00:00" 644 | }, 645 | { 646 | "name": "phpunit/php-code-coverage", 647 | "version": "6.1.4", 648 | "source": { 649 | "type": "git", 650 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 651 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" 652 | }, 653 | "dist": { 654 | "type": "zip", 655 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", 656 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", 657 | "shasum": "" 658 | }, 659 | "require": { 660 | "ext-dom": "*", 661 | "ext-xmlwriter": "*", 662 | "php": "^7.1", 663 | "phpunit/php-file-iterator": "^2.0", 664 | "phpunit/php-text-template": "^1.2.1", 665 | "phpunit/php-token-stream": "^3.0", 666 | "sebastian/code-unit-reverse-lookup": "^1.0.1", 667 | "sebastian/environment": "^3.1 || ^4.0", 668 | "sebastian/version": "^2.0.1", 669 | "theseer/tokenizer": "^1.1" 670 | }, 671 | "require-dev": { 672 | "phpunit/phpunit": "^7.0" 673 | }, 674 | "suggest": { 675 | "ext-xdebug": "^2.6.0" 676 | }, 677 | "type": "library", 678 | "extra": { 679 | "branch-alias": { 680 | "dev-master": "6.1-dev" 681 | } 682 | }, 683 | "autoload": { 684 | "classmap": [ 685 | "src/" 686 | ] 687 | }, 688 | "notification-url": "https://packagist.org/downloads/", 689 | "license": [ 690 | "BSD-3-Clause" 691 | ], 692 | "authors": [ 693 | { 694 | "name": "Sebastian Bergmann", 695 | "email": "sebastian@phpunit.de", 696 | "role": "lead" 697 | } 698 | ], 699 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 700 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 701 | "keywords": [ 702 | "coverage", 703 | "testing", 704 | "xunit" 705 | ], 706 | "time": "2018-10-31T16:06:48+00:00" 707 | }, 708 | { 709 | "name": "phpunit/php-file-iterator", 710 | "version": "2.0.2", 711 | "source": { 712 | "type": "git", 713 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 714 | "reference": "050bedf145a257b1ff02746c31894800e5122946" 715 | }, 716 | "dist": { 717 | "type": "zip", 718 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", 719 | "reference": "050bedf145a257b1ff02746c31894800e5122946", 720 | "shasum": "" 721 | }, 722 | "require": { 723 | "php": "^7.1" 724 | }, 725 | "require-dev": { 726 | "phpunit/phpunit": "^7.1" 727 | }, 728 | "type": "library", 729 | "extra": { 730 | "branch-alias": { 731 | "dev-master": "2.0.x-dev" 732 | } 733 | }, 734 | "autoload": { 735 | "classmap": [ 736 | "src/" 737 | ] 738 | }, 739 | "notification-url": "https://packagist.org/downloads/", 740 | "license": [ 741 | "BSD-3-Clause" 742 | ], 743 | "authors": [ 744 | { 745 | "name": "Sebastian Bergmann", 746 | "email": "sebastian@phpunit.de", 747 | "role": "lead" 748 | } 749 | ], 750 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 751 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 752 | "keywords": [ 753 | "filesystem", 754 | "iterator" 755 | ], 756 | "time": "2018-09-13T20:33:42+00:00" 757 | }, 758 | { 759 | "name": "phpunit/php-text-template", 760 | "version": "1.2.1", 761 | "source": { 762 | "type": "git", 763 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 764 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 765 | }, 766 | "dist": { 767 | "type": "zip", 768 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 769 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 770 | "shasum": "" 771 | }, 772 | "require": { 773 | "php": ">=5.3.3" 774 | }, 775 | "type": "library", 776 | "autoload": { 777 | "classmap": [ 778 | "src/" 779 | ] 780 | }, 781 | "notification-url": "https://packagist.org/downloads/", 782 | "license": [ 783 | "BSD-3-Clause" 784 | ], 785 | "authors": [ 786 | { 787 | "name": "Sebastian Bergmann", 788 | "email": "sebastian@phpunit.de", 789 | "role": "lead" 790 | } 791 | ], 792 | "description": "Simple template engine.", 793 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 794 | "keywords": [ 795 | "template" 796 | ], 797 | "time": "2015-06-21T13:50:34+00:00" 798 | }, 799 | { 800 | "name": "phpunit/php-timer", 801 | "version": "2.1.2", 802 | "source": { 803 | "type": "git", 804 | "url": "https://github.com/sebastianbergmann/php-timer.git", 805 | "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" 806 | }, 807 | "dist": { 808 | "type": "zip", 809 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", 810 | "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", 811 | "shasum": "" 812 | }, 813 | "require": { 814 | "php": "^7.1" 815 | }, 816 | "require-dev": { 817 | "phpunit/phpunit": "^7.0" 818 | }, 819 | "type": "library", 820 | "extra": { 821 | "branch-alias": { 822 | "dev-master": "2.1-dev" 823 | } 824 | }, 825 | "autoload": { 826 | "classmap": [ 827 | "src/" 828 | ] 829 | }, 830 | "notification-url": "https://packagist.org/downloads/", 831 | "license": [ 832 | "BSD-3-Clause" 833 | ], 834 | "authors": [ 835 | { 836 | "name": "Sebastian Bergmann", 837 | "email": "sebastian@phpunit.de", 838 | "role": "lead" 839 | } 840 | ], 841 | "description": "Utility class for timing", 842 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 843 | "keywords": [ 844 | "timer" 845 | ], 846 | "time": "2019-06-07T04:22:29+00:00" 847 | }, 848 | { 849 | "name": "phpunit/php-token-stream", 850 | "version": "3.1.1", 851 | "source": { 852 | "type": "git", 853 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 854 | "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" 855 | }, 856 | "dist": { 857 | "type": "zip", 858 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", 859 | "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", 860 | "shasum": "" 861 | }, 862 | "require": { 863 | "ext-tokenizer": "*", 864 | "php": "^7.1" 865 | }, 866 | "require-dev": { 867 | "phpunit/phpunit": "^7.0" 868 | }, 869 | "type": "library", 870 | "extra": { 871 | "branch-alias": { 872 | "dev-master": "3.1-dev" 873 | } 874 | }, 875 | "autoload": { 876 | "classmap": [ 877 | "src/" 878 | ] 879 | }, 880 | "notification-url": "https://packagist.org/downloads/", 881 | "license": [ 882 | "BSD-3-Clause" 883 | ], 884 | "authors": [ 885 | { 886 | "name": "Sebastian Bergmann", 887 | "email": "sebastian@phpunit.de" 888 | } 889 | ], 890 | "description": "Wrapper around PHP's tokenizer extension.", 891 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 892 | "keywords": [ 893 | "tokenizer" 894 | ], 895 | "time": "2019-09-17T06:23:10+00:00" 896 | }, 897 | { 898 | "name": "phpunit/phpunit", 899 | "version": "7.5.16", 900 | "source": { 901 | "type": "git", 902 | "url": "https://github.com/sebastianbergmann/phpunit.git", 903 | "reference": "316afa6888d2562e04aeb67ea7f2017a0eb41661" 904 | }, 905 | "dist": { 906 | "type": "zip", 907 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/316afa6888d2562e04aeb67ea7f2017a0eb41661", 908 | "reference": "316afa6888d2562e04aeb67ea7f2017a0eb41661", 909 | "shasum": "" 910 | }, 911 | "require": { 912 | "doctrine/instantiator": "^1.1", 913 | "ext-dom": "*", 914 | "ext-json": "*", 915 | "ext-libxml": "*", 916 | "ext-mbstring": "*", 917 | "ext-xml": "*", 918 | "myclabs/deep-copy": "^1.7", 919 | "phar-io/manifest": "^1.0.2", 920 | "phar-io/version": "^2.0", 921 | "php": "^7.1", 922 | "phpspec/prophecy": "^1.7", 923 | "phpunit/php-code-coverage": "^6.0.7", 924 | "phpunit/php-file-iterator": "^2.0.1", 925 | "phpunit/php-text-template": "^1.2.1", 926 | "phpunit/php-timer": "^2.1", 927 | "sebastian/comparator": "^3.0", 928 | "sebastian/diff": "^3.0", 929 | "sebastian/environment": "^4.0", 930 | "sebastian/exporter": "^3.1", 931 | "sebastian/global-state": "^2.0", 932 | "sebastian/object-enumerator": "^3.0.3", 933 | "sebastian/resource-operations": "^2.0", 934 | "sebastian/version": "^2.0.1" 935 | }, 936 | "conflict": { 937 | "phpunit/phpunit-mock-objects": "*" 938 | }, 939 | "require-dev": { 940 | "ext-pdo": "*" 941 | }, 942 | "suggest": { 943 | "ext-soap": "*", 944 | "ext-xdebug": "*", 945 | "phpunit/php-invoker": "^2.0" 946 | }, 947 | "bin": [ 948 | "phpunit" 949 | ], 950 | "type": "library", 951 | "extra": { 952 | "branch-alias": { 953 | "dev-master": "7.5-dev" 954 | } 955 | }, 956 | "autoload": { 957 | "classmap": [ 958 | "src/" 959 | ] 960 | }, 961 | "notification-url": "https://packagist.org/downloads/", 962 | "license": [ 963 | "BSD-3-Clause" 964 | ], 965 | "authors": [ 966 | { 967 | "name": "Sebastian Bergmann", 968 | "email": "sebastian@phpunit.de", 969 | "role": "lead" 970 | } 971 | ], 972 | "description": "The PHP Unit Testing framework.", 973 | "homepage": "https://phpunit.de/", 974 | "keywords": [ 975 | "phpunit", 976 | "testing", 977 | "xunit" 978 | ], 979 | "time": "2019-09-14T09:08:39+00:00" 980 | }, 981 | { 982 | "name": "sebastian/code-unit-reverse-lookup", 983 | "version": "1.0.1", 984 | "source": { 985 | "type": "git", 986 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 987 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" 988 | }, 989 | "dist": { 990 | "type": "zip", 991 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 992 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 993 | "shasum": "" 994 | }, 995 | "require": { 996 | "php": "^5.6 || ^7.0" 997 | }, 998 | "require-dev": { 999 | "phpunit/phpunit": "^5.7 || ^6.0" 1000 | }, 1001 | "type": "library", 1002 | "extra": { 1003 | "branch-alias": { 1004 | "dev-master": "1.0.x-dev" 1005 | } 1006 | }, 1007 | "autoload": { 1008 | "classmap": [ 1009 | "src/" 1010 | ] 1011 | }, 1012 | "notification-url": "https://packagist.org/downloads/", 1013 | "license": [ 1014 | "BSD-3-Clause" 1015 | ], 1016 | "authors": [ 1017 | { 1018 | "name": "Sebastian Bergmann", 1019 | "email": "sebastian@phpunit.de" 1020 | } 1021 | ], 1022 | "description": "Looks up which function or method a line of code belongs to", 1023 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 1024 | "time": "2017-03-04T06:30:41+00:00" 1025 | }, 1026 | { 1027 | "name": "sebastian/comparator", 1028 | "version": "3.0.2", 1029 | "source": { 1030 | "type": "git", 1031 | "url": "https://github.com/sebastianbergmann/comparator.git", 1032 | "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" 1033 | }, 1034 | "dist": { 1035 | "type": "zip", 1036 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", 1037 | "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", 1038 | "shasum": "" 1039 | }, 1040 | "require": { 1041 | "php": "^7.1", 1042 | "sebastian/diff": "^3.0", 1043 | "sebastian/exporter": "^3.1" 1044 | }, 1045 | "require-dev": { 1046 | "phpunit/phpunit": "^7.1" 1047 | }, 1048 | "type": "library", 1049 | "extra": { 1050 | "branch-alias": { 1051 | "dev-master": "3.0-dev" 1052 | } 1053 | }, 1054 | "autoload": { 1055 | "classmap": [ 1056 | "src/" 1057 | ] 1058 | }, 1059 | "notification-url": "https://packagist.org/downloads/", 1060 | "license": [ 1061 | "BSD-3-Clause" 1062 | ], 1063 | "authors": [ 1064 | { 1065 | "name": "Jeff Welch", 1066 | "email": "whatthejeff@gmail.com" 1067 | }, 1068 | { 1069 | "name": "Volker Dusch", 1070 | "email": "github@wallbash.com" 1071 | }, 1072 | { 1073 | "name": "Bernhard Schussek", 1074 | "email": "bschussek@2bepublished.at" 1075 | }, 1076 | { 1077 | "name": "Sebastian Bergmann", 1078 | "email": "sebastian@phpunit.de" 1079 | } 1080 | ], 1081 | "description": "Provides the functionality to compare PHP values for equality", 1082 | "homepage": "https://github.com/sebastianbergmann/comparator", 1083 | "keywords": [ 1084 | "comparator", 1085 | "compare", 1086 | "equality" 1087 | ], 1088 | "time": "2018-07-12T15:12:46+00:00" 1089 | }, 1090 | { 1091 | "name": "sebastian/diff", 1092 | "version": "3.0.2", 1093 | "source": { 1094 | "type": "git", 1095 | "url": "https://github.com/sebastianbergmann/diff.git", 1096 | "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" 1097 | }, 1098 | "dist": { 1099 | "type": "zip", 1100 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", 1101 | "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", 1102 | "shasum": "" 1103 | }, 1104 | "require": { 1105 | "php": "^7.1" 1106 | }, 1107 | "require-dev": { 1108 | "phpunit/phpunit": "^7.5 || ^8.0", 1109 | "symfony/process": "^2 || ^3.3 || ^4" 1110 | }, 1111 | "type": "library", 1112 | "extra": { 1113 | "branch-alias": { 1114 | "dev-master": "3.0-dev" 1115 | } 1116 | }, 1117 | "autoload": { 1118 | "classmap": [ 1119 | "src/" 1120 | ] 1121 | }, 1122 | "notification-url": "https://packagist.org/downloads/", 1123 | "license": [ 1124 | "BSD-3-Clause" 1125 | ], 1126 | "authors": [ 1127 | { 1128 | "name": "Kore Nordmann", 1129 | "email": "mail@kore-nordmann.de" 1130 | }, 1131 | { 1132 | "name": "Sebastian Bergmann", 1133 | "email": "sebastian@phpunit.de" 1134 | } 1135 | ], 1136 | "description": "Diff implementation", 1137 | "homepage": "https://github.com/sebastianbergmann/diff", 1138 | "keywords": [ 1139 | "diff", 1140 | "udiff", 1141 | "unidiff", 1142 | "unified diff" 1143 | ], 1144 | "time": "2019-02-04T06:01:07+00:00" 1145 | }, 1146 | { 1147 | "name": "sebastian/environment", 1148 | "version": "4.2.2", 1149 | "source": { 1150 | "type": "git", 1151 | "url": "https://github.com/sebastianbergmann/environment.git", 1152 | "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" 1153 | }, 1154 | "dist": { 1155 | "type": "zip", 1156 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", 1157 | "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", 1158 | "shasum": "" 1159 | }, 1160 | "require": { 1161 | "php": "^7.1" 1162 | }, 1163 | "require-dev": { 1164 | "phpunit/phpunit": "^7.5" 1165 | }, 1166 | "suggest": { 1167 | "ext-posix": "*" 1168 | }, 1169 | "type": "library", 1170 | "extra": { 1171 | "branch-alias": { 1172 | "dev-master": "4.2-dev" 1173 | } 1174 | }, 1175 | "autoload": { 1176 | "classmap": [ 1177 | "src/" 1178 | ] 1179 | }, 1180 | "notification-url": "https://packagist.org/downloads/", 1181 | "license": [ 1182 | "BSD-3-Clause" 1183 | ], 1184 | "authors": [ 1185 | { 1186 | "name": "Sebastian Bergmann", 1187 | "email": "sebastian@phpunit.de" 1188 | } 1189 | ], 1190 | "description": "Provides functionality to handle HHVM/PHP environments", 1191 | "homepage": "http://www.github.com/sebastianbergmann/environment", 1192 | "keywords": [ 1193 | "Xdebug", 1194 | "environment", 1195 | "hhvm" 1196 | ], 1197 | "time": "2019-05-05T09:05:15+00:00" 1198 | }, 1199 | { 1200 | "name": "sebastian/exporter", 1201 | "version": "3.1.2", 1202 | "source": { 1203 | "type": "git", 1204 | "url": "https://github.com/sebastianbergmann/exporter.git", 1205 | "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" 1206 | }, 1207 | "dist": { 1208 | "type": "zip", 1209 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", 1210 | "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", 1211 | "shasum": "" 1212 | }, 1213 | "require": { 1214 | "php": "^7.0", 1215 | "sebastian/recursion-context": "^3.0" 1216 | }, 1217 | "require-dev": { 1218 | "ext-mbstring": "*", 1219 | "phpunit/phpunit": "^6.0" 1220 | }, 1221 | "type": "library", 1222 | "extra": { 1223 | "branch-alias": { 1224 | "dev-master": "3.1.x-dev" 1225 | } 1226 | }, 1227 | "autoload": { 1228 | "classmap": [ 1229 | "src/" 1230 | ] 1231 | }, 1232 | "notification-url": "https://packagist.org/downloads/", 1233 | "license": [ 1234 | "BSD-3-Clause" 1235 | ], 1236 | "authors": [ 1237 | { 1238 | "name": "Sebastian Bergmann", 1239 | "email": "sebastian@phpunit.de" 1240 | }, 1241 | { 1242 | "name": "Jeff Welch", 1243 | "email": "whatthejeff@gmail.com" 1244 | }, 1245 | { 1246 | "name": "Volker Dusch", 1247 | "email": "github@wallbash.com" 1248 | }, 1249 | { 1250 | "name": "Adam Harvey", 1251 | "email": "aharvey@php.net" 1252 | }, 1253 | { 1254 | "name": "Bernhard Schussek", 1255 | "email": "bschussek@gmail.com" 1256 | } 1257 | ], 1258 | "description": "Provides the functionality to export PHP variables for visualization", 1259 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 1260 | "keywords": [ 1261 | "export", 1262 | "exporter" 1263 | ], 1264 | "time": "2019-09-14T09:02:43+00:00" 1265 | }, 1266 | { 1267 | "name": "sebastian/global-state", 1268 | "version": "2.0.0", 1269 | "source": { 1270 | "type": "git", 1271 | "url": "https://github.com/sebastianbergmann/global-state.git", 1272 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" 1273 | }, 1274 | "dist": { 1275 | "type": "zip", 1276 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", 1277 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", 1278 | "shasum": "" 1279 | }, 1280 | "require": { 1281 | "php": "^7.0" 1282 | }, 1283 | "require-dev": { 1284 | "phpunit/phpunit": "^6.0" 1285 | }, 1286 | "suggest": { 1287 | "ext-uopz": "*" 1288 | }, 1289 | "type": "library", 1290 | "extra": { 1291 | "branch-alias": { 1292 | "dev-master": "2.0-dev" 1293 | } 1294 | }, 1295 | "autoload": { 1296 | "classmap": [ 1297 | "src/" 1298 | ] 1299 | }, 1300 | "notification-url": "https://packagist.org/downloads/", 1301 | "license": [ 1302 | "BSD-3-Clause" 1303 | ], 1304 | "authors": [ 1305 | { 1306 | "name": "Sebastian Bergmann", 1307 | "email": "sebastian@phpunit.de" 1308 | } 1309 | ], 1310 | "description": "Snapshotting of global state", 1311 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1312 | "keywords": [ 1313 | "global state" 1314 | ], 1315 | "time": "2017-04-27T15:39:26+00:00" 1316 | }, 1317 | { 1318 | "name": "sebastian/object-enumerator", 1319 | "version": "3.0.3", 1320 | "source": { 1321 | "type": "git", 1322 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 1323 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" 1324 | }, 1325 | "dist": { 1326 | "type": "zip", 1327 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", 1328 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", 1329 | "shasum": "" 1330 | }, 1331 | "require": { 1332 | "php": "^7.0", 1333 | "sebastian/object-reflector": "^1.1.1", 1334 | "sebastian/recursion-context": "^3.0" 1335 | }, 1336 | "require-dev": { 1337 | "phpunit/phpunit": "^6.0" 1338 | }, 1339 | "type": "library", 1340 | "extra": { 1341 | "branch-alias": { 1342 | "dev-master": "3.0.x-dev" 1343 | } 1344 | }, 1345 | "autoload": { 1346 | "classmap": [ 1347 | "src/" 1348 | ] 1349 | }, 1350 | "notification-url": "https://packagist.org/downloads/", 1351 | "license": [ 1352 | "BSD-3-Clause" 1353 | ], 1354 | "authors": [ 1355 | { 1356 | "name": "Sebastian Bergmann", 1357 | "email": "sebastian@phpunit.de" 1358 | } 1359 | ], 1360 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 1361 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 1362 | "time": "2017-08-03T12:35:26+00:00" 1363 | }, 1364 | { 1365 | "name": "sebastian/object-reflector", 1366 | "version": "1.1.1", 1367 | "source": { 1368 | "type": "git", 1369 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 1370 | "reference": "773f97c67f28de00d397be301821b06708fca0be" 1371 | }, 1372 | "dist": { 1373 | "type": "zip", 1374 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", 1375 | "reference": "773f97c67f28de00d397be301821b06708fca0be", 1376 | "shasum": "" 1377 | }, 1378 | "require": { 1379 | "php": "^7.0" 1380 | }, 1381 | "require-dev": { 1382 | "phpunit/phpunit": "^6.0" 1383 | }, 1384 | "type": "library", 1385 | "extra": { 1386 | "branch-alias": { 1387 | "dev-master": "1.1-dev" 1388 | } 1389 | }, 1390 | "autoload": { 1391 | "classmap": [ 1392 | "src/" 1393 | ] 1394 | }, 1395 | "notification-url": "https://packagist.org/downloads/", 1396 | "license": [ 1397 | "BSD-3-Clause" 1398 | ], 1399 | "authors": [ 1400 | { 1401 | "name": "Sebastian Bergmann", 1402 | "email": "sebastian@phpunit.de" 1403 | } 1404 | ], 1405 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 1406 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 1407 | "time": "2017-03-29T09:07:27+00:00" 1408 | }, 1409 | { 1410 | "name": "sebastian/recursion-context", 1411 | "version": "3.0.0", 1412 | "source": { 1413 | "type": "git", 1414 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 1415 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" 1416 | }, 1417 | "dist": { 1418 | "type": "zip", 1419 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", 1420 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", 1421 | "shasum": "" 1422 | }, 1423 | "require": { 1424 | "php": "^7.0" 1425 | }, 1426 | "require-dev": { 1427 | "phpunit/phpunit": "^6.0" 1428 | }, 1429 | "type": "library", 1430 | "extra": { 1431 | "branch-alias": { 1432 | "dev-master": "3.0.x-dev" 1433 | } 1434 | }, 1435 | "autoload": { 1436 | "classmap": [ 1437 | "src/" 1438 | ] 1439 | }, 1440 | "notification-url": "https://packagist.org/downloads/", 1441 | "license": [ 1442 | "BSD-3-Clause" 1443 | ], 1444 | "authors": [ 1445 | { 1446 | "name": "Jeff Welch", 1447 | "email": "whatthejeff@gmail.com" 1448 | }, 1449 | { 1450 | "name": "Sebastian Bergmann", 1451 | "email": "sebastian@phpunit.de" 1452 | }, 1453 | { 1454 | "name": "Adam Harvey", 1455 | "email": "aharvey@php.net" 1456 | } 1457 | ], 1458 | "description": "Provides functionality to recursively process PHP variables", 1459 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 1460 | "time": "2017-03-03T06:23:57+00:00" 1461 | }, 1462 | { 1463 | "name": "sebastian/resource-operations", 1464 | "version": "2.0.1", 1465 | "source": { 1466 | "type": "git", 1467 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 1468 | "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" 1469 | }, 1470 | "dist": { 1471 | "type": "zip", 1472 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", 1473 | "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", 1474 | "shasum": "" 1475 | }, 1476 | "require": { 1477 | "php": "^7.1" 1478 | }, 1479 | "type": "library", 1480 | "extra": { 1481 | "branch-alias": { 1482 | "dev-master": "2.0-dev" 1483 | } 1484 | }, 1485 | "autoload": { 1486 | "classmap": [ 1487 | "src/" 1488 | ] 1489 | }, 1490 | "notification-url": "https://packagist.org/downloads/", 1491 | "license": [ 1492 | "BSD-3-Clause" 1493 | ], 1494 | "authors": [ 1495 | { 1496 | "name": "Sebastian Bergmann", 1497 | "email": "sebastian@phpunit.de" 1498 | } 1499 | ], 1500 | "description": "Provides a list of PHP built-in functions that operate on resources", 1501 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 1502 | "time": "2018-10-04T04:07:39+00:00" 1503 | }, 1504 | { 1505 | "name": "sebastian/version", 1506 | "version": "2.0.1", 1507 | "source": { 1508 | "type": "git", 1509 | "url": "https://github.com/sebastianbergmann/version.git", 1510 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 1511 | }, 1512 | "dist": { 1513 | "type": "zip", 1514 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 1515 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 1516 | "shasum": "" 1517 | }, 1518 | "require": { 1519 | "php": ">=5.6" 1520 | }, 1521 | "type": "library", 1522 | "extra": { 1523 | "branch-alias": { 1524 | "dev-master": "2.0.x-dev" 1525 | } 1526 | }, 1527 | "autoload": { 1528 | "classmap": [ 1529 | "src/" 1530 | ] 1531 | }, 1532 | "notification-url": "https://packagist.org/downloads/", 1533 | "license": [ 1534 | "BSD-3-Clause" 1535 | ], 1536 | "authors": [ 1537 | { 1538 | "name": "Sebastian Bergmann", 1539 | "email": "sebastian@phpunit.de", 1540 | "role": "lead" 1541 | } 1542 | ], 1543 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 1544 | "homepage": "https://github.com/sebastianbergmann/version", 1545 | "time": "2016-10-03T07:35:21+00:00" 1546 | }, 1547 | { 1548 | "name": "symfony/polyfill-ctype", 1549 | "version": "v1.12.0", 1550 | "source": { 1551 | "type": "git", 1552 | "url": "https://github.com/symfony/polyfill-ctype.git", 1553 | "reference": "550ebaac289296ce228a706d0867afc34687e3f4" 1554 | }, 1555 | "dist": { 1556 | "type": "zip", 1557 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", 1558 | "reference": "550ebaac289296ce228a706d0867afc34687e3f4", 1559 | "shasum": "" 1560 | }, 1561 | "require": { 1562 | "php": ">=5.3.3" 1563 | }, 1564 | "suggest": { 1565 | "ext-ctype": "For best performance" 1566 | }, 1567 | "type": "library", 1568 | "extra": { 1569 | "branch-alias": { 1570 | "dev-master": "1.12-dev" 1571 | } 1572 | }, 1573 | "autoload": { 1574 | "psr-4": { 1575 | "Symfony\\Polyfill\\Ctype\\": "" 1576 | }, 1577 | "files": [ 1578 | "bootstrap.php" 1579 | ] 1580 | }, 1581 | "notification-url": "https://packagist.org/downloads/", 1582 | "license": [ 1583 | "MIT" 1584 | ], 1585 | "authors": [ 1586 | { 1587 | "name": "Gert de Pagter", 1588 | "email": "BackEndTea@gmail.com" 1589 | }, 1590 | { 1591 | "name": "Symfony Community", 1592 | "homepage": "https://symfony.com/contributors" 1593 | } 1594 | ], 1595 | "description": "Symfony polyfill for ctype functions", 1596 | "homepage": "https://symfony.com", 1597 | "keywords": [ 1598 | "compatibility", 1599 | "ctype", 1600 | "polyfill", 1601 | "portable" 1602 | ], 1603 | "time": "2019-08-06T08:03:45+00:00" 1604 | }, 1605 | { 1606 | "name": "symfony/polyfill-mbstring", 1607 | "version": "v1.12.0", 1608 | "source": { 1609 | "type": "git", 1610 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1611 | "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" 1612 | }, 1613 | "dist": { 1614 | "type": "zip", 1615 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", 1616 | "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", 1617 | "shasum": "" 1618 | }, 1619 | "require": { 1620 | "php": ">=5.3.3" 1621 | }, 1622 | "suggest": { 1623 | "ext-mbstring": "For best performance" 1624 | }, 1625 | "type": "library", 1626 | "extra": { 1627 | "branch-alias": { 1628 | "dev-master": "1.12-dev" 1629 | } 1630 | }, 1631 | "autoload": { 1632 | "psr-4": { 1633 | "Symfony\\Polyfill\\Mbstring\\": "" 1634 | }, 1635 | "files": [ 1636 | "bootstrap.php" 1637 | ] 1638 | }, 1639 | "notification-url": "https://packagist.org/downloads/", 1640 | "license": [ 1641 | "MIT" 1642 | ], 1643 | "authors": [ 1644 | { 1645 | "name": "Nicolas Grekas", 1646 | "email": "p@tchwork.com" 1647 | }, 1648 | { 1649 | "name": "Symfony Community", 1650 | "homepage": "https://symfony.com/contributors" 1651 | } 1652 | ], 1653 | "description": "Symfony polyfill for the Mbstring extension", 1654 | "homepage": "https://symfony.com", 1655 | "keywords": [ 1656 | "compatibility", 1657 | "mbstring", 1658 | "polyfill", 1659 | "portable", 1660 | "shim" 1661 | ], 1662 | "time": "2019-08-06T08:03:45+00:00" 1663 | }, 1664 | { 1665 | "name": "symfony/polyfill-php72", 1666 | "version": "v1.12.0", 1667 | "source": { 1668 | "type": "git", 1669 | "url": "https://github.com/symfony/polyfill-php72.git", 1670 | "reference": "04ce3335667451138df4307d6a9b61565560199e" 1671 | }, 1672 | "dist": { 1673 | "type": "zip", 1674 | "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/04ce3335667451138df4307d6a9b61565560199e", 1675 | "reference": "04ce3335667451138df4307d6a9b61565560199e", 1676 | "shasum": "" 1677 | }, 1678 | "require": { 1679 | "php": ">=5.3.3" 1680 | }, 1681 | "type": "library", 1682 | "extra": { 1683 | "branch-alias": { 1684 | "dev-master": "1.12-dev" 1685 | } 1686 | }, 1687 | "autoload": { 1688 | "psr-4": { 1689 | "Symfony\\Polyfill\\Php72\\": "" 1690 | }, 1691 | "files": [ 1692 | "bootstrap.php" 1693 | ] 1694 | }, 1695 | "notification-url": "https://packagist.org/downloads/", 1696 | "license": [ 1697 | "MIT" 1698 | ], 1699 | "authors": [ 1700 | { 1701 | "name": "Nicolas Grekas", 1702 | "email": "p@tchwork.com" 1703 | }, 1704 | { 1705 | "name": "Symfony Community", 1706 | "homepage": "https://symfony.com/contributors" 1707 | } 1708 | ], 1709 | "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", 1710 | "homepage": "https://symfony.com", 1711 | "keywords": [ 1712 | "compatibility", 1713 | "polyfill", 1714 | "portable", 1715 | "shim" 1716 | ], 1717 | "time": "2019-08-06T08:03:45+00:00" 1718 | }, 1719 | { 1720 | "name": "symfony/var-dumper", 1721 | "version": "v4.3.4", 1722 | "source": { 1723 | "type": "git", 1724 | "url": "https://github.com/symfony/var-dumper.git", 1725 | "reference": "641043e0f3e615990a0f29479f9c117e8a6698c6" 1726 | }, 1727 | "dist": { 1728 | "type": "zip", 1729 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/641043e0f3e615990a0f29479f9c117e8a6698c6", 1730 | "reference": "641043e0f3e615990a0f29479f9c117e8a6698c6", 1731 | "shasum": "" 1732 | }, 1733 | "require": { 1734 | "php": "^7.1.3", 1735 | "symfony/polyfill-mbstring": "~1.0", 1736 | "symfony/polyfill-php72": "~1.5" 1737 | }, 1738 | "conflict": { 1739 | "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", 1740 | "symfony/console": "<3.4" 1741 | }, 1742 | "require-dev": { 1743 | "ext-iconv": "*", 1744 | "symfony/console": "~3.4|~4.0", 1745 | "symfony/process": "~3.4|~4.0", 1746 | "twig/twig": "~1.34|~2.4" 1747 | }, 1748 | "suggest": { 1749 | "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", 1750 | "ext-intl": "To show region name in time zone dump", 1751 | "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" 1752 | }, 1753 | "bin": [ 1754 | "Resources/bin/var-dump-server" 1755 | ], 1756 | "type": "library", 1757 | "extra": { 1758 | "branch-alias": { 1759 | "dev-master": "4.3-dev" 1760 | } 1761 | }, 1762 | "autoload": { 1763 | "files": [ 1764 | "Resources/functions/dump.php" 1765 | ], 1766 | "psr-4": { 1767 | "Symfony\\Component\\VarDumper\\": "" 1768 | }, 1769 | "exclude-from-classmap": [ 1770 | "/Tests/" 1771 | ] 1772 | }, 1773 | "notification-url": "https://packagist.org/downloads/", 1774 | "license": [ 1775 | "MIT" 1776 | ], 1777 | "authors": [ 1778 | { 1779 | "name": "Nicolas Grekas", 1780 | "email": "p@tchwork.com" 1781 | }, 1782 | { 1783 | "name": "Symfony Community", 1784 | "homepage": "https://symfony.com/contributors" 1785 | } 1786 | ], 1787 | "description": "Symfony mechanism for exploring and dumping PHP variables", 1788 | "homepage": "https://symfony.com", 1789 | "keywords": [ 1790 | "debug", 1791 | "dump" 1792 | ], 1793 | "time": "2019-08-26T08:26:39+00:00" 1794 | }, 1795 | { 1796 | "name": "theseer/tokenizer", 1797 | "version": "1.1.3", 1798 | "source": { 1799 | "type": "git", 1800 | "url": "https://github.com/theseer/tokenizer.git", 1801 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" 1802 | }, 1803 | "dist": { 1804 | "type": "zip", 1805 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", 1806 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", 1807 | "shasum": "" 1808 | }, 1809 | "require": { 1810 | "ext-dom": "*", 1811 | "ext-tokenizer": "*", 1812 | "ext-xmlwriter": "*", 1813 | "php": "^7.0" 1814 | }, 1815 | "type": "library", 1816 | "autoload": { 1817 | "classmap": [ 1818 | "src/" 1819 | ] 1820 | }, 1821 | "notification-url": "https://packagist.org/downloads/", 1822 | "license": [ 1823 | "BSD-3-Clause" 1824 | ], 1825 | "authors": [ 1826 | { 1827 | "name": "Arne Blankerts", 1828 | "email": "arne@blankerts.de", 1829 | "role": "Developer" 1830 | } 1831 | ], 1832 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 1833 | "time": "2019-06-13T22:48:21+00:00" 1834 | }, 1835 | { 1836 | "name": "tightenco/collect", 1837 | "version": "v5.8.35", 1838 | "source": { 1839 | "type": "git", 1840 | "url": "https://github.com/tightenco/collect.git", 1841 | "reference": "c93a7039e6207ad533a09109838fe80933fcc72c" 1842 | }, 1843 | "dist": { 1844 | "type": "zip", 1845 | "url": "https://api.github.com/repos/tightenco/collect/zipball/c93a7039e6207ad533a09109838fe80933fcc72c", 1846 | "reference": "c93a7039e6207ad533a09109838fe80933fcc72c", 1847 | "shasum": "" 1848 | }, 1849 | "require": { 1850 | "php": "^7.1.3", 1851 | "symfony/var-dumper": ">=3.4 <5" 1852 | }, 1853 | "require-dev": { 1854 | "mockery/mockery": "^1.0", 1855 | "nesbot/carbon": "^1.26.3", 1856 | "phpunit/phpunit": "^7.0" 1857 | }, 1858 | "type": "library", 1859 | "autoload": { 1860 | "files": [ 1861 | "src/Collect/Support/helpers.php", 1862 | "src/Collect/Support/alias.php" 1863 | ], 1864 | "psr-4": { 1865 | "Tightenco\\Collect\\": "src/Collect" 1866 | } 1867 | }, 1868 | "notification-url": "https://packagist.org/downloads/", 1869 | "license": [ 1870 | "MIT" 1871 | ], 1872 | "authors": [ 1873 | { 1874 | "name": "Taylor Otwell", 1875 | "email": "taylorotwell@gmail.com" 1876 | } 1877 | ], 1878 | "description": "Collect - Illuminate Collections as a separate package.", 1879 | "keywords": [ 1880 | "collection", 1881 | "laravel" 1882 | ], 1883 | "time": "2019-09-17T18:57:01+00:00" 1884 | }, 1885 | { 1886 | "name": "webmozart/assert", 1887 | "version": "1.5.0", 1888 | "source": { 1889 | "type": "git", 1890 | "url": "https://github.com/webmozart/assert.git", 1891 | "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" 1892 | }, 1893 | "dist": { 1894 | "type": "zip", 1895 | "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", 1896 | "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", 1897 | "shasum": "" 1898 | }, 1899 | "require": { 1900 | "php": "^5.3.3 || ^7.0", 1901 | "symfony/polyfill-ctype": "^1.8" 1902 | }, 1903 | "require-dev": { 1904 | "phpunit/phpunit": "^4.8.36 || ^7.5.13" 1905 | }, 1906 | "type": "library", 1907 | "extra": { 1908 | "branch-alias": { 1909 | "dev-master": "1.3-dev" 1910 | } 1911 | }, 1912 | "autoload": { 1913 | "psr-4": { 1914 | "Webmozart\\Assert\\": "src/" 1915 | } 1916 | }, 1917 | "notification-url": "https://packagist.org/downloads/", 1918 | "license": [ 1919 | "MIT" 1920 | ], 1921 | "authors": [ 1922 | { 1923 | "name": "Bernhard Schussek", 1924 | "email": "bschussek@gmail.com" 1925 | } 1926 | ], 1927 | "description": "Assertions to validate method input/output with nice error messages.", 1928 | "keywords": [ 1929 | "assert", 1930 | "check", 1931 | "validate" 1932 | ], 1933 | "time": "2019-08-24T08:43:50+00:00" 1934 | } 1935 | ], 1936 | "packages-dev": [ 1937 | { 1938 | "name": "composer/xdebug-handler", 1939 | "version": "1.3.3", 1940 | "source": { 1941 | "type": "git", 1942 | "url": "https://github.com/composer/xdebug-handler.git", 1943 | "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f" 1944 | }, 1945 | "dist": { 1946 | "type": "zip", 1947 | "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/46867cbf8ca9fb8d60c506895449eb799db1184f", 1948 | "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f", 1949 | "shasum": "" 1950 | }, 1951 | "require": { 1952 | "php": "^5.3.2 || ^7.0", 1953 | "psr/log": "^1.0" 1954 | }, 1955 | "require-dev": { 1956 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" 1957 | }, 1958 | "type": "library", 1959 | "autoload": { 1960 | "psr-4": { 1961 | "Composer\\XdebugHandler\\": "src" 1962 | } 1963 | }, 1964 | "notification-url": "https://packagist.org/downloads/", 1965 | "license": [ 1966 | "MIT" 1967 | ], 1968 | "authors": [ 1969 | { 1970 | "name": "John Stevenson", 1971 | "email": "john-stevenson@blueyonder.co.uk" 1972 | } 1973 | ], 1974 | "description": "Restarts a process without xdebug.", 1975 | "keywords": [ 1976 | "Xdebug", 1977 | "performance" 1978 | ], 1979 | "time": "2019-05-27T17:52:04+00:00" 1980 | }, 1981 | { 1982 | "name": "pdepend/pdepend", 1983 | "version": "2.5.2", 1984 | "source": { 1985 | "type": "git", 1986 | "url": "https://github.com/pdepend/pdepend.git", 1987 | "reference": "9daf26d0368d4a12bed1cacae1a9f3a6f0adf239" 1988 | }, 1989 | "dist": { 1990 | "type": "zip", 1991 | "url": "https://api.github.com/repos/pdepend/pdepend/zipball/9daf26d0368d4a12bed1cacae1a9f3a6f0adf239", 1992 | "reference": "9daf26d0368d4a12bed1cacae1a9f3a6f0adf239", 1993 | "shasum": "" 1994 | }, 1995 | "require": { 1996 | "php": ">=5.3.7", 1997 | "symfony/config": "^2.3.0|^3|^4", 1998 | "symfony/dependency-injection": "^2.3.0|^3|^4", 1999 | "symfony/filesystem": "^2.3.0|^3|^4" 2000 | }, 2001 | "require-dev": { 2002 | "phpunit/phpunit": "^4.8|^5.7", 2003 | "squizlabs/php_codesniffer": "^2.0.0" 2004 | }, 2005 | "bin": [ 2006 | "src/bin/pdepend" 2007 | ], 2008 | "type": "library", 2009 | "autoload": { 2010 | "psr-4": { 2011 | "PDepend\\": "src/main/php/PDepend" 2012 | } 2013 | }, 2014 | "notification-url": "https://packagist.org/downloads/", 2015 | "license": [ 2016 | "BSD-3-Clause" 2017 | ], 2018 | "description": "Official version of pdepend to be handled with Composer", 2019 | "time": "2017-12-13T13:21:38+00:00" 2020 | }, 2021 | { 2022 | "name": "phpmd/phpmd", 2023 | "version": "dev-master", 2024 | "source": { 2025 | "type": "git", 2026 | "url": "https://github.com/phpmd/phpmd.git", 2027 | "reference": "b9eaa0fe7f38c1f017a5ed8564f1cd63d136ed2c" 2028 | }, 2029 | "dist": { 2030 | "type": "zip", 2031 | "url": "https://api.github.com/repos/phpmd/phpmd/zipball/b9eaa0fe7f38c1f017a5ed8564f1cd63d136ed2c", 2032 | "reference": "b9eaa0fe7f38c1f017a5ed8564f1cd63d136ed2c", 2033 | "shasum": "" 2034 | }, 2035 | "require": { 2036 | "composer/xdebug-handler": "^1.0", 2037 | "ext-xml": "*", 2038 | "pdepend/pdepend": "^2.5", 2039 | "php": ">=5.3.9" 2040 | }, 2041 | "require-dev": { 2042 | "gregwar/rst": "^1.0", 2043 | "mikey179/vfsstream": "^1.6.4", 2044 | "phpunit/phpunit": "^4.8.36 || ^5.7.27", 2045 | "squizlabs/php_codesniffer": "^2.0" 2046 | }, 2047 | "bin": [ 2048 | "src/bin/phpmd" 2049 | ], 2050 | "type": "library", 2051 | "autoload": { 2052 | "psr-0": { 2053 | "PHPMD\\": "src/main/php" 2054 | } 2055 | }, 2056 | "notification-url": "https://packagist.org/downloads/", 2057 | "license": [ 2058 | "BSD-3-Clause" 2059 | ], 2060 | "authors": [ 2061 | { 2062 | "name": "Manuel Pichler", 2063 | "email": "github@manuel-pichler.de", 2064 | "homepage": "https://github.com/manuelpichler", 2065 | "role": "Project Founder" 2066 | }, 2067 | { 2068 | "name": "Marc Würth", 2069 | "email": "ravage@bluewin.ch", 2070 | "homepage": "https://github.com/ravage84", 2071 | "role": "Project Maintainer" 2072 | }, 2073 | { 2074 | "name": "Other contributors", 2075 | "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", 2076 | "role": "Contributors" 2077 | } 2078 | ], 2079 | "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", 2080 | "homepage": "https://phpmd.org/", 2081 | "keywords": [ 2082 | "mess detection", 2083 | "mess detector", 2084 | "pdepend", 2085 | "phpmd", 2086 | "pmd" 2087 | ], 2088 | "time": "2019-09-05T08:04:18+00:00" 2089 | }, 2090 | { 2091 | "name": "psr/container", 2092 | "version": "1.0.0", 2093 | "source": { 2094 | "type": "git", 2095 | "url": "https://github.com/php-fig/container.git", 2096 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 2097 | }, 2098 | "dist": { 2099 | "type": "zip", 2100 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 2101 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 2102 | "shasum": "" 2103 | }, 2104 | "require": { 2105 | "php": ">=5.3.0" 2106 | }, 2107 | "type": "library", 2108 | "extra": { 2109 | "branch-alias": { 2110 | "dev-master": "1.0.x-dev" 2111 | } 2112 | }, 2113 | "autoload": { 2114 | "psr-4": { 2115 | "Psr\\Container\\": "src/" 2116 | } 2117 | }, 2118 | "notification-url": "https://packagist.org/downloads/", 2119 | "license": [ 2120 | "MIT" 2121 | ], 2122 | "authors": [ 2123 | { 2124 | "name": "PHP-FIG", 2125 | "homepage": "http://www.php-fig.org/" 2126 | } 2127 | ], 2128 | "description": "Common Container Interface (PHP FIG PSR-11)", 2129 | "homepage": "https://github.com/php-fig/container", 2130 | "keywords": [ 2131 | "PSR-11", 2132 | "container", 2133 | "container-interface", 2134 | "container-interop", 2135 | "psr" 2136 | ], 2137 | "time": "2017-02-14T16:28:37+00:00" 2138 | }, 2139 | { 2140 | "name": "psr/log", 2141 | "version": "1.1.0", 2142 | "source": { 2143 | "type": "git", 2144 | "url": "https://github.com/php-fig/log.git", 2145 | "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" 2146 | }, 2147 | "dist": { 2148 | "type": "zip", 2149 | "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", 2150 | "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", 2151 | "shasum": "" 2152 | }, 2153 | "require": { 2154 | "php": ">=5.3.0" 2155 | }, 2156 | "type": "library", 2157 | "extra": { 2158 | "branch-alias": { 2159 | "dev-master": "1.0.x-dev" 2160 | } 2161 | }, 2162 | "autoload": { 2163 | "psr-4": { 2164 | "Psr\\Log\\": "Psr/Log/" 2165 | } 2166 | }, 2167 | "notification-url": "https://packagist.org/downloads/", 2168 | "license": [ 2169 | "MIT" 2170 | ], 2171 | "authors": [ 2172 | { 2173 | "name": "PHP-FIG", 2174 | "homepage": "http://www.php-fig.org/" 2175 | } 2176 | ], 2177 | "description": "Common interface for logging libraries", 2178 | "homepage": "https://github.com/php-fig/log", 2179 | "keywords": [ 2180 | "log", 2181 | "psr", 2182 | "psr-3" 2183 | ], 2184 | "time": "2018-11-20T15:27:04+00:00" 2185 | }, 2186 | { 2187 | "name": "squizlabs/php_codesniffer", 2188 | "version": "3.5.0", 2189 | "source": { 2190 | "type": "git", 2191 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", 2192 | "reference": "0afebf16a2e7f1e434920fa976253576151effe9" 2193 | }, 2194 | "dist": { 2195 | "type": "zip", 2196 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/0afebf16a2e7f1e434920fa976253576151effe9", 2197 | "reference": "0afebf16a2e7f1e434920fa976253576151effe9", 2198 | "shasum": "" 2199 | }, 2200 | "require": { 2201 | "ext-simplexml": "*", 2202 | "ext-tokenizer": "*", 2203 | "ext-xmlwriter": "*", 2204 | "php": ">=5.4.0" 2205 | }, 2206 | "require-dev": { 2207 | "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" 2208 | }, 2209 | "bin": [ 2210 | "bin/phpcs", 2211 | "bin/phpcbf" 2212 | ], 2213 | "type": "library", 2214 | "extra": { 2215 | "branch-alias": { 2216 | "dev-master": "3.x-dev" 2217 | } 2218 | }, 2219 | "notification-url": "https://packagist.org/downloads/", 2220 | "license": [ 2221 | "BSD-3-Clause" 2222 | ], 2223 | "authors": [ 2224 | { 2225 | "name": "Greg Sherwood", 2226 | "role": "lead" 2227 | } 2228 | ], 2229 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 2230 | "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", 2231 | "keywords": [ 2232 | "phpcs", 2233 | "standards" 2234 | ], 2235 | "time": "2019-09-26T23:12:26+00:00" 2236 | }, 2237 | { 2238 | "name": "symfony/config", 2239 | "version": "v4.3.4", 2240 | "source": { 2241 | "type": "git", 2242 | "url": "https://github.com/symfony/config.git", 2243 | "reference": "07d49c0f823e0bc367c6d84e35b61419188a5ece" 2244 | }, 2245 | "dist": { 2246 | "type": "zip", 2247 | "url": "https://api.github.com/repos/symfony/config/zipball/07d49c0f823e0bc367c6d84e35b61419188a5ece", 2248 | "reference": "07d49c0f823e0bc367c6d84e35b61419188a5ece", 2249 | "shasum": "" 2250 | }, 2251 | "require": { 2252 | "php": "^7.1.3", 2253 | "symfony/filesystem": "~3.4|~4.0", 2254 | "symfony/polyfill-ctype": "~1.8" 2255 | }, 2256 | "conflict": { 2257 | "symfony/finder": "<3.4" 2258 | }, 2259 | "require-dev": { 2260 | "symfony/dependency-injection": "~3.4|~4.0", 2261 | "symfony/event-dispatcher": "~3.4|~4.0", 2262 | "symfony/finder": "~3.4|~4.0", 2263 | "symfony/messenger": "~4.1", 2264 | "symfony/yaml": "~3.4|~4.0" 2265 | }, 2266 | "suggest": { 2267 | "symfony/yaml": "To use the yaml reference dumper" 2268 | }, 2269 | "type": "library", 2270 | "extra": { 2271 | "branch-alias": { 2272 | "dev-master": "4.3-dev" 2273 | } 2274 | }, 2275 | "autoload": { 2276 | "psr-4": { 2277 | "Symfony\\Component\\Config\\": "" 2278 | }, 2279 | "exclude-from-classmap": [ 2280 | "/Tests/" 2281 | ] 2282 | }, 2283 | "notification-url": "https://packagist.org/downloads/", 2284 | "license": [ 2285 | "MIT" 2286 | ], 2287 | "authors": [ 2288 | { 2289 | "name": "Fabien Potencier", 2290 | "email": "fabien@symfony.com" 2291 | }, 2292 | { 2293 | "name": "Symfony Community", 2294 | "homepage": "https://symfony.com/contributors" 2295 | } 2296 | ], 2297 | "description": "Symfony Config Component", 2298 | "homepage": "https://symfony.com", 2299 | "time": "2019-08-26T08:26:39+00:00" 2300 | }, 2301 | { 2302 | "name": "symfony/dependency-injection", 2303 | "version": "v4.3.4", 2304 | "source": { 2305 | "type": "git", 2306 | "url": "https://github.com/symfony/dependency-injection.git", 2307 | "reference": "d3ad14b66ac773ba6123622eb9b5b010165fe3d9" 2308 | }, 2309 | "dist": { 2310 | "type": "zip", 2311 | "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d3ad14b66ac773ba6123622eb9b5b010165fe3d9", 2312 | "reference": "d3ad14b66ac773ba6123622eb9b5b010165fe3d9", 2313 | "shasum": "" 2314 | }, 2315 | "require": { 2316 | "php": "^7.1.3", 2317 | "psr/container": "^1.0", 2318 | "symfony/service-contracts": "^1.1.6" 2319 | }, 2320 | "conflict": { 2321 | "symfony/config": "<4.3", 2322 | "symfony/finder": "<3.4", 2323 | "symfony/proxy-manager-bridge": "<3.4", 2324 | "symfony/yaml": "<3.4" 2325 | }, 2326 | "provide": { 2327 | "psr/container-implementation": "1.0", 2328 | "symfony/service-implementation": "1.0" 2329 | }, 2330 | "require-dev": { 2331 | "symfony/config": "^4.3", 2332 | "symfony/expression-language": "~3.4|~4.0", 2333 | "symfony/yaml": "~3.4|~4.0" 2334 | }, 2335 | "suggest": { 2336 | "symfony/config": "", 2337 | "symfony/expression-language": "For using expressions in service container configuration", 2338 | "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", 2339 | "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", 2340 | "symfony/yaml": "" 2341 | }, 2342 | "type": "library", 2343 | "extra": { 2344 | "branch-alias": { 2345 | "dev-master": "4.3-dev" 2346 | } 2347 | }, 2348 | "autoload": { 2349 | "psr-4": { 2350 | "Symfony\\Component\\DependencyInjection\\": "" 2351 | }, 2352 | "exclude-from-classmap": [ 2353 | "/Tests/" 2354 | ] 2355 | }, 2356 | "notification-url": "https://packagist.org/downloads/", 2357 | "license": [ 2358 | "MIT" 2359 | ], 2360 | "authors": [ 2361 | { 2362 | "name": "Fabien Potencier", 2363 | "email": "fabien@symfony.com" 2364 | }, 2365 | { 2366 | "name": "Symfony Community", 2367 | "homepage": "https://symfony.com/contributors" 2368 | } 2369 | ], 2370 | "description": "Symfony DependencyInjection Component", 2371 | "homepage": "https://symfony.com", 2372 | "time": "2019-08-26T16:27:33+00:00" 2373 | }, 2374 | { 2375 | "name": "symfony/filesystem", 2376 | "version": "v4.3.4", 2377 | "source": { 2378 | "type": "git", 2379 | "url": "https://github.com/symfony/filesystem.git", 2380 | "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263" 2381 | }, 2382 | "dist": { 2383 | "type": "zip", 2384 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/9abbb7ef96a51f4d7e69627bc6f63307994e4263", 2385 | "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263", 2386 | "shasum": "" 2387 | }, 2388 | "require": { 2389 | "php": "^7.1.3", 2390 | "symfony/polyfill-ctype": "~1.8" 2391 | }, 2392 | "type": "library", 2393 | "extra": { 2394 | "branch-alias": { 2395 | "dev-master": "4.3-dev" 2396 | } 2397 | }, 2398 | "autoload": { 2399 | "psr-4": { 2400 | "Symfony\\Component\\Filesystem\\": "" 2401 | }, 2402 | "exclude-from-classmap": [ 2403 | "/Tests/" 2404 | ] 2405 | }, 2406 | "notification-url": "https://packagist.org/downloads/", 2407 | "license": [ 2408 | "MIT" 2409 | ], 2410 | "authors": [ 2411 | { 2412 | "name": "Fabien Potencier", 2413 | "email": "fabien@symfony.com" 2414 | }, 2415 | { 2416 | "name": "Symfony Community", 2417 | "homepage": "https://symfony.com/contributors" 2418 | } 2419 | ], 2420 | "description": "Symfony Filesystem Component", 2421 | "homepage": "https://symfony.com", 2422 | "time": "2019-08-20T14:07:54+00:00" 2423 | }, 2424 | { 2425 | "name": "symfony/service-contracts", 2426 | "version": "v1.1.6", 2427 | "source": { 2428 | "type": "git", 2429 | "url": "https://github.com/symfony/service-contracts.git", 2430 | "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3" 2431 | }, 2432 | "dist": { 2433 | "type": "zip", 2434 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ea7263d6b6d5f798b56a45a5b8d686725f2719a3", 2435 | "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3", 2436 | "shasum": "" 2437 | }, 2438 | "require": { 2439 | "php": "^7.1.3", 2440 | "psr/container": "^1.0" 2441 | }, 2442 | "suggest": { 2443 | "symfony/service-implementation": "" 2444 | }, 2445 | "type": "library", 2446 | "extra": { 2447 | "branch-alias": { 2448 | "dev-master": "1.1-dev" 2449 | } 2450 | }, 2451 | "autoload": { 2452 | "psr-4": { 2453 | "Symfony\\Contracts\\Service\\": "" 2454 | } 2455 | }, 2456 | "notification-url": "https://packagist.org/downloads/", 2457 | "license": [ 2458 | "MIT" 2459 | ], 2460 | "authors": [ 2461 | { 2462 | "name": "Nicolas Grekas", 2463 | "email": "p@tchwork.com" 2464 | }, 2465 | { 2466 | "name": "Symfony Community", 2467 | "homepage": "https://symfony.com/contributors" 2468 | } 2469 | ], 2470 | "description": "Generic abstractions related to writing services", 2471 | "homepage": "https://symfony.com", 2472 | "keywords": [ 2473 | "abstractions", 2474 | "contracts", 2475 | "decoupling", 2476 | "interfaces", 2477 | "interoperability", 2478 | "standards" 2479 | ], 2480 | "time": "2019-08-20T14:44:19+00:00" 2481 | } 2482 | ], 2483 | "aliases": [], 2484 | "minimum-stability": "stable", 2485 | "stability-flags": { 2486 | "nikic/php-parser": 20, 2487 | "phpmd/phpmd": 20, 2488 | "squizlabs/php_codesniffer": 20 2489 | }, 2490 | "prefer-stable": true, 2491 | "prefer-lowest": false, 2492 | "platform": [], 2493 | "platform-dev": [] 2494 | } 2495 | -------------------------------------------------------------------------------- /config/handlers.php: -------------------------------------------------------------------------------- 1 | 2 |