├── .gitignore ├── .travis.yml ├── LICENSE ├── composer.json ├── composer.lock ├── example.php ├── readme.MD ├── runCodeSniffer.sh ├── runUnitTests.sh ├── src ├── FloatHex │ ├── Float32Info.php │ └── FloatInfo.php └── functions.php └── test ├── FloatHexTest ├── BaseTestCase.php └── FloatHexTest.php ├── codesniffer.xml ├── codesniffer_tests.xml ├── phpunit.xml └── phpunit_bootstrap.php /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | dist: trusty 2 | 3 | language: php 4 | 5 | php: 6 | - "7.4" 7 | # - "nightly" 8 | 9 | before_script: 10 | - composer install 11 | 12 | script: 13 | - bash runCodeSniffer.sh 14 | - bash runUnitTests.sh 15 | 16 | notifications: 17 | email: false 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Danack 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 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "danack/float-hex", 3 | "description": "Float to hex strings, and float comparison.", 4 | "type": "library", 5 | "license": "MIT", 6 | "authors": [ 7 | { 8 | "name": "Danack", 9 | "email": "Danack@basereality.com" 10 | } 11 | ], 12 | "autoload": { 13 | "files": [ 14 | "src/functions.php" 15 | ], 16 | "psr-0": { 17 | "FloatHex\\": "src/" 18 | } 19 | }, 20 | "autoload-dev": { 21 | "psr-0": { 22 | "FloatHexTest\\": "test/" 23 | } 24 | }, 25 | "require": { 26 | "php" : ">= 7.4" 27 | }, 28 | "require-dev": { 29 | "danack/coding-standard": "0.2.0", 30 | "infection/infection": "^0.15.3", 31 | "phpunit/phpunit": "9.0.1", 32 | "phpstan/phpstan-strict-rules": "^0.11", 33 | "slevomat/coding-standard": "^4.8.4", 34 | "squizlabs/php_codesniffer": "^3.3.1", 35 | "yoast/yoastcs": "1.0" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /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": "a388eedee6c193dd81be4bad85ba7648", 8 | "packages": [], 9 | "packages-dev": [ 10 | { 11 | "name": "composer/package-versions-deprecated", 12 | "version": "1.10.99.1", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/composer/package-versions-deprecated.git", 16 | "reference": "68c9b502036e820c33445ff4d174327f6bb87486" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/68c9b502036e820c33445ff4d174327f6bb87486", 21 | "reference": "68c9b502036e820c33445ff4d174327f6bb87486", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "composer-plugin-api": "^1.1.0 || ^2.0", 26 | "php": "^7 || ^8" 27 | }, 28 | "replace": { 29 | "ocramius/package-versions": "1.10.99" 30 | }, 31 | "require-dev": { 32 | "composer/composer": "^1.9.3 || ^2.0@dev", 33 | "ext-zip": "^1.13", 34 | "phpunit/phpunit": "^6.5 || ^7" 35 | }, 36 | "type": "composer-plugin", 37 | "extra": { 38 | "class": "PackageVersions\\Installer", 39 | "branch-alias": { 40 | "dev-master": "1.x-dev" 41 | } 42 | }, 43 | "autoload": { 44 | "psr-4": { 45 | "PackageVersions\\": "src/PackageVersions" 46 | } 47 | }, 48 | "notification-url": "https://packagist.org/downloads/", 49 | "license": [ 50 | "MIT" 51 | ], 52 | "authors": [ 53 | { 54 | "name": "Marco Pivetta", 55 | "email": "ocramius@gmail.com" 56 | }, 57 | { 58 | "name": "Jordi Boggiano", 59 | "email": "j.boggiano@seld.be" 60 | } 61 | ], 62 | "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", 63 | "time": "2020-08-13T12:55:41+00:00" 64 | }, 65 | { 66 | "name": "composer/xdebug-handler", 67 | "version": "1.4.3", 68 | "source": { 69 | "type": "git", 70 | "url": "https://github.com/composer/xdebug-handler.git", 71 | "reference": "ebd27a9866ae8254e873866f795491f02418c5a5" 72 | }, 73 | "dist": { 74 | "type": "zip", 75 | "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ebd27a9866ae8254e873866f795491f02418c5a5", 76 | "reference": "ebd27a9866ae8254e873866f795491f02418c5a5", 77 | "shasum": "" 78 | }, 79 | "require": { 80 | "php": "^5.3.2 || ^7.0 || ^8.0", 81 | "psr/log": "^1.0" 82 | }, 83 | "require-dev": { 84 | "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" 85 | }, 86 | "type": "library", 87 | "autoload": { 88 | "psr-4": { 89 | "Composer\\XdebugHandler\\": "src" 90 | } 91 | }, 92 | "notification-url": "https://packagist.org/downloads/", 93 | "license": [ 94 | "MIT" 95 | ], 96 | "authors": [ 97 | { 98 | "name": "John Stevenson", 99 | "email": "john-stevenson@blueyonder.co.uk" 100 | } 101 | ], 102 | "description": "Restarts a process without Xdebug.", 103 | "keywords": [ 104 | "Xdebug", 105 | "performance" 106 | ], 107 | "time": "2020-08-19T10:27:58+00:00" 108 | }, 109 | { 110 | "name": "danack/coding-standard", 111 | "version": "0.2.0", 112 | "source": { 113 | "type": "git", 114 | "url": "https://github.com/Danack/coding-standard.git", 115 | "reference": "87cec5125d7fcc21e4728dee253dcf71876664be" 116 | }, 117 | "dist": { 118 | "type": "zip", 119 | "url": "https://api.github.com/repos/Danack/coding-standard/zipball/87cec5125d7fcc21e4728dee253dcf71876664be", 120 | "reference": "87cec5125d7fcc21e4728dee253dcf71876664be", 121 | "shasum": "" 122 | }, 123 | "require": { 124 | "php": "^7.1", 125 | "squizlabs/php_codesniffer": "^3.4.0" 126 | }, 127 | "type": "phpcodesniffer-standard", 128 | "notification-url": "https://packagist.org/downloads/", 129 | "license": [ 130 | "MIT" 131 | ], 132 | "description": "Danack Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", 133 | "time": "2020-03-19T21:27:07+00:00" 134 | }, 135 | { 136 | "name": "doctrine/instantiator", 137 | "version": "1.3.1", 138 | "source": { 139 | "type": "git", 140 | "url": "https://github.com/doctrine/instantiator.git", 141 | "reference": "f350df0268e904597e3bd9c4685c53e0e333feea" 142 | }, 143 | "dist": { 144 | "type": "zip", 145 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea", 146 | "reference": "f350df0268e904597e3bd9c4685c53e0e333feea", 147 | "shasum": "" 148 | }, 149 | "require": { 150 | "php": "^7.1 || ^8.0" 151 | }, 152 | "require-dev": { 153 | "doctrine/coding-standard": "^6.0", 154 | "ext-pdo": "*", 155 | "ext-phar": "*", 156 | "phpbench/phpbench": "^0.13", 157 | "phpstan/phpstan-phpunit": "^0.11", 158 | "phpstan/phpstan-shim": "^0.11", 159 | "phpunit/phpunit": "^7.0" 160 | }, 161 | "type": "library", 162 | "extra": { 163 | "branch-alias": { 164 | "dev-master": "1.2.x-dev" 165 | } 166 | }, 167 | "autoload": { 168 | "psr-4": { 169 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 170 | } 171 | }, 172 | "notification-url": "https://packagist.org/downloads/", 173 | "license": [ 174 | "MIT" 175 | ], 176 | "authors": [ 177 | { 178 | "name": "Marco Pivetta", 179 | "email": "ocramius@gmail.com", 180 | "homepage": "http://ocramius.github.com/" 181 | } 182 | ], 183 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 184 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 185 | "keywords": [ 186 | "constructor", 187 | "instantiate" 188 | ], 189 | "time": "2020-05-29T17:27:14+00:00" 190 | }, 191 | { 192 | "name": "infection/infection", 193 | "version": "0.15.3", 194 | "source": { 195 | "type": "git", 196 | "url": "https://github.com/infection/infection.git", 197 | "reference": "c3fc380317eb14d213e1e1962801ee9325129fb2" 198 | }, 199 | "dist": { 200 | "type": "zip", 201 | "url": "https://api.github.com/repos/infection/infection/zipball/c3fc380317eb14d213e1e1962801ee9325129fb2", 202 | "reference": "c3fc380317eb14d213e1e1962801ee9325129fb2", 203 | "shasum": "" 204 | }, 205 | "require": { 206 | "composer/xdebug-handler": "^1.3.3", 207 | "ext-dom": "*", 208 | "ext-json": "*", 209 | "ext-libxml": "*", 210 | "justinrainbow/json-schema": "^5.2", 211 | "nikic/php-parser": "^4.2.2", 212 | "ocramius/package-versions": "^1.2", 213 | "php": "^7.2.9", 214 | "pimple/pimple": "^3.2", 215 | "sebastian/diff": "^3.0.2 || ^4.0", 216 | "seld/jsonlint": "^1.7", 217 | "symfony/console": "^3.4.29 || ^4.0 || ^5.0", 218 | "symfony/filesystem": "^3.4.29 || ^4.0 || ^5.0", 219 | "symfony/finder": "^3.4.29 || ^4.0 || ^5.0", 220 | "symfony/process": "^3.4.29 || ^4.0 || ^5.0", 221 | "symfony/yaml": "^3.4.29 || ^4.0 || ^5.0", 222 | "thecodingmachine/safe": "^1.0", 223 | "webmozart/assert": "^1.3", 224 | "webmozart/path-util": "^2.3" 225 | }, 226 | "conflict": { 227 | "symfony/console": "=4.1.5" 228 | }, 229 | "require-dev": { 230 | "helmich/phpunit-json-assert": "^3.0", 231 | "phpunit/phpunit": "^8.2.5 <8.4", 232 | "symfony/phpunit-bridge": "^4.3.4 || ^5.0" 233 | }, 234 | "bin": [ 235 | "bin/infection" 236 | ], 237 | "type": "library", 238 | "autoload": { 239 | "psr-4": { 240 | "Infection\\": "src/" 241 | } 242 | }, 243 | "notification-url": "https://packagist.org/downloads/", 244 | "license": [ 245 | "BSD-3-Clause" 246 | ], 247 | "authors": [ 248 | { 249 | "name": "Maks Rafalko", 250 | "email": "maks.rafalko@gmail.com", 251 | "homepage": "https://twitter.com/maks_rafalko" 252 | }, 253 | { 254 | "name": "Oleg Zhulnev", 255 | "homepage": "https://github.com/sidz" 256 | }, 257 | { 258 | "name": "Gert de Pagter", 259 | "homepage": "https://github.com/BackEndTea" 260 | }, 261 | { 262 | "name": "Théo FIDRY", 263 | "email": "theo.fidry@gmail.com", 264 | "homepage": "https://twitter.com/tfidry" 265 | }, 266 | { 267 | "name": "Alexey Kopytko", 268 | "email": "alexey@kopytko.com", 269 | "homepage": "https://www.alexeykopytko.com" 270 | }, 271 | { 272 | "name": "Andreas Möller", 273 | "email": "am@localheinz.com", 274 | "homepage": "https://localheinz.com" 275 | } 276 | ], 277 | "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.", 278 | "keywords": [ 279 | "coverage", 280 | "mutant", 281 | "mutation framework", 282 | "mutation testing", 283 | "testing", 284 | "unit testing" 285 | ], 286 | "time": "2020-02-16T19:33:49+00:00" 287 | }, 288 | { 289 | "name": "jean85/pretty-package-versions", 290 | "version": "1.5.0", 291 | "source": { 292 | "type": "git", 293 | "url": "https://github.com/Jean85/pretty-package-versions.git", 294 | "reference": "e9f4324e88b8664be386d90cf60fbc202e1f7fc9" 295 | }, 296 | "dist": { 297 | "type": "zip", 298 | "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/e9f4324e88b8664be386d90cf60fbc202e1f7fc9", 299 | "reference": "e9f4324e88b8664be386d90cf60fbc202e1f7fc9", 300 | "shasum": "" 301 | }, 302 | "require": { 303 | "composer/package-versions-deprecated": "^1.8.0", 304 | "php": "^7.0" 305 | }, 306 | "require-dev": { 307 | "phpunit/phpunit": "^6.0" 308 | }, 309 | "type": "library", 310 | "extra": { 311 | "branch-alias": { 312 | "dev-master": "1.x-dev" 313 | } 314 | }, 315 | "autoload": { 316 | "psr-4": { 317 | "Jean85\\": "src/" 318 | } 319 | }, 320 | "notification-url": "https://packagist.org/downloads/", 321 | "license": [ 322 | "MIT" 323 | ], 324 | "authors": [ 325 | { 326 | "name": "Alessandro Lai", 327 | "email": "alessandro.lai85@gmail.com" 328 | } 329 | ], 330 | "description": "A wrapper for ocramius/package-versions to get pretty versions strings", 331 | "keywords": [ 332 | "composer", 333 | "package", 334 | "release", 335 | "versions" 336 | ], 337 | "time": "2020-06-23T06:23:06+00:00" 338 | }, 339 | { 340 | "name": "justinrainbow/json-schema", 341 | "version": "5.2.10", 342 | "source": { 343 | "type": "git", 344 | "url": "https://github.com/justinrainbow/json-schema.git", 345 | "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" 346 | }, 347 | "dist": { 348 | "type": "zip", 349 | "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", 350 | "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", 351 | "shasum": "" 352 | }, 353 | "require": { 354 | "php": ">=5.3.3" 355 | }, 356 | "require-dev": { 357 | "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", 358 | "json-schema/json-schema-test-suite": "1.2.0", 359 | "phpunit/phpunit": "^4.8.35" 360 | }, 361 | "bin": [ 362 | "bin/validate-json" 363 | ], 364 | "type": "library", 365 | "extra": { 366 | "branch-alias": { 367 | "dev-master": "5.0.x-dev" 368 | } 369 | }, 370 | "autoload": { 371 | "psr-4": { 372 | "JsonSchema\\": "src/JsonSchema/" 373 | } 374 | }, 375 | "notification-url": "https://packagist.org/downloads/", 376 | "license": [ 377 | "MIT" 378 | ], 379 | "authors": [ 380 | { 381 | "name": "Bruno Prieto Reis", 382 | "email": "bruno.p.reis@gmail.com" 383 | }, 384 | { 385 | "name": "Justin Rainbow", 386 | "email": "justin.rainbow@gmail.com" 387 | }, 388 | { 389 | "name": "Igor Wiedler", 390 | "email": "igor@wiedler.ch" 391 | }, 392 | { 393 | "name": "Robert Schönthal", 394 | "email": "seroscho@googlemail.com" 395 | } 396 | ], 397 | "description": "A library to validate a json schema.", 398 | "homepage": "https://github.com/justinrainbow/json-schema", 399 | "keywords": [ 400 | "json", 401 | "schema" 402 | ], 403 | "time": "2020-05-27T16:41:55+00:00" 404 | }, 405 | { 406 | "name": "myclabs/deep-copy", 407 | "version": "1.10.1", 408 | "source": { 409 | "type": "git", 410 | "url": "https://github.com/myclabs/DeepCopy.git", 411 | "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5" 412 | }, 413 | "dist": { 414 | "type": "zip", 415 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", 416 | "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", 417 | "shasum": "" 418 | }, 419 | "require": { 420 | "php": "^7.1 || ^8.0" 421 | }, 422 | "replace": { 423 | "myclabs/deep-copy": "self.version" 424 | }, 425 | "require-dev": { 426 | "doctrine/collections": "^1.0", 427 | "doctrine/common": "^2.6", 428 | "phpunit/phpunit": "^7.1" 429 | }, 430 | "type": "library", 431 | "autoload": { 432 | "psr-4": { 433 | "DeepCopy\\": "src/DeepCopy/" 434 | }, 435 | "files": [ 436 | "src/DeepCopy/deep_copy.php" 437 | ] 438 | }, 439 | "notification-url": "https://packagist.org/downloads/", 440 | "license": [ 441 | "MIT" 442 | ], 443 | "description": "Create deep copies (clones) of your objects", 444 | "keywords": [ 445 | "clone", 446 | "copy", 447 | "duplicate", 448 | "object", 449 | "object graph" 450 | ], 451 | "time": "2020-06-29T13:22:24+00:00" 452 | }, 453 | { 454 | "name": "nette/bootstrap", 455 | "version": "v3.0.2", 456 | "source": { 457 | "type": "git", 458 | "url": "https://github.com/nette/bootstrap.git", 459 | "reference": "67830a65b42abfb906f8e371512d336ebfb5da93" 460 | }, 461 | "dist": { 462 | "type": "zip", 463 | "url": "https://api.github.com/repos/nette/bootstrap/zipball/67830a65b42abfb906f8e371512d336ebfb5da93", 464 | "reference": "67830a65b42abfb906f8e371512d336ebfb5da93", 465 | "shasum": "" 466 | }, 467 | "require": { 468 | "nette/di": "^3.0", 469 | "nette/utils": "^3.0", 470 | "php": ">=7.1" 471 | }, 472 | "conflict": { 473 | "tracy/tracy": "<2.6" 474 | }, 475 | "require-dev": { 476 | "latte/latte": "^2.2", 477 | "nette/application": "^3.0", 478 | "nette/caching": "^3.0", 479 | "nette/database": "^3.0", 480 | "nette/forms": "^3.0", 481 | "nette/http": "^3.0", 482 | "nette/mail": "^3.0", 483 | "nette/robot-loader": "^3.0", 484 | "nette/safe-stream": "^2.2", 485 | "nette/security": "^3.0", 486 | "nette/tester": "^2.0", 487 | "phpstan/phpstan-nette": "^0.12", 488 | "tracy/tracy": "^2.6" 489 | }, 490 | "suggest": { 491 | "nette/robot-loader": "to use Configurator::createRobotLoader()", 492 | "tracy/tracy": "to use Configurator::enableTracy()" 493 | }, 494 | "type": "library", 495 | "extra": { 496 | "branch-alias": { 497 | "dev-master": "3.0-dev" 498 | } 499 | }, 500 | "autoload": { 501 | "classmap": [ 502 | "src/" 503 | ] 504 | }, 505 | "notification-url": "https://packagist.org/downloads/", 506 | "license": [ 507 | "BSD-3-Clause", 508 | "GPL-2.0-only", 509 | "GPL-3.0-only" 510 | ], 511 | "authors": [ 512 | { 513 | "name": "David Grudl", 514 | "homepage": "https://davidgrudl.com" 515 | }, 516 | { 517 | "name": "Nette Community", 518 | "homepage": "https://nette.org/contributors" 519 | } 520 | ], 521 | "description": "🅱 Nette Bootstrap: the simple way to configure and bootstrap your Nette application.", 522 | "homepage": "https://nette.org", 523 | "keywords": [ 524 | "bootstrapping", 525 | "configurator", 526 | "nette" 527 | ], 528 | "time": "2020-05-26T08:46:23+00:00" 529 | }, 530 | { 531 | "name": "nette/di", 532 | "version": "v3.0.5", 533 | "source": { 534 | "type": "git", 535 | "url": "https://github.com/nette/di.git", 536 | "reference": "766e8185196a97ded4f9128db6d79a3a124b7eb6" 537 | }, 538 | "dist": { 539 | "type": "zip", 540 | "url": "https://api.github.com/repos/nette/di/zipball/766e8185196a97ded4f9128db6d79a3a124b7eb6", 541 | "reference": "766e8185196a97ded4f9128db6d79a3a124b7eb6", 542 | "shasum": "" 543 | }, 544 | "require": { 545 | "ext-tokenizer": "*", 546 | "nette/neon": "^3.0", 547 | "nette/php-generator": "^3.3.3", 548 | "nette/robot-loader": "^3.2", 549 | "nette/schema": "^1.0", 550 | "nette/utils": "^3.1", 551 | "php": ">=7.1" 552 | }, 553 | "conflict": { 554 | "nette/bootstrap": "<3.0" 555 | }, 556 | "require-dev": { 557 | "nette/tester": "^2.2", 558 | "phpstan/phpstan": "^0.12", 559 | "tracy/tracy": "^2.3" 560 | }, 561 | "type": "library", 562 | "extra": { 563 | "branch-alias": { 564 | "dev-master": "3.0-dev" 565 | } 566 | }, 567 | "autoload": { 568 | "classmap": [ 569 | "src/" 570 | ] 571 | }, 572 | "notification-url": "https://packagist.org/downloads/", 573 | "license": [ 574 | "BSD-3-Clause", 575 | "GPL-2.0-only", 576 | "GPL-3.0-only" 577 | ], 578 | "authors": [ 579 | { 580 | "name": "David Grudl", 581 | "homepage": "https://davidgrudl.com" 582 | }, 583 | { 584 | "name": "Nette Community", 585 | "homepage": "https://nette.org/contributors" 586 | } 587 | ], 588 | "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP 7.1 features.", 589 | "homepage": "https://nette.org", 590 | "keywords": [ 591 | "compiled", 592 | "di", 593 | "dic", 594 | "factory", 595 | "ioc", 596 | "nette", 597 | "static" 598 | ], 599 | "time": "2020-08-13T13:04:23+00:00" 600 | }, 601 | { 602 | "name": "nette/finder", 603 | "version": "v2.5.2", 604 | "source": { 605 | "type": "git", 606 | "url": "https://github.com/nette/finder.git", 607 | "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50" 608 | }, 609 | "dist": { 610 | "type": "zip", 611 | "url": "https://api.github.com/repos/nette/finder/zipball/4ad2c298eb8c687dd0e74ae84206a4186eeaed50", 612 | "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50", 613 | "shasum": "" 614 | }, 615 | "require": { 616 | "nette/utils": "^2.4 || ^3.0", 617 | "php": ">=7.1" 618 | }, 619 | "conflict": { 620 | "nette/nette": "<2.2" 621 | }, 622 | "require-dev": { 623 | "nette/tester": "^2.0", 624 | "phpstan/phpstan": "^0.12", 625 | "tracy/tracy": "^2.3" 626 | }, 627 | "type": "library", 628 | "extra": { 629 | "branch-alias": { 630 | "dev-master": "2.5-dev" 631 | } 632 | }, 633 | "autoload": { 634 | "classmap": [ 635 | "src/" 636 | ] 637 | }, 638 | "notification-url": "https://packagist.org/downloads/", 639 | "license": [ 640 | "BSD-3-Clause", 641 | "GPL-2.0", 642 | "GPL-3.0" 643 | ], 644 | "authors": [ 645 | { 646 | "name": "David Grudl", 647 | "homepage": "https://davidgrudl.com" 648 | }, 649 | { 650 | "name": "Nette Community", 651 | "homepage": "https://nette.org/contributors" 652 | } 653 | ], 654 | "description": "🔍 Nette Finder: find files and directories with an intuitive API.", 655 | "homepage": "https://nette.org", 656 | "keywords": [ 657 | "filesystem", 658 | "glob", 659 | "iterator", 660 | "nette" 661 | ], 662 | "time": "2020-01-03T20:35:40+00:00" 663 | }, 664 | { 665 | "name": "nette/neon", 666 | "version": "v3.2.1", 667 | "source": { 668 | "type": "git", 669 | "url": "https://github.com/nette/neon.git", 670 | "reference": "a5b3a60833d2ef55283a82d0c30b45d136b29e75" 671 | }, 672 | "dist": { 673 | "type": "zip", 674 | "url": "https://api.github.com/repos/nette/neon/zipball/a5b3a60833d2ef55283a82d0c30b45d136b29e75", 675 | "reference": "a5b3a60833d2ef55283a82d0c30b45d136b29e75", 676 | "shasum": "" 677 | }, 678 | "require": { 679 | "ext-iconv": "*", 680 | "ext-json": "*", 681 | "php": ">=7.1" 682 | }, 683 | "require-dev": { 684 | "nette/tester": "^2.0", 685 | "phpstan/phpstan": "^0.12", 686 | "tracy/tracy": "^2.3" 687 | }, 688 | "type": "library", 689 | "extra": { 690 | "branch-alias": { 691 | "dev-master": "3.2-dev" 692 | } 693 | }, 694 | "autoload": { 695 | "classmap": [ 696 | "src/" 697 | ] 698 | }, 699 | "notification-url": "https://packagist.org/downloads/", 700 | "license": [ 701 | "BSD-3-Clause", 702 | "GPL-2.0-only", 703 | "GPL-3.0-only" 704 | ], 705 | "authors": [ 706 | { 707 | "name": "David Grudl", 708 | "homepage": "https://davidgrudl.com" 709 | }, 710 | { 711 | "name": "Nette Community", 712 | "homepage": "https://nette.org/contributors" 713 | } 714 | ], 715 | "description": "🍸 Nette NEON: encodes and decodes NEON file format.", 716 | "homepage": "https://ne-on.org", 717 | "keywords": [ 718 | "export", 719 | "import", 720 | "neon", 721 | "nette", 722 | "yaml" 723 | ], 724 | "time": "2020-07-31T12:28:05+00:00" 725 | }, 726 | { 727 | "name": "nette/php-generator", 728 | "version": "v3.4.1", 729 | "source": { 730 | "type": "git", 731 | "url": "https://github.com/nette/php-generator.git", 732 | "reference": "7051954c534cebafd650efe8b145ac75b223cb66" 733 | }, 734 | "dist": { 735 | "type": "zip", 736 | "url": "https://api.github.com/repos/nette/php-generator/zipball/7051954c534cebafd650efe8b145ac75b223cb66", 737 | "reference": "7051954c534cebafd650efe8b145ac75b223cb66", 738 | "shasum": "" 739 | }, 740 | "require": { 741 | "nette/utils": "^2.4.2 || ^3.0", 742 | "php": ">=7.1" 743 | }, 744 | "require-dev": { 745 | "nette/tester": "^2.0", 746 | "nikic/php-parser": "^4.4", 747 | "phpstan/phpstan": "^0.12", 748 | "tracy/tracy": "^2.3" 749 | }, 750 | "suggest": { 751 | "nikic/php-parser": "to use ClassType::withBodiesFrom() & GlobalFunction::withBodyFrom()" 752 | }, 753 | "type": "library", 754 | "extra": { 755 | "branch-alias": { 756 | "dev-master": "3.4-dev" 757 | } 758 | }, 759 | "autoload": { 760 | "classmap": [ 761 | "src/" 762 | ] 763 | }, 764 | "notification-url": "https://packagist.org/downloads/", 765 | "license": [ 766 | "BSD-3-Clause", 767 | "GPL-2.0-only", 768 | "GPL-3.0-only" 769 | ], 770 | "authors": [ 771 | { 772 | "name": "David Grudl", 773 | "homepage": "https://davidgrudl.com" 774 | }, 775 | { 776 | "name": "Nette Community", 777 | "homepage": "https://nette.org/contributors" 778 | } 779 | ], 780 | "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.4 features.", 781 | "homepage": "https://nette.org", 782 | "keywords": [ 783 | "code", 784 | "nette", 785 | "php", 786 | "scaffolding" 787 | ], 788 | "time": "2020-06-19T14:31:47+00:00" 789 | }, 790 | { 791 | "name": "nette/robot-loader", 792 | "version": "v3.3.0", 793 | "source": { 794 | "type": "git", 795 | "url": "https://github.com/nette/robot-loader.git", 796 | "reference": "737ff8ee1709eff053d9cc27e6c661d82395bd8b" 797 | }, 798 | "dist": { 799 | "type": "zip", 800 | "url": "https://api.github.com/repos/nette/robot-loader/zipball/737ff8ee1709eff053d9cc27e6c661d82395bd8b", 801 | "reference": "737ff8ee1709eff053d9cc27e6c661d82395bd8b", 802 | "shasum": "" 803 | }, 804 | "require": { 805 | "ext-tokenizer": "*", 806 | "nette/finder": "^2.5 || ^3.0", 807 | "nette/utils": "^3.0", 808 | "php": ">=7.1" 809 | }, 810 | "require-dev": { 811 | "nette/tester": "^2.0", 812 | "phpstan/phpstan": "^0.12", 813 | "tracy/tracy": "^2.3" 814 | }, 815 | "type": "library", 816 | "extra": { 817 | "branch-alias": { 818 | "dev-master": "3.3-dev" 819 | } 820 | }, 821 | "autoload": { 822 | "classmap": [ 823 | "src/" 824 | ] 825 | }, 826 | "notification-url": "https://packagist.org/downloads/", 827 | "license": [ 828 | "BSD-3-Clause", 829 | "GPL-2.0-only", 830 | "GPL-3.0-only" 831 | ], 832 | "authors": [ 833 | { 834 | "name": "David Grudl", 835 | "homepage": "https://davidgrudl.com" 836 | }, 837 | { 838 | "name": "Nette Community", 839 | "homepage": "https://nette.org/contributors" 840 | } 841 | ], 842 | "description": "🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", 843 | "homepage": "https://nette.org", 844 | "keywords": [ 845 | "autoload", 846 | "class", 847 | "interface", 848 | "nette", 849 | "trait" 850 | ], 851 | "time": "2020-07-28T13:34:12+00:00" 852 | }, 853 | { 854 | "name": "nette/schema", 855 | "version": "v1.0.2", 856 | "source": { 857 | "type": "git", 858 | "url": "https://github.com/nette/schema.git", 859 | "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4" 860 | }, 861 | "dist": { 862 | "type": "zip", 863 | "url": "https://api.github.com/repos/nette/schema/zipball/febf71fb4052c824046f5a33f4f769a6e7fa0cb4", 864 | "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4", 865 | "shasum": "" 866 | }, 867 | "require": { 868 | "nette/utils": "^3.1", 869 | "php": ">=7.1" 870 | }, 871 | "require-dev": { 872 | "nette/tester": "^2.2", 873 | "phpstan/phpstan-nette": "^0.12", 874 | "tracy/tracy": "^2.3" 875 | }, 876 | "type": "library", 877 | "extra": { 878 | "branch-alias": [] 879 | }, 880 | "autoload": { 881 | "classmap": [ 882 | "src/" 883 | ] 884 | }, 885 | "notification-url": "https://packagist.org/downloads/", 886 | "license": [ 887 | "BSD-3-Clause", 888 | "GPL-2.0", 889 | "GPL-3.0" 890 | ], 891 | "authors": [ 892 | { 893 | "name": "David Grudl", 894 | "homepage": "https://davidgrudl.com" 895 | }, 896 | { 897 | "name": "Nette Community", 898 | "homepage": "https://nette.org/contributors" 899 | } 900 | ], 901 | "description": "📐 Nette Schema: validating data structures against a given Schema.", 902 | "homepage": "https://nette.org", 903 | "keywords": [ 904 | "config", 905 | "nette" 906 | ], 907 | "time": "2020-01-06T22:52:48+00:00" 908 | }, 909 | { 910 | "name": "nette/utils", 911 | "version": "v3.1.3", 912 | "source": { 913 | "type": "git", 914 | "url": "https://github.com/nette/utils.git", 915 | "reference": "c09937fbb24987b2a41c6022ebe84f4f1b8eec0f" 916 | }, 917 | "dist": { 918 | "type": "zip", 919 | "url": "https://api.github.com/repos/nette/utils/zipball/c09937fbb24987b2a41c6022ebe84f4f1b8eec0f", 920 | "reference": "c09937fbb24987b2a41c6022ebe84f4f1b8eec0f", 921 | "shasum": "" 922 | }, 923 | "require": { 924 | "php": ">=7.1" 925 | }, 926 | "require-dev": { 927 | "nette/tester": "~2.0", 928 | "phpstan/phpstan": "^0.12", 929 | "tracy/tracy": "^2.3" 930 | }, 931 | "suggest": { 932 | "ext-gd": "to use Image", 933 | "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", 934 | "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", 935 | "ext-json": "to use Nette\\Utils\\Json", 936 | "ext-mbstring": "to use Strings::lower() etc...", 937 | "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", 938 | "ext-xml": "to use Strings::length() etc. when mbstring is not available" 939 | }, 940 | "type": "library", 941 | "extra": { 942 | "branch-alias": { 943 | "dev-master": "3.1-dev" 944 | } 945 | }, 946 | "autoload": { 947 | "classmap": [ 948 | "src/" 949 | ] 950 | }, 951 | "notification-url": "https://packagist.org/downloads/", 952 | "license": [ 953 | "BSD-3-Clause", 954 | "GPL-2.0-only", 955 | "GPL-3.0-only" 956 | ], 957 | "authors": [ 958 | { 959 | "name": "David Grudl", 960 | "homepage": "https://davidgrudl.com" 961 | }, 962 | { 963 | "name": "Nette Community", 964 | "homepage": "https://nette.org/contributors" 965 | } 966 | ], 967 | "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", 968 | "homepage": "https://nette.org", 969 | "keywords": [ 970 | "array", 971 | "core", 972 | "datetime", 973 | "images", 974 | "json", 975 | "nette", 976 | "paginator", 977 | "password", 978 | "slugify", 979 | "string", 980 | "unicode", 981 | "utf-8", 982 | "utility", 983 | "validation" 984 | ], 985 | "time": "2020-08-07T10:34:21+00:00" 986 | }, 987 | { 988 | "name": "nikic/php-parser", 989 | "version": "v4.9.0", 990 | "source": { 991 | "type": "git", 992 | "url": "https://github.com/nikic/PHP-Parser.git", 993 | "reference": "aaee038b912e567780949787d5fe1977be11a778" 994 | }, 995 | "dist": { 996 | "type": "zip", 997 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/aaee038b912e567780949787d5fe1977be11a778", 998 | "reference": "aaee038b912e567780949787d5fe1977be11a778", 999 | "shasum": "" 1000 | }, 1001 | "require": { 1002 | "ext-tokenizer": "*", 1003 | "php": ">=7.0" 1004 | }, 1005 | "require-dev": { 1006 | "ircmaxell/php-yacc": "^0.0.7", 1007 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" 1008 | }, 1009 | "bin": [ 1010 | "bin/php-parse" 1011 | ], 1012 | "type": "library", 1013 | "extra": { 1014 | "branch-alias": { 1015 | "dev-master": "4.9-dev" 1016 | } 1017 | }, 1018 | "autoload": { 1019 | "psr-4": { 1020 | "PhpParser\\": "lib/PhpParser" 1021 | } 1022 | }, 1023 | "notification-url": "https://packagist.org/downloads/", 1024 | "license": [ 1025 | "BSD-3-Clause" 1026 | ], 1027 | "authors": [ 1028 | { 1029 | "name": "Nikita Popov" 1030 | } 1031 | ], 1032 | "description": "A PHP parser written in PHP", 1033 | "keywords": [ 1034 | "parser", 1035 | "php" 1036 | ], 1037 | "time": "2020-08-18T19:48:01+00:00" 1038 | }, 1039 | { 1040 | "name": "pdepend/pdepend", 1041 | "version": "2.8.0", 1042 | "source": { 1043 | "type": "git", 1044 | "url": "https://github.com/pdepend/pdepend.git", 1045 | "reference": "c64472f8e76ca858c79ad9a4cf1e2734b3f8cc38" 1046 | }, 1047 | "dist": { 1048 | "type": "zip", 1049 | "url": "https://api.github.com/repos/pdepend/pdepend/zipball/c64472f8e76ca858c79ad9a4cf1e2734b3f8cc38", 1050 | "reference": "c64472f8e76ca858c79ad9a4cf1e2734b3f8cc38", 1051 | "shasum": "" 1052 | }, 1053 | "require": { 1054 | "php": ">=5.3.7", 1055 | "symfony/config": "^2.3.0|^3|^4|^5", 1056 | "symfony/dependency-injection": "^2.3.0|^3|^4|^5", 1057 | "symfony/filesystem": "^2.3.0|^3|^4|^5" 1058 | }, 1059 | "require-dev": { 1060 | "easy-doc/easy-doc": "0.0.0 || ^1.2.3", 1061 | "gregwar/rst": "^1.0", 1062 | "phpunit/phpunit": "^4.8.35|^5.7", 1063 | "squizlabs/php_codesniffer": "^2.0.0" 1064 | }, 1065 | "bin": [ 1066 | "src/bin/pdepend" 1067 | ], 1068 | "type": "library", 1069 | "extra": { 1070 | "branch-alias": { 1071 | "dev-master": "2.x-dev" 1072 | } 1073 | }, 1074 | "autoload": { 1075 | "psr-4": { 1076 | "PDepend\\": "src/main/php/PDepend" 1077 | } 1078 | }, 1079 | "notification-url": "https://packagist.org/downloads/", 1080 | "license": [ 1081 | "BSD-3-Clause" 1082 | ], 1083 | "description": "Official version of pdepend to be handled with Composer", 1084 | "time": "2020-06-20T10:53:13+00:00" 1085 | }, 1086 | { 1087 | "name": "phar-io/manifest", 1088 | "version": "1.0.3", 1089 | "source": { 1090 | "type": "git", 1091 | "url": "https://github.com/phar-io/manifest.git", 1092 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" 1093 | }, 1094 | "dist": { 1095 | "type": "zip", 1096 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", 1097 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", 1098 | "shasum": "" 1099 | }, 1100 | "require": { 1101 | "ext-dom": "*", 1102 | "ext-phar": "*", 1103 | "phar-io/version": "^2.0", 1104 | "php": "^5.6 || ^7.0" 1105 | }, 1106 | "type": "library", 1107 | "extra": { 1108 | "branch-alias": { 1109 | "dev-master": "1.0.x-dev" 1110 | } 1111 | }, 1112 | "autoload": { 1113 | "classmap": [ 1114 | "src/" 1115 | ] 1116 | }, 1117 | "notification-url": "https://packagist.org/downloads/", 1118 | "license": [ 1119 | "BSD-3-Clause" 1120 | ], 1121 | "authors": [ 1122 | { 1123 | "name": "Arne Blankerts", 1124 | "email": "arne@blankerts.de", 1125 | "role": "Developer" 1126 | }, 1127 | { 1128 | "name": "Sebastian Heuer", 1129 | "email": "sebastian@phpeople.de", 1130 | "role": "Developer" 1131 | }, 1132 | { 1133 | "name": "Sebastian Bergmann", 1134 | "email": "sebastian@phpunit.de", 1135 | "role": "Developer" 1136 | } 1137 | ], 1138 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 1139 | "time": "2018-07-08T19:23:20+00:00" 1140 | }, 1141 | { 1142 | "name": "phar-io/version", 1143 | "version": "2.0.1", 1144 | "source": { 1145 | "type": "git", 1146 | "url": "https://github.com/phar-io/version.git", 1147 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" 1148 | }, 1149 | "dist": { 1150 | "type": "zip", 1151 | "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", 1152 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", 1153 | "shasum": "" 1154 | }, 1155 | "require": { 1156 | "php": "^5.6 || ^7.0" 1157 | }, 1158 | "type": "library", 1159 | "autoload": { 1160 | "classmap": [ 1161 | "src/" 1162 | ] 1163 | }, 1164 | "notification-url": "https://packagist.org/downloads/", 1165 | "license": [ 1166 | "BSD-3-Clause" 1167 | ], 1168 | "authors": [ 1169 | { 1170 | "name": "Arne Blankerts", 1171 | "email": "arne@blankerts.de", 1172 | "role": "Developer" 1173 | }, 1174 | { 1175 | "name": "Sebastian Heuer", 1176 | "email": "sebastian@phpeople.de", 1177 | "role": "Developer" 1178 | }, 1179 | { 1180 | "name": "Sebastian Bergmann", 1181 | "email": "sebastian@phpunit.de", 1182 | "role": "Developer" 1183 | } 1184 | ], 1185 | "description": "Library for handling version information and constraints", 1186 | "time": "2018-07-08T19:19:57+00:00" 1187 | }, 1188 | { 1189 | "name": "phpcompatibility/php-compatibility", 1190 | "version": "8.2.0", 1191 | "source": { 1192 | "type": "git", 1193 | "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", 1194 | "reference": "eaf613c1a8265bcfd7b0ab690783f2aef519f78a" 1195 | }, 1196 | "dist": { 1197 | "type": "zip", 1198 | "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/eaf613c1a8265bcfd7b0ab690783f2aef519f78a", 1199 | "reference": "eaf613c1a8265bcfd7b0ab690783f2aef519f78a", 1200 | "shasum": "" 1201 | }, 1202 | "require": { 1203 | "php": ">=5.3", 1204 | "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" 1205 | }, 1206 | "conflict": { 1207 | "squizlabs/php_codesniffer": "2.6.2" 1208 | }, 1209 | "require-dev": { 1210 | "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" 1211 | }, 1212 | "suggest": { 1213 | "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", 1214 | "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." 1215 | }, 1216 | "type": "phpcodesniffer-standard", 1217 | "autoload": { 1218 | "psr-4": { 1219 | "PHPCompatibility\\": "PHPCompatibility/" 1220 | } 1221 | }, 1222 | "notification-url": "https://packagist.org/downloads/", 1223 | "license": [ 1224 | "LGPL-3.0-or-later" 1225 | ], 1226 | "authors": [ 1227 | { 1228 | "name": "Wim Godden", 1229 | "role": "lead" 1230 | } 1231 | ], 1232 | "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP version compatibility.", 1233 | "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", 1234 | "keywords": [ 1235 | "compatibility", 1236 | "phpcs", 1237 | "standards" 1238 | ], 1239 | "time": "2018-07-17T13:42:26+00:00" 1240 | }, 1241 | { 1242 | "name": "phpcompatibility/phpcompatibility-wp", 1243 | "version": "1.0.0", 1244 | "source": { 1245 | "type": "git", 1246 | "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git", 1247 | "reference": "b26c84df3ec1d4850d0f22264a4a16482a171996" 1248 | }, 1249 | "dist": { 1250 | "type": "zip", 1251 | "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/b26c84df3ec1d4850d0f22264a4a16482a171996", 1252 | "reference": "b26c84df3ec1d4850d0f22264a4a16482a171996", 1253 | "shasum": "" 1254 | }, 1255 | "require": { 1256 | "phpcompatibility/php-compatibility": "^8.1" 1257 | }, 1258 | "suggest": { 1259 | "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", 1260 | "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." 1261 | }, 1262 | "type": "phpcodesniffer-standard", 1263 | "notification-url": "https://packagist.org/downloads/", 1264 | "license": [ 1265 | "LGPL-3.0-or-later" 1266 | ], 1267 | "authors": [ 1268 | { 1269 | "name": "Wim Godden", 1270 | "role": "lead" 1271 | }, 1272 | { 1273 | "name": "Juliette Reinders Folmer", 1274 | "role": "lead" 1275 | } 1276 | ], 1277 | "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP version compatibility for WordPress projects.", 1278 | "homepage": "http://phpcompatibility.com/", 1279 | "keywords": [ 1280 | "compatibility", 1281 | "phpcs", 1282 | "standards", 1283 | "wordpress" 1284 | ], 1285 | "time": "2018-07-16T22:10:02+00:00" 1286 | }, 1287 | { 1288 | "name": "phpdocumentor/reflection-common", 1289 | "version": "2.2.0", 1290 | "source": { 1291 | "type": "git", 1292 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 1293 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" 1294 | }, 1295 | "dist": { 1296 | "type": "zip", 1297 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", 1298 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", 1299 | "shasum": "" 1300 | }, 1301 | "require": { 1302 | "php": "^7.2 || ^8.0" 1303 | }, 1304 | "type": "library", 1305 | "extra": { 1306 | "branch-alias": { 1307 | "dev-2.x": "2.x-dev" 1308 | } 1309 | }, 1310 | "autoload": { 1311 | "psr-4": { 1312 | "phpDocumentor\\Reflection\\": "src/" 1313 | } 1314 | }, 1315 | "notification-url": "https://packagist.org/downloads/", 1316 | "license": [ 1317 | "MIT" 1318 | ], 1319 | "authors": [ 1320 | { 1321 | "name": "Jaap van Otterdijk", 1322 | "email": "opensource@ijaap.nl" 1323 | } 1324 | ], 1325 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 1326 | "homepage": "http://www.phpdoc.org", 1327 | "keywords": [ 1328 | "FQSEN", 1329 | "phpDocumentor", 1330 | "phpdoc", 1331 | "reflection", 1332 | "static analysis" 1333 | ], 1334 | "time": "2020-06-27T09:03:43+00:00" 1335 | }, 1336 | { 1337 | "name": "phpdocumentor/reflection-docblock", 1338 | "version": "5.1.0", 1339 | "source": { 1340 | "type": "git", 1341 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 1342 | "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" 1343 | }, 1344 | "dist": { 1345 | "type": "zip", 1346 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", 1347 | "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", 1348 | "shasum": "" 1349 | }, 1350 | "require": { 1351 | "ext-filter": "^7.1", 1352 | "php": "^7.2", 1353 | "phpdocumentor/reflection-common": "^2.0", 1354 | "phpdocumentor/type-resolver": "^1.0", 1355 | "webmozart/assert": "^1" 1356 | }, 1357 | "require-dev": { 1358 | "doctrine/instantiator": "^1", 1359 | "mockery/mockery": "^1" 1360 | }, 1361 | "type": "library", 1362 | "extra": { 1363 | "branch-alias": { 1364 | "dev-master": "5.x-dev" 1365 | } 1366 | }, 1367 | "autoload": { 1368 | "psr-4": { 1369 | "phpDocumentor\\Reflection\\": "src" 1370 | } 1371 | }, 1372 | "notification-url": "https://packagist.org/downloads/", 1373 | "license": [ 1374 | "MIT" 1375 | ], 1376 | "authors": [ 1377 | { 1378 | "name": "Mike van Riel", 1379 | "email": "me@mikevanriel.com" 1380 | }, 1381 | { 1382 | "name": "Jaap van Otterdijk", 1383 | "email": "account@ijaap.nl" 1384 | } 1385 | ], 1386 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 1387 | "time": "2020-02-22T12:28:44+00:00" 1388 | }, 1389 | { 1390 | "name": "phpdocumentor/type-resolver", 1391 | "version": "1.3.0", 1392 | "source": { 1393 | "type": "git", 1394 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 1395 | "reference": "e878a14a65245fbe78f8080eba03b47c3b705651" 1396 | }, 1397 | "dist": { 1398 | "type": "zip", 1399 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e878a14a65245fbe78f8080eba03b47c3b705651", 1400 | "reference": "e878a14a65245fbe78f8080eba03b47c3b705651", 1401 | "shasum": "" 1402 | }, 1403 | "require": { 1404 | "php": "^7.2 || ^8.0", 1405 | "phpdocumentor/reflection-common": "^2.0" 1406 | }, 1407 | "require-dev": { 1408 | "ext-tokenizer": "*" 1409 | }, 1410 | "type": "library", 1411 | "extra": { 1412 | "branch-alias": { 1413 | "dev-1.x": "1.x-dev" 1414 | } 1415 | }, 1416 | "autoload": { 1417 | "psr-4": { 1418 | "phpDocumentor\\Reflection\\": "src" 1419 | } 1420 | }, 1421 | "notification-url": "https://packagist.org/downloads/", 1422 | "license": [ 1423 | "MIT" 1424 | ], 1425 | "authors": [ 1426 | { 1427 | "name": "Mike van Riel", 1428 | "email": "me@mikevanriel.com" 1429 | } 1430 | ], 1431 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 1432 | "time": "2020-06-27T10:12:23+00:00" 1433 | }, 1434 | { 1435 | "name": "phpmd/phpmd", 1436 | "version": "2.8.2", 1437 | "source": { 1438 | "type": "git", 1439 | "url": "https://github.com/phpmd/phpmd.git", 1440 | "reference": "714629ed782537f638fe23c4346637659b779a77" 1441 | }, 1442 | "dist": { 1443 | "type": "zip", 1444 | "url": "https://api.github.com/repos/phpmd/phpmd/zipball/714629ed782537f638fe23c4346637659b779a77", 1445 | "reference": "714629ed782537f638fe23c4346637659b779a77", 1446 | "shasum": "" 1447 | }, 1448 | "require": { 1449 | "composer/xdebug-handler": "^1.0", 1450 | "ext-xml": "*", 1451 | "pdepend/pdepend": "^2.7.1", 1452 | "php": ">=5.3.9" 1453 | }, 1454 | "require-dev": { 1455 | "easy-doc/easy-doc": "0.0.0 || ^1.3.2", 1456 | "gregwar/rst": "^1.0", 1457 | "mikey179/vfsstream": "^1.6.4", 1458 | "phpunit/phpunit": "^4.8.36 || ^5.7.27", 1459 | "squizlabs/php_codesniffer": "^2.0" 1460 | }, 1461 | "bin": [ 1462 | "src/bin/phpmd" 1463 | ], 1464 | "type": "library", 1465 | "autoload": { 1466 | "psr-0": { 1467 | "PHPMD\\": "src/main/php" 1468 | } 1469 | }, 1470 | "notification-url": "https://packagist.org/downloads/", 1471 | "license": [ 1472 | "BSD-3-Clause" 1473 | ], 1474 | "authors": [ 1475 | { 1476 | "name": "Manuel Pichler", 1477 | "email": "github@manuel-pichler.de", 1478 | "homepage": "https://github.com/manuelpichler", 1479 | "role": "Project Founder" 1480 | }, 1481 | { 1482 | "name": "Marc Würth", 1483 | "email": "ravage@bluewin.ch", 1484 | "homepage": "https://github.com/ravage84", 1485 | "role": "Project Maintainer" 1486 | }, 1487 | { 1488 | "name": "Other contributors", 1489 | "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", 1490 | "role": "Contributors" 1491 | } 1492 | ], 1493 | "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", 1494 | "homepage": "https://phpmd.org/", 1495 | "keywords": [ 1496 | "mess detection", 1497 | "mess detector", 1498 | "pdepend", 1499 | "phpmd", 1500 | "pmd" 1501 | ], 1502 | "time": "2020-02-16T20:15:50+00:00" 1503 | }, 1504 | { 1505 | "name": "phpspec/prophecy", 1506 | "version": "1.11.1", 1507 | "source": { 1508 | "type": "git", 1509 | "url": "https://github.com/phpspec/prophecy.git", 1510 | "reference": "b20034be5efcdab4fb60ca3a29cba2949aead160" 1511 | }, 1512 | "dist": { 1513 | "type": "zip", 1514 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b20034be5efcdab4fb60ca3a29cba2949aead160", 1515 | "reference": "b20034be5efcdab4fb60ca3a29cba2949aead160", 1516 | "shasum": "" 1517 | }, 1518 | "require": { 1519 | "doctrine/instantiator": "^1.2", 1520 | "php": "^7.2", 1521 | "phpdocumentor/reflection-docblock": "^5.0", 1522 | "sebastian/comparator": "^3.0 || ^4.0", 1523 | "sebastian/recursion-context": "^3.0 || ^4.0" 1524 | }, 1525 | "require-dev": { 1526 | "phpspec/phpspec": "^6.0", 1527 | "phpunit/phpunit": "^8.0" 1528 | }, 1529 | "type": "library", 1530 | "extra": { 1531 | "branch-alias": { 1532 | "dev-master": "1.11.x-dev" 1533 | } 1534 | }, 1535 | "autoload": { 1536 | "psr-4": { 1537 | "Prophecy\\": "src/Prophecy" 1538 | } 1539 | }, 1540 | "notification-url": "https://packagist.org/downloads/", 1541 | "license": [ 1542 | "MIT" 1543 | ], 1544 | "authors": [ 1545 | { 1546 | "name": "Konstantin Kudryashov", 1547 | "email": "ever.zet@gmail.com", 1548 | "homepage": "http://everzet.com" 1549 | }, 1550 | { 1551 | "name": "Marcello Duarte", 1552 | "email": "marcello.duarte@gmail.com" 1553 | } 1554 | ], 1555 | "description": "Highly opinionated mocking framework for PHP 5.3+", 1556 | "homepage": "https://github.com/phpspec/prophecy", 1557 | "keywords": [ 1558 | "Double", 1559 | "Dummy", 1560 | "fake", 1561 | "mock", 1562 | "spy", 1563 | "stub" 1564 | ], 1565 | "time": "2020-07-08T12:44:21+00:00" 1566 | }, 1567 | { 1568 | "name": "phpstan/phpdoc-parser", 1569 | "version": "0.3.5", 1570 | "source": { 1571 | "type": "git", 1572 | "url": "https://github.com/phpstan/phpdoc-parser.git", 1573 | "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4" 1574 | }, 1575 | "dist": { 1576 | "type": "zip", 1577 | "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/8c4ef2aefd9788238897b678a985e1d5c8df6db4", 1578 | "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4", 1579 | "shasum": "" 1580 | }, 1581 | "require": { 1582 | "php": "~7.1" 1583 | }, 1584 | "require-dev": { 1585 | "consistence/coding-standard": "^3.5", 1586 | "jakub-onderka/php-parallel-lint": "^0.9.2", 1587 | "phing/phing": "^2.16.0", 1588 | "phpstan/phpstan": "^0.10", 1589 | "phpunit/phpunit": "^6.3", 1590 | "slevomat/coding-standard": "^4.7.2", 1591 | "squizlabs/php_codesniffer": "^3.3.2", 1592 | "symfony/process": "^3.4 || ^4.0" 1593 | }, 1594 | "type": "library", 1595 | "extra": { 1596 | "branch-alias": { 1597 | "dev-master": "0.3-dev" 1598 | } 1599 | }, 1600 | "autoload": { 1601 | "psr-4": { 1602 | "PHPStan\\PhpDocParser\\": [ 1603 | "src/" 1604 | ] 1605 | } 1606 | }, 1607 | "notification-url": "https://packagist.org/downloads/", 1608 | "license": [ 1609 | "MIT" 1610 | ], 1611 | "description": "PHPDoc parser with support for nullable, intersection and generic types", 1612 | "time": "2019-06-07T19:13:52+00:00" 1613 | }, 1614 | { 1615 | "name": "phpstan/phpstan", 1616 | "version": "0.11.19", 1617 | "source": { 1618 | "type": "git", 1619 | "url": "https://github.com/phpstan/phpstan.git", 1620 | "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7" 1621 | }, 1622 | "dist": { 1623 | "type": "zip", 1624 | "url": "https://api.github.com/repos/phpstan/phpstan/zipball/63cc502f6957b7f74efbac444b4cf219dcadffd7", 1625 | "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7", 1626 | "shasum": "" 1627 | }, 1628 | "require": { 1629 | "composer/xdebug-handler": "^1.3.0", 1630 | "jean85/pretty-package-versions": "^1.0.3", 1631 | "nette/bootstrap": "^2.4 || ^3.0", 1632 | "nette/di": "^2.4.7 || ^3.0", 1633 | "nette/neon": "^2.4.3 || ^3.0", 1634 | "nette/robot-loader": "^3.0.1", 1635 | "nette/schema": "^1.0", 1636 | "nette/utils": "^2.4.5 || ^3.0", 1637 | "nikic/php-parser": "^4.2.3", 1638 | "php": "~7.1", 1639 | "phpstan/phpdoc-parser": "^0.3.5", 1640 | "symfony/console": "~3.2 || ~4.0", 1641 | "symfony/finder": "~3.2 || ~4.0" 1642 | }, 1643 | "conflict": { 1644 | "symfony/console": "3.4.16 || 4.1.5" 1645 | }, 1646 | "require-dev": { 1647 | "brianium/paratest": "^2.0 || ^3.0", 1648 | "consistence/coding-standard": "^3.5", 1649 | "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4", 1650 | "ext-intl": "*", 1651 | "ext-mysqli": "*", 1652 | "ext-simplexml": "*", 1653 | "ext-soap": "*", 1654 | "ext-zip": "*", 1655 | "jakub-onderka/php-parallel-lint": "^1.0", 1656 | "localheinz/composer-normalize": "^1.1.0", 1657 | "phing/phing": "^2.16.0", 1658 | "phpstan/phpstan-deprecation-rules": "^0.11", 1659 | "phpstan/phpstan-php-parser": "^0.11", 1660 | "phpstan/phpstan-phpunit": "^0.11", 1661 | "phpstan/phpstan-strict-rules": "^0.11", 1662 | "phpunit/phpunit": "^7.5.14 || ^8.0", 1663 | "slevomat/coding-standard": "^4.7.2", 1664 | "squizlabs/php_codesniffer": "^3.3.2" 1665 | }, 1666 | "bin": [ 1667 | "bin/phpstan" 1668 | ], 1669 | "type": "library", 1670 | "extra": { 1671 | "branch-alias": { 1672 | "dev-master": "0.11-dev" 1673 | } 1674 | }, 1675 | "autoload": { 1676 | "psr-4": { 1677 | "PHPStan\\": [ 1678 | "src/" 1679 | ] 1680 | } 1681 | }, 1682 | "notification-url": "https://packagist.org/downloads/", 1683 | "license": [ 1684 | "MIT" 1685 | ], 1686 | "description": "PHPStan - PHP Static Analysis Tool", 1687 | "time": "2019-10-22T20:20:22+00:00" 1688 | }, 1689 | { 1690 | "name": "phpstan/phpstan-strict-rules", 1691 | "version": "0.11.1", 1692 | "source": { 1693 | "type": "git", 1694 | "url": "https://github.com/phpstan/phpstan-strict-rules.git", 1695 | "reference": "a203a7afdda073d4ea405a6d9007a5b32de3be61" 1696 | }, 1697 | "dist": { 1698 | "type": "zip", 1699 | "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/a203a7afdda073d4ea405a6d9007a5b32de3be61", 1700 | "reference": "a203a7afdda073d4ea405a6d9007a5b32de3be61", 1701 | "shasum": "" 1702 | }, 1703 | "require": { 1704 | "nikic/php-parser": "^4.0", 1705 | "php": "~7.1", 1706 | "phpstan/phpstan": "^0.11.4" 1707 | }, 1708 | "require-dev": { 1709 | "consistence/coding-standard": "^3.0.1", 1710 | "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4", 1711 | "jakub-onderka/php-parallel-lint": "^1.0", 1712 | "phing/phing": "^2.16.0", 1713 | "phpstan/phpstan-phpunit": "^0.11", 1714 | "phpunit/phpunit": "^7.0", 1715 | "slevomat/coding-standard": "^4.5.2" 1716 | }, 1717 | "type": "phpstan-extension", 1718 | "extra": { 1719 | "branch-alias": { 1720 | "dev-master": "0.11-dev" 1721 | }, 1722 | "phpstan": { 1723 | "includes": [ 1724 | "rules.neon" 1725 | ] 1726 | } 1727 | }, 1728 | "autoload": { 1729 | "psr-4": { 1730 | "PHPStan\\": "src/" 1731 | } 1732 | }, 1733 | "notification-url": "https://packagist.org/downloads/", 1734 | "license": [ 1735 | "MIT" 1736 | ], 1737 | "description": "Extra strict and opinionated rules for PHPStan", 1738 | "time": "2019-05-12T16:59:47+00:00" 1739 | }, 1740 | { 1741 | "name": "phpunit/php-code-coverage", 1742 | "version": "8.0.2", 1743 | "source": { 1744 | "type": "git", 1745 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 1746 | "reference": "ca6647ffddd2add025ab3f21644a441d7c146cdc" 1747 | }, 1748 | "dist": { 1749 | "type": "zip", 1750 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca6647ffddd2add025ab3f21644a441d7c146cdc", 1751 | "reference": "ca6647ffddd2add025ab3f21644a441d7c146cdc", 1752 | "shasum": "" 1753 | }, 1754 | "require": { 1755 | "ext-dom": "*", 1756 | "ext-xmlwriter": "*", 1757 | "php": "^7.3", 1758 | "phpunit/php-file-iterator": "^3.0", 1759 | "phpunit/php-text-template": "^2.0", 1760 | "phpunit/php-token-stream": "^4.0", 1761 | "sebastian/code-unit-reverse-lookup": "^2.0", 1762 | "sebastian/environment": "^5.0", 1763 | "sebastian/version": "^3.0", 1764 | "theseer/tokenizer": "^1.1.3" 1765 | }, 1766 | "require-dev": { 1767 | "phpunit/phpunit": "^9.0" 1768 | }, 1769 | "suggest": { 1770 | "ext-pcov": "*", 1771 | "ext-xdebug": "*" 1772 | }, 1773 | "type": "library", 1774 | "extra": { 1775 | "branch-alias": { 1776 | "dev-master": "8.0-dev" 1777 | } 1778 | }, 1779 | "autoload": { 1780 | "classmap": [ 1781 | "src/" 1782 | ] 1783 | }, 1784 | "notification-url": "https://packagist.org/downloads/", 1785 | "license": [ 1786 | "BSD-3-Clause" 1787 | ], 1788 | "authors": [ 1789 | { 1790 | "name": "Sebastian Bergmann", 1791 | "email": "sebastian@phpunit.de", 1792 | "role": "lead" 1793 | } 1794 | ], 1795 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 1796 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 1797 | "keywords": [ 1798 | "coverage", 1799 | "testing", 1800 | "xunit" 1801 | ], 1802 | "time": "2020-05-23T08:02:54+00:00" 1803 | }, 1804 | { 1805 | "name": "phpunit/php-file-iterator", 1806 | "version": "3.0.4", 1807 | "source": { 1808 | "type": "git", 1809 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 1810 | "reference": "25fefc5b19835ca653877fe081644a3f8c1d915e" 1811 | }, 1812 | "dist": { 1813 | "type": "zip", 1814 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/25fefc5b19835ca653877fe081644a3f8c1d915e", 1815 | "reference": "25fefc5b19835ca653877fe081644a3f8c1d915e", 1816 | "shasum": "" 1817 | }, 1818 | "require": { 1819 | "php": "^7.3 || ^8.0" 1820 | }, 1821 | "require-dev": { 1822 | "phpunit/phpunit": "^9.0" 1823 | }, 1824 | "type": "library", 1825 | "extra": { 1826 | "branch-alias": { 1827 | "dev-master": "3.0-dev" 1828 | } 1829 | }, 1830 | "autoload": { 1831 | "classmap": [ 1832 | "src/" 1833 | ] 1834 | }, 1835 | "notification-url": "https://packagist.org/downloads/", 1836 | "license": [ 1837 | "BSD-3-Clause" 1838 | ], 1839 | "authors": [ 1840 | { 1841 | "name": "Sebastian Bergmann", 1842 | "email": "sebastian@phpunit.de", 1843 | "role": "lead" 1844 | } 1845 | ], 1846 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 1847 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 1848 | "keywords": [ 1849 | "filesystem", 1850 | "iterator" 1851 | ], 1852 | "time": "2020-07-11T05:18:21+00:00" 1853 | }, 1854 | { 1855 | "name": "phpunit/php-invoker", 1856 | "version": "3.1.0", 1857 | "source": { 1858 | "type": "git", 1859 | "url": "https://github.com/sebastianbergmann/php-invoker.git", 1860 | "reference": "7a85b66acc48cacffdf87dadd3694e7123674298" 1861 | }, 1862 | "dist": { 1863 | "type": "zip", 1864 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/7a85b66acc48cacffdf87dadd3694e7123674298", 1865 | "reference": "7a85b66acc48cacffdf87dadd3694e7123674298", 1866 | "shasum": "" 1867 | }, 1868 | "require": { 1869 | "php": "^7.3 || ^8.0" 1870 | }, 1871 | "require-dev": { 1872 | "ext-pcntl": "*", 1873 | "phpunit/phpunit": "^9.0" 1874 | }, 1875 | "suggest": { 1876 | "ext-pcntl": "*" 1877 | }, 1878 | "type": "library", 1879 | "extra": { 1880 | "branch-alias": { 1881 | "dev-master": "3.1-dev" 1882 | } 1883 | }, 1884 | "autoload": { 1885 | "classmap": [ 1886 | "src/" 1887 | ] 1888 | }, 1889 | "notification-url": "https://packagist.org/downloads/", 1890 | "license": [ 1891 | "BSD-3-Clause" 1892 | ], 1893 | "authors": [ 1894 | { 1895 | "name": "Sebastian Bergmann", 1896 | "email": "sebastian@phpunit.de", 1897 | "role": "lead" 1898 | } 1899 | ], 1900 | "description": "Invoke callables with a timeout", 1901 | "homepage": "https://github.com/sebastianbergmann/php-invoker/", 1902 | "keywords": [ 1903 | "process" 1904 | ], 1905 | "time": "2020-08-06T07:04:15+00:00" 1906 | }, 1907 | { 1908 | "name": "phpunit/php-text-template", 1909 | "version": "2.0.2", 1910 | "source": { 1911 | "type": "git", 1912 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 1913 | "reference": "6ff9c8ea4d3212b88fcf74e25e516e2c51c99324" 1914 | }, 1915 | "dist": { 1916 | "type": "zip", 1917 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/6ff9c8ea4d3212b88fcf74e25e516e2c51c99324", 1918 | "reference": "6ff9c8ea4d3212b88fcf74e25e516e2c51c99324", 1919 | "shasum": "" 1920 | }, 1921 | "require": { 1922 | "php": "^7.3 || ^8.0" 1923 | }, 1924 | "require-dev": { 1925 | "phpunit/phpunit": "^9.0" 1926 | }, 1927 | "type": "library", 1928 | "extra": { 1929 | "branch-alias": { 1930 | "dev-master": "2.0-dev" 1931 | } 1932 | }, 1933 | "autoload": { 1934 | "classmap": [ 1935 | "src/" 1936 | ] 1937 | }, 1938 | "notification-url": "https://packagist.org/downloads/", 1939 | "license": [ 1940 | "BSD-3-Clause" 1941 | ], 1942 | "authors": [ 1943 | { 1944 | "name": "Sebastian Bergmann", 1945 | "email": "sebastian@phpunit.de", 1946 | "role": "lead" 1947 | } 1948 | ], 1949 | "description": "Simple template engine.", 1950 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 1951 | "keywords": [ 1952 | "template" 1953 | ], 1954 | "time": "2020-06-26T11:55:37+00:00" 1955 | }, 1956 | { 1957 | "name": "phpunit/php-timer", 1958 | "version": "3.1.4", 1959 | "source": { 1960 | "type": "git", 1961 | "url": "https://github.com/sebastianbergmann/php-timer.git", 1962 | "reference": "dc9368fae6ef2ffa57eba80a7410bcef81df6258" 1963 | }, 1964 | "dist": { 1965 | "type": "zip", 1966 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/dc9368fae6ef2ffa57eba80a7410bcef81df6258", 1967 | "reference": "dc9368fae6ef2ffa57eba80a7410bcef81df6258", 1968 | "shasum": "" 1969 | }, 1970 | "require": { 1971 | "php": "^7.3" 1972 | }, 1973 | "require-dev": { 1974 | "phpunit/phpunit": "^9.0" 1975 | }, 1976 | "type": "library", 1977 | "extra": { 1978 | "branch-alias": { 1979 | "dev-master": "3.1-dev" 1980 | } 1981 | }, 1982 | "autoload": { 1983 | "classmap": [ 1984 | "src/" 1985 | ] 1986 | }, 1987 | "notification-url": "https://packagist.org/downloads/", 1988 | "license": [ 1989 | "BSD-3-Clause" 1990 | ], 1991 | "authors": [ 1992 | { 1993 | "name": "Sebastian Bergmann", 1994 | "email": "sebastian@phpunit.de", 1995 | "role": "lead" 1996 | } 1997 | ], 1998 | "description": "Utility class for timing", 1999 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 2000 | "keywords": [ 2001 | "timer" 2002 | ], 2003 | "time": "2020-04-20T06:00:37+00:00" 2004 | }, 2005 | { 2006 | "name": "phpunit/php-token-stream", 2007 | "version": "4.0.4", 2008 | "source": { 2009 | "type": "git", 2010 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 2011 | "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" 2012 | }, 2013 | "dist": { 2014 | "type": "zip", 2015 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", 2016 | "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", 2017 | "shasum": "" 2018 | }, 2019 | "require": { 2020 | "ext-tokenizer": "*", 2021 | "php": "^7.3 || ^8.0" 2022 | }, 2023 | "require-dev": { 2024 | "phpunit/phpunit": "^9.0" 2025 | }, 2026 | "type": "library", 2027 | "extra": { 2028 | "branch-alias": { 2029 | "dev-master": "4.0-dev" 2030 | } 2031 | }, 2032 | "autoload": { 2033 | "classmap": [ 2034 | "src/" 2035 | ] 2036 | }, 2037 | "notification-url": "https://packagist.org/downloads/", 2038 | "license": [ 2039 | "BSD-3-Clause" 2040 | ], 2041 | "authors": [ 2042 | { 2043 | "name": "Sebastian Bergmann", 2044 | "email": "sebastian@phpunit.de" 2045 | } 2046 | ], 2047 | "description": "Wrapper around PHP's tokenizer extension.", 2048 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 2049 | "keywords": [ 2050 | "tokenizer" 2051 | ], 2052 | "abandoned": true, 2053 | "time": "2020-08-04T08:28:15+00:00" 2054 | }, 2055 | { 2056 | "name": "phpunit/phpunit", 2057 | "version": "9.0.1", 2058 | "source": { 2059 | "type": "git", 2060 | "url": "https://github.com/sebastianbergmann/phpunit.git", 2061 | "reference": "68d7e5b17a6b9461e17c00446caa409863154f76" 2062 | }, 2063 | "dist": { 2064 | "type": "zip", 2065 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/68d7e5b17a6b9461e17c00446caa409863154f76", 2066 | "reference": "68d7e5b17a6b9461e17c00446caa409863154f76", 2067 | "shasum": "" 2068 | }, 2069 | "require": { 2070 | "doctrine/instantiator": "^1.2.0", 2071 | "ext-dom": "*", 2072 | "ext-json": "*", 2073 | "ext-libxml": "*", 2074 | "ext-mbstring": "*", 2075 | "ext-xml": "*", 2076 | "ext-xmlwriter": "*", 2077 | "myclabs/deep-copy": "^1.9.1", 2078 | "phar-io/manifest": "^1.0.3", 2079 | "phar-io/version": "^2.0.1", 2080 | "php": "^7.3", 2081 | "phpspec/prophecy": "^1.8.1", 2082 | "phpunit/php-code-coverage": "^8.0", 2083 | "phpunit/php-file-iterator": "^3.0", 2084 | "phpunit/php-invoker": "^3.0", 2085 | "phpunit/php-text-template": "^2.0", 2086 | "phpunit/php-timer": "^3.0", 2087 | "sebastian/comparator": "^4.0", 2088 | "sebastian/diff": "^4.0", 2089 | "sebastian/environment": "^5.0", 2090 | "sebastian/exporter": "^4.0", 2091 | "sebastian/global-state": "^4.0", 2092 | "sebastian/object-enumerator": "^4.0", 2093 | "sebastian/resource-operations": "^3.0", 2094 | "sebastian/type": "^2.0", 2095 | "sebastian/version": "^3.0" 2096 | }, 2097 | "require-dev": { 2098 | "ext-pdo": "*" 2099 | }, 2100 | "suggest": { 2101 | "ext-soap": "*", 2102 | "ext-xdebug": "*" 2103 | }, 2104 | "bin": [ 2105 | "phpunit" 2106 | ], 2107 | "type": "library", 2108 | "extra": { 2109 | "branch-alias": { 2110 | "dev-master": "9.0-dev" 2111 | } 2112 | }, 2113 | "autoload": { 2114 | "classmap": [ 2115 | "src/" 2116 | ], 2117 | "files": [ 2118 | "src/Framework/Assert/Functions.php" 2119 | ] 2120 | }, 2121 | "notification-url": "https://packagist.org/downloads/", 2122 | "license": [ 2123 | "BSD-3-Clause" 2124 | ], 2125 | "authors": [ 2126 | { 2127 | "name": "Sebastian Bergmann", 2128 | "email": "sebastian@phpunit.de", 2129 | "role": "lead" 2130 | } 2131 | ], 2132 | "description": "The PHP Unit Testing framework.", 2133 | "homepage": "https://phpunit.de/", 2134 | "keywords": [ 2135 | "phpunit", 2136 | "testing", 2137 | "xunit" 2138 | ], 2139 | "time": "2020-02-13T07:30:12+00:00" 2140 | }, 2141 | { 2142 | "name": "pimple/pimple", 2143 | "version": "v3.3.0", 2144 | "source": { 2145 | "type": "git", 2146 | "url": "https://github.com/silexphp/Pimple.git", 2147 | "reference": "e55d12f9d6a0e7f9c85992b73df1267f46279930" 2148 | }, 2149 | "dist": { 2150 | "type": "zip", 2151 | "url": "https://api.github.com/repos/silexphp/Pimple/zipball/e55d12f9d6a0e7f9c85992b73df1267f46279930", 2152 | "reference": "e55d12f9d6a0e7f9c85992b73df1267f46279930", 2153 | "shasum": "" 2154 | }, 2155 | "require": { 2156 | "php": "^7.2.5", 2157 | "psr/container": "^1.0" 2158 | }, 2159 | "require-dev": { 2160 | "symfony/phpunit-bridge": "^3.4|^4.4|^5.0" 2161 | }, 2162 | "type": "library", 2163 | "extra": { 2164 | "branch-alias": { 2165 | "dev-master": "3.3.x-dev" 2166 | } 2167 | }, 2168 | "autoload": { 2169 | "psr-0": { 2170 | "Pimple": "src/" 2171 | } 2172 | }, 2173 | "notification-url": "https://packagist.org/downloads/", 2174 | "license": [ 2175 | "MIT" 2176 | ], 2177 | "authors": [ 2178 | { 2179 | "name": "Fabien Potencier", 2180 | "email": "fabien@symfony.com" 2181 | } 2182 | ], 2183 | "description": "Pimple, a simple Dependency Injection Container", 2184 | "homepage": "https://pimple.symfony.com", 2185 | "keywords": [ 2186 | "container", 2187 | "dependency injection" 2188 | ], 2189 | "time": "2020-03-03T09:12:48+00:00" 2190 | }, 2191 | { 2192 | "name": "psr/container", 2193 | "version": "1.0.0", 2194 | "source": { 2195 | "type": "git", 2196 | "url": "https://github.com/php-fig/container.git", 2197 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 2198 | }, 2199 | "dist": { 2200 | "type": "zip", 2201 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 2202 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 2203 | "shasum": "" 2204 | }, 2205 | "require": { 2206 | "php": ">=5.3.0" 2207 | }, 2208 | "type": "library", 2209 | "extra": { 2210 | "branch-alias": { 2211 | "dev-master": "1.0.x-dev" 2212 | } 2213 | }, 2214 | "autoload": { 2215 | "psr-4": { 2216 | "Psr\\Container\\": "src/" 2217 | } 2218 | }, 2219 | "notification-url": "https://packagist.org/downloads/", 2220 | "license": [ 2221 | "MIT" 2222 | ], 2223 | "authors": [ 2224 | { 2225 | "name": "PHP-FIG", 2226 | "homepage": "http://www.php-fig.org/" 2227 | } 2228 | ], 2229 | "description": "Common Container Interface (PHP FIG PSR-11)", 2230 | "homepage": "https://github.com/php-fig/container", 2231 | "keywords": [ 2232 | "PSR-11", 2233 | "container", 2234 | "container-interface", 2235 | "container-interop", 2236 | "psr" 2237 | ], 2238 | "time": "2017-02-14T16:28:37+00:00" 2239 | }, 2240 | { 2241 | "name": "psr/log", 2242 | "version": "1.1.3", 2243 | "source": { 2244 | "type": "git", 2245 | "url": "https://github.com/php-fig/log.git", 2246 | "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" 2247 | }, 2248 | "dist": { 2249 | "type": "zip", 2250 | "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", 2251 | "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", 2252 | "shasum": "" 2253 | }, 2254 | "require": { 2255 | "php": ">=5.3.0" 2256 | }, 2257 | "type": "library", 2258 | "extra": { 2259 | "branch-alias": { 2260 | "dev-master": "1.1.x-dev" 2261 | } 2262 | }, 2263 | "autoload": { 2264 | "psr-4": { 2265 | "Psr\\Log\\": "Psr/Log/" 2266 | } 2267 | }, 2268 | "notification-url": "https://packagist.org/downloads/", 2269 | "license": [ 2270 | "MIT" 2271 | ], 2272 | "authors": [ 2273 | { 2274 | "name": "PHP-FIG", 2275 | "homepage": "http://www.php-fig.org/" 2276 | } 2277 | ], 2278 | "description": "Common interface for logging libraries", 2279 | "homepage": "https://github.com/php-fig/log", 2280 | "keywords": [ 2281 | "log", 2282 | "psr", 2283 | "psr-3" 2284 | ], 2285 | "time": "2020-03-23T09:12:05+00:00" 2286 | }, 2287 | { 2288 | "name": "sebastian/code-unit-reverse-lookup", 2289 | "version": "2.0.2", 2290 | "source": { 2291 | "type": "git", 2292 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 2293 | "reference": "ee51f9bb0c6d8a43337055db3120829fa14da819" 2294 | }, 2295 | "dist": { 2296 | "type": "zip", 2297 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ee51f9bb0c6d8a43337055db3120829fa14da819", 2298 | "reference": "ee51f9bb0c6d8a43337055db3120829fa14da819", 2299 | "shasum": "" 2300 | }, 2301 | "require": { 2302 | "php": "^7.3 || ^8.0" 2303 | }, 2304 | "require-dev": { 2305 | "phpunit/phpunit": "^9.0" 2306 | }, 2307 | "type": "library", 2308 | "extra": { 2309 | "branch-alias": { 2310 | "dev-master": "2.0-dev" 2311 | } 2312 | }, 2313 | "autoload": { 2314 | "classmap": [ 2315 | "src/" 2316 | ] 2317 | }, 2318 | "notification-url": "https://packagist.org/downloads/", 2319 | "license": [ 2320 | "BSD-3-Clause" 2321 | ], 2322 | "authors": [ 2323 | { 2324 | "name": "Sebastian Bergmann", 2325 | "email": "sebastian@phpunit.de" 2326 | } 2327 | ], 2328 | "description": "Looks up which function or method a line of code belongs to", 2329 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 2330 | "time": "2020-06-26T12:04:00+00:00" 2331 | }, 2332 | { 2333 | "name": "sebastian/comparator", 2334 | "version": "4.0.3", 2335 | "source": { 2336 | "type": "git", 2337 | "url": "https://github.com/sebastianbergmann/comparator.git", 2338 | "reference": "dcc580eadfaa4e7f9d2cf9ae1922134ea962e14f" 2339 | }, 2340 | "dist": { 2341 | "type": "zip", 2342 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/dcc580eadfaa4e7f9d2cf9ae1922134ea962e14f", 2343 | "reference": "dcc580eadfaa4e7f9d2cf9ae1922134ea962e14f", 2344 | "shasum": "" 2345 | }, 2346 | "require": { 2347 | "php": "^7.3 || ^8.0", 2348 | "sebastian/diff": "^4.0", 2349 | "sebastian/exporter": "^4.0" 2350 | }, 2351 | "require-dev": { 2352 | "phpunit/phpunit": "^9.0" 2353 | }, 2354 | "type": "library", 2355 | "extra": { 2356 | "branch-alias": { 2357 | "dev-master": "4.0-dev" 2358 | } 2359 | }, 2360 | "autoload": { 2361 | "classmap": [ 2362 | "src/" 2363 | ] 2364 | }, 2365 | "notification-url": "https://packagist.org/downloads/", 2366 | "license": [ 2367 | "BSD-3-Clause" 2368 | ], 2369 | "authors": [ 2370 | { 2371 | "name": "Sebastian Bergmann", 2372 | "email": "sebastian@phpunit.de" 2373 | }, 2374 | { 2375 | "name": "Jeff Welch", 2376 | "email": "whatthejeff@gmail.com" 2377 | }, 2378 | { 2379 | "name": "Volker Dusch", 2380 | "email": "github@wallbash.com" 2381 | }, 2382 | { 2383 | "name": "Bernhard Schussek", 2384 | "email": "bschussek@2bepublished.at" 2385 | } 2386 | ], 2387 | "description": "Provides the functionality to compare PHP values for equality", 2388 | "homepage": "https://github.com/sebastianbergmann/comparator", 2389 | "keywords": [ 2390 | "comparator", 2391 | "compare", 2392 | "equality" 2393 | ], 2394 | "time": "2020-06-26T12:05:46+00:00" 2395 | }, 2396 | { 2397 | "name": "sebastian/diff", 2398 | "version": "4.0.2", 2399 | "source": { 2400 | "type": "git", 2401 | "url": "https://github.com/sebastianbergmann/diff.git", 2402 | "reference": "1e90b4cf905a7d06c420b1d2e9d11a4dc8a13113" 2403 | }, 2404 | "dist": { 2405 | "type": "zip", 2406 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/1e90b4cf905a7d06c420b1d2e9d11a4dc8a13113", 2407 | "reference": "1e90b4cf905a7d06c420b1d2e9d11a4dc8a13113", 2408 | "shasum": "" 2409 | }, 2410 | "require": { 2411 | "php": "^7.3 || ^8.0" 2412 | }, 2413 | "require-dev": { 2414 | "phpunit/phpunit": "^9.0", 2415 | "symfony/process": "^4.2 || ^5" 2416 | }, 2417 | "type": "library", 2418 | "extra": { 2419 | "branch-alias": { 2420 | "dev-master": "4.0-dev" 2421 | } 2422 | }, 2423 | "autoload": { 2424 | "classmap": [ 2425 | "src/" 2426 | ] 2427 | }, 2428 | "notification-url": "https://packagist.org/downloads/", 2429 | "license": [ 2430 | "BSD-3-Clause" 2431 | ], 2432 | "authors": [ 2433 | { 2434 | "name": "Sebastian Bergmann", 2435 | "email": "sebastian@phpunit.de" 2436 | }, 2437 | { 2438 | "name": "Kore Nordmann", 2439 | "email": "mail@kore-nordmann.de" 2440 | } 2441 | ], 2442 | "description": "Diff implementation", 2443 | "homepage": "https://github.com/sebastianbergmann/diff", 2444 | "keywords": [ 2445 | "diff", 2446 | "udiff", 2447 | "unidiff", 2448 | "unified diff" 2449 | ], 2450 | "time": "2020-06-30T04:46:02+00:00" 2451 | }, 2452 | { 2453 | "name": "sebastian/environment", 2454 | "version": "5.1.2", 2455 | "source": { 2456 | "type": "git", 2457 | "url": "https://github.com/sebastianbergmann/environment.git", 2458 | "reference": "0a757cab9d5b7ef49a619f1143e6c9c1bc0fe9d2" 2459 | }, 2460 | "dist": { 2461 | "type": "zip", 2462 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/0a757cab9d5b7ef49a619f1143e6c9c1bc0fe9d2", 2463 | "reference": "0a757cab9d5b7ef49a619f1143e6c9c1bc0fe9d2", 2464 | "shasum": "" 2465 | }, 2466 | "require": { 2467 | "php": "^7.3 || ^8.0" 2468 | }, 2469 | "require-dev": { 2470 | "phpunit/phpunit": "^9.0" 2471 | }, 2472 | "suggest": { 2473 | "ext-posix": "*" 2474 | }, 2475 | "type": "library", 2476 | "extra": { 2477 | "branch-alias": { 2478 | "dev-master": "5.0-dev" 2479 | } 2480 | }, 2481 | "autoload": { 2482 | "classmap": [ 2483 | "src/" 2484 | ] 2485 | }, 2486 | "notification-url": "https://packagist.org/downloads/", 2487 | "license": [ 2488 | "BSD-3-Clause" 2489 | ], 2490 | "authors": [ 2491 | { 2492 | "name": "Sebastian Bergmann", 2493 | "email": "sebastian@phpunit.de" 2494 | } 2495 | ], 2496 | "description": "Provides functionality to handle HHVM/PHP environments", 2497 | "homepage": "http://www.github.com/sebastianbergmann/environment", 2498 | "keywords": [ 2499 | "Xdebug", 2500 | "environment", 2501 | "hhvm" 2502 | ], 2503 | "time": "2020-06-26T12:07:24+00:00" 2504 | }, 2505 | { 2506 | "name": "sebastian/exporter", 2507 | "version": "4.0.2", 2508 | "source": { 2509 | "type": "git", 2510 | "url": "https://github.com/sebastianbergmann/exporter.git", 2511 | "reference": "571d721db4aec847a0e59690b954af33ebf9f023" 2512 | }, 2513 | "dist": { 2514 | "type": "zip", 2515 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/571d721db4aec847a0e59690b954af33ebf9f023", 2516 | "reference": "571d721db4aec847a0e59690b954af33ebf9f023", 2517 | "shasum": "" 2518 | }, 2519 | "require": { 2520 | "php": "^7.3 || ^8.0", 2521 | "sebastian/recursion-context": "^4.0" 2522 | }, 2523 | "require-dev": { 2524 | "ext-mbstring": "*", 2525 | "phpunit/phpunit": "^9.2" 2526 | }, 2527 | "type": "library", 2528 | "extra": { 2529 | "branch-alias": { 2530 | "dev-master": "4.0-dev" 2531 | } 2532 | }, 2533 | "autoload": { 2534 | "classmap": [ 2535 | "src/" 2536 | ] 2537 | }, 2538 | "notification-url": "https://packagist.org/downloads/", 2539 | "license": [ 2540 | "BSD-3-Clause" 2541 | ], 2542 | "authors": [ 2543 | { 2544 | "name": "Sebastian Bergmann", 2545 | "email": "sebastian@phpunit.de" 2546 | }, 2547 | { 2548 | "name": "Jeff Welch", 2549 | "email": "whatthejeff@gmail.com" 2550 | }, 2551 | { 2552 | "name": "Volker Dusch", 2553 | "email": "github@wallbash.com" 2554 | }, 2555 | { 2556 | "name": "Adam Harvey", 2557 | "email": "aharvey@php.net" 2558 | }, 2559 | { 2560 | "name": "Bernhard Schussek", 2561 | "email": "bschussek@gmail.com" 2562 | } 2563 | ], 2564 | "description": "Provides the functionality to export PHP variables for visualization", 2565 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 2566 | "keywords": [ 2567 | "export", 2568 | "exporter" 2569 | ], 2570 | "time": "2020-06-26T12:08:55+00:00" 2571 | }, 2572 | { 2573 | "name": "sebastian/global-state", 2574 | "version": "4.0.0", 2575 | "source": { 2576 | "type": "git", 2577 | "url": "https://github.com/sebastianbergmann/global-state.git", 2578 | "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72" 2579 | }, 2580 | "dist": { 2581 | "type": "zip", 2582 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bdb1e7c79e592b8c82cb1699be3c8743119b8a72", 2583 | "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72", 2584 | "shasum": "" 2585 | }, 2586 | "require": { 2587 | "php": "^7.3", 2588 | "sebastian/object-reflector": "^2.0", 2589 | "sebastian/recursion-context": "^4.0" 2590 | }, 2591 | "require-dev": { 2592 | "ext-dom": "*", 2593 | "phpunit/phpunit": "^9.0" 2594 | }, 2595 | "suggest": { 2596 | "ext-uopz": "*" 2597 | }, 2598 | "type": "library", 2599 | "extra": { 2600 | "branch-alias": { 2601 | "dev-master": "4.0-dev" 2602 | } 2603 | }, 2604 | "autoload": { 2605 | "classmap": [ 2606 | "src/" 2607 | ] 2608 | }, 2609 | "notification-url": "https://packagist.org/downloads/", 2610 | "license": [ 2611 | "BSD-3-Clause" 2612 | ], 2613 | "authors": [ 2614 | { 2615 | "name": "Sebastian Bergmann", 2616 | "email": "sebastian@phpunit.de" 2617 | } 2618 | ], 2619 | "description": "Snapshotting of global state", 2620 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 2621 | "keywords": [ 2622 | "global state" 2623 | ], 2624 | "time": "2020-02-07T06:11:37+00:00" 2625 | }, 2626 | { 2627 | "name": "sebastian/object-enumerator", 2628 | "version": "4.0.2", 2629 | "source": { 2630 | "type": "git", 2631 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 2632 | "reference": "074fed2d0a6d08e1677dd8ce9d32aecb384917b8" 2633 | }, 2634 | "dist": { 2635 | "type": "zip", 2636 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/074fed2d0a6d08e1677dd8ce9d32aecb384917b8", 2637 | "reference": "074fed2d0a6d08e1677dd8ce9d32aecb384917b8", 2638 | "shasum": "" 2639 | }, 2640 | "require": { 2641 | "php": "^7.3 || ^8.0", 2642 | "sebastian/object-reflector": "^2.0", 2643 | "sebastian/recursion-context": "^4.0" 2644 | }, 2645 | "require-dev": { 2646 | "phpunit/phpunit": "^9.0" 2647 | }, 2648 | "type": "library", 2649 | "extra": { 2650 | "branch-alias": { 2651 | "dev-master": "4.0-dev" 2652 | } 2653 | }, 2654 | "autoload": { 2655 | "classmap": [ 2656 | "src/" 2657 | ] 2658 | }, 2659 | "notification-url": "https://packagist.org/downloads/", 2660 | "license": [ 2661 | "BSD-3-Clause" 2662 | ], 2663 | "authors": [ 2664 | { 2665 | "name": "Sebastian Bergmann", 2666 | "email": "sebastian@phpunit.de" 2667 | } 2668 | ], 2669 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 2670 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 2671 | "time": "2020-06-26T12:11:32+00:00" 2672 | }, 2673 | { 2674 | "name": "sebastian/object-reflector", 2675 | "version": "2.0.2", 2676 | "source": { 2677 | "type": "git", 2678 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 2679 | "reference": "127a46f6b057441b201253526f81d5406d6c7840" 2680 | }, 2681 | "dist": { 2682 | "type": "zip", 2683 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/127a46f6b057441b201253526f81d5406d6c7840", 2684 | "reference": "127a46f6b057441b201253526f81d5406d6c7840", 2685 | "shasum": "" 2686 | }, 2687 | "require": { 2688 | "php": "^7.3 || ^8.0" 2689 | }, 2690 | "require-dev": { 2691 | "phpunit/phpunit": "^9.0" 2692 | }, 2693 | "type": "library", 2694 | "extra": { 2695 | "branch-alias": { 2696 | "dev-master": "2.0-dev" 2697 | } 2698 | }, 2699 | "autoload": { 2700 | "classmap": [ 2701 | "src/" 2702 | ] 2703 | }, 2704 | "notification-url": "https://packagist.org/downloads/", 2705 | "license": [ 2706 | "BSD-3-Clause" 2707 | ], 2708 | "authors": [ 2709 | { 2710 | "name": "Sebastian Bergmann", 2711 | "email": "sebastian@phpunit.de" 2712 | } 2713 | ], 2714 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 2715 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 2716 | "time": "2020-06-26T12:12:55+00:00" 2717 | }, 2718 | { 2719 | "name": "sebastian/recursion-context", 2720 | "version": "4.0.2", 2721 | "source": { 2722 | "type": "git", 2723 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 2724 | "reference": "062231bf61d2b9448c4fa5a7643b5e1829c11d63" 2725 | }, 2726 | "dist": { 2727 | "type": "zip", 2728 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/062231bf61d2b9448c4fa5a7643b5e1829c11d63", 2729 | "reference": "062231bf61d2b9448c4fa5a7643b5e1829c11d63", 2730 | "shasum": "" 2731 | }, 2732 | "require": { 2733 | "php": "^7.3 || ^8.0" 2734 | }, 2735 | "require-dev": { 2736 | "phpunit/phpunit": "^9.0" 2737 | }, 2738 | "type": "library", 2739 | "extra": { 2740 | "branch-alias": { 2741 | "dev-master": "4.0-dev" 2742 | } 2743 | }, 2744 | "autoload": { 2745 | "classmap": [ 2746 | "src/" 2747 | ] 2748 | }, 2749 | "notification-url": "https://packagist.org/downloads/", 2750 | "license": [ 2751 | "BSD-3-Clause" 2752 | ], 2753 | "authors": [ 2754 | { 2755 | "name": "Sebastian Bergmann", 2756 | "email": "sebastian@phpunit.de" 2757 | }, 2758 | { 2759 | "name": "Jeff Welch", 2760 | "email": "whatthejeff@gmail.com" 2761 | }, 2762 | { 2763 | "name": "Adam Harvey", 2764 | "email": "aharvey@php.net" 2765 | } 2766 | ], 2767 | "description": "Provides functionality to recursively process PHP variables", 2768 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 2769 | "time": "2020-06-26T12:14:17+00:00" 2770 | }, 2771 | { 2772 | "name": "sebastian/resource-operations", 2773 | "version": "3.0.2", 2774 | "source": { 2775 | "type": "git", 2776 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 2777 | "reference": "0653718a5a629b065e91f774595267f8dc32e213" 2778 | }, 2779 | "dist": { 2780 | "type": "zip", 2781 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0653718a5a629b065e91f774595267f8dc32e213", 2782 | "reference": "0653718a5a629b065e91f774595267f8dc32e213", 2783 | "shasum": "" 2784 | }, 2785 | "require": { 2786 | "php": "^7.3 || ^8.0" 2787 | }, 2788 | "require-dev": { 2789 | "phpunit/phpunit": "^9.0" 2790 | }, 2791 | "type": "library", 2792 | "extra": { 2793 | "branch-alias": { 2794 | "dev-master": "3.0-dev" 2795 | } 2796 | }, 2797 | "autoload": { 2798 | "classmap": [ 2799 | "src/" 2800 | ] 2801 | }, 2802 | "notification-url": "https://packagist.org/downloads/", 2803 | "license": [ 2804 | "BSD-3-Clause" 2805 | ], 2806 | "authors": [ 2807 | { 2808 | "name": "Sebastian Bergmann", 2809 | "email": "sebastian@phpunit.de" 2810 | } 2811 | ], 2812 | "description": "Provides a list of PHP built-in functions that operate on resources", 2813 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 2814 | "time": "2020-06-26T12:16:22+00:00" 2815 | }, 2816 | { 2817 | "name": "sebastian/type", 2818 | "version": "2.2.1", 2819 | "source": { 2820 | "type": "git", 2821 | "url": "https://github.com/sebastianbergmann/type.git", 2822 | "reference": "86991e2b33446cd96e648c18bcdb1e95afb2c05a" 2823 | }, 2824 | "dist": { 2825 | "type": "zip", 2826 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/86991e2b33446cd96e648c18bcdb1e95afb2c05a", 2827 | "reference": "86991e2b33446cd96e648c18bcdb1e95afb2c05a", 2828 | "shasum": "" 2829 | }, 2830 | "require": { 2831 | "php": "^7.3 || ^8.0" 2832 | }, 2833 | "require-dev": { 2834 | "phpunit/phpunit": "^9.2" 2835 | }, 2836 | "type": "library", 2837 | "extra": { 2838 | "branch-alias": { 2839 | "dev-master": "2.2-dev" 2840 | } 2841 | }, 2842 | "autoload": { 2843 | "classmap": [ 2844 | "src/" 2845 | ] 2846 | }, 2847 | "notification-url": "https://packagist.org/downloads/", 2848 | "license": [ 2849 | "BSD-3-Clause" 2850 | ], 2851 | "authors": [ 2852 | { 2853 | "name": "Sebastian Bergmann", 2854 | "email": "sebastian@phpunit.de", 2855 | "role": "lead" 2856 | } 2857 | ], 2858 | "description": "Collection of value objects that represent the types of the PHP type system", 2859 | "homepage": "https://github.com/sebastianbergmann/type", 2860 | "time": "2020-07-05T08:31:53+00:00" 2861 | }, 2862 | { 2863 | "name": "sebastian/version", 2864 | "version": "3.0.1", 2865 | "source": { 2866 | "type": "git", 2867 | "url": "https://github.com/sebastianbergmann/version.git", 2868 | "reference": "626586115d0ed31cb71483be55beb759b5af5a3c" 2869 | }, 2870 | "dist": { 2871 | "type": "zip", 2872 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/626586115d0ed31cb71483be55beb759b5af5a3c", 2873 | "reference": "626586115d0ed31cb71483be55beb759b5af5a3c", 2874 | "shasum": "" 2875 | }, 2876 | "require": { 2877 | "php": "^7.3 || ^8.0" 2878 | }, 2879 | "type": "library", 2880 | "extra": { 2881 | "branch-alias": { 2882 | "dev-master": "3.0-dev" 2883 | } 2884 | }, 2885 | "autoload": { 2886 | "classmap": [ 2887 | "src/" 2888 | ] 2889 | }, 2890 | "notification-url": "https://packagist.org/downloads/", 2891 | "license": [ 2892 | "BSD-3-Clause" 2893 | ], 2894 | "authors": [ 2895 | { 2896 | "name": "Sebastian Bergmann", 2897 | "email": "sebastian@phpunit.de", 2898 | "role": "lead" 2899 | } 2900 | ], 2901 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 2902 | "homepage": "https://github.com/sebastianbergmann/version", 2903 | "time": "2020-06-26T12:18:43+00:00" 2904 | }, 2905 | { 2906 | "name": "seld/jsonlint", 2907 | "version": "1.8.1", 2908 | "source": { 2909 | "type": "git", 2910 | "url": "https://github.com/Seldaek/jsonlint.git", 2911 | "reference": "3d5eb71705adfa34bd34b993400622932b2f62fd" 2912 | }, 2913 | "dist": { 2914 | "type": "zip", 2915 | "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/3d5eb71705adfa34bd34b993400622932b2f62fd", 2916 | "reference": "3d5eb71705adfa34bd34b993400622932b2f62fd", 2917 | "shasum": "" 2918 | }, 2919 | "require": { 2920 | "php": "^5.3 || ^7.0 || ^8.0" 2921 | }, 2922 | "require-dev": { 2923 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 2924 | }, 2925 | "bin": [ 2926 | "bin/jsonlint" 2927 | ], 2928 | "type": "library", 2929 | "autoload": { 2930 | "psr-4": { 2931 | "Seld\\JsonLint\\": "src/Seld/JsonLint/" 2932 | } 2933 | }, 2934 | "notification-url": "https://packagist.org/downloads/", 2935 | "license": [ 2936 | "MIT" 2937 | ], 2938 | "authors": [ 2939 | { 2940 | "name": "Jordi Boggiano", 2941 | "email": "j.boggiano@seld.be", 2942 | "homepage": "http://seld.be" 2943 | } 2944 | ], 2945 | "description": "JSON Linter", 2946 | "keywords": [ 2947 | "json", 2948 | "linter", 2949 | "parser", 2950 | "validator" 2951 | ], 2952 | "time": "2020-08-13T09:07:59+00:00" 2953 | }, 2954 | { 2955 | "name": "slevomat/coding-standard", 2956 | "version": "4.8.7", 2957 | "source": { 2958 | "type": "git", 2959 | "url": "https://github.com/slevomat/coding-standard.git", 2960 | "reference": "bff96313d8c7c2ba57a4edb13c1c141df8988c58" 2961 | }, 2962 | "dist": { 2963 | "type": "zip", 2964 | "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/bff96313d8c7c2ba57a4edb13c1c141df8988c58", 2965 | "reference": "bff96313d8c7c2ba57a4edb13c1c141df8988c58", 2966 | "shasum": "" 2967 | }, 2968 | "require": { 2969 | "php": "^7.1", 2970 | "squizlabs/php_codesniffer": "^3.4.0" 2971 | }, 2972 | "require-dev": { 2973 | "jakub-onderka/php-parallel-lint": "1.0.0", 2974 | "phing/phing": "2.16.1", 2975 | "phpstan/phpstan": "0.9.2", 2976 | "phpstan/phpstan-phpunit": "0.9.4", 2977 | "phpstan/phpstan-strict-rules": "0.9", 2978 | "phpunit/phpunit": "7.5.1" 2979 | }, 2980 | "type": "phpcodesniffer-standard", 2981 | "autoload": { 2982 | "psr-4": { 2983 | "SlevomatCodingStandard\\": "SlevomatCodingStandard" 2984 | } 2985 | }, 2986 | "notification-url": "https://packagist.org/downloads/", 2987 | "license": [ 2988 | "MIT" 2989 | ], 2990 | "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", 2991 | "time": "2019-01-03T13:15:50+00:00" 2992 | }, 2993 | { 2994 | "name": "squizlabs/php_codesniffer", 2995 | "version": "3.5.6", 2996 | "source": { 2997 | "type": "git", 2998 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", 2999 | "reference": "e97627871a7eab2f70e59166072a6b767d5834e0" 3000 | }, 3001 | "dist": { 3002 | "type": "zip", 3003 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/e97627871a7eab2f70e59166072a6b767d5834e0", 3004 | "reference": "e97627871a7eab2f70e59166072a6b767d5834e0", 3005 | "shasum": "" 3006 | }, 3007 | "require": { 3008 | "ext-simplexml": "*", 3009 | "ext-tokenizer": "*", 3010 | "ext-xmlwriter": "*", 3011 | "php": ">=5.4.0" 3012 | }, 3013 | "require-dev": { 3014 | "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" 3015 | }, 3016 | "bin": [ 3017 | "bin/phpcs", 3018 | "bin/phpcbf" 3019 | ], 3020 | "type": "library", 3021 | "extra": { 3022 | "branch-alias": { 3023 | "dev-master": "3.x-dev" 3024 | } 3025 | }, 3026 | "notification-url": "https://packagist.org/downloads/", 3027 | "license": [ 3028 | "BSD-3-Clause" 3029 | ], 3030 | "authors": [ 3031 | { 3032 | "name": "Greg Sherwood", 3033 | "role": "lead" 3034 | } 3035 | ], 3036 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 3037 | "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", 3038 | "keywords": [ 3039 | "phpcs", 3040 | "standards" 3041 | ], 3042 | "time": "2020-08-10T04:50:15+00:00" 3043 | }, 3044 | { 3045 | "name": "symfony/config", 3046 | "version": "v5.1.3", 3047 | "source": { 3048 | "type": "git", 3049 | "url": "https://github.com/symfony/config.git", 3050 | "reference": "cf63f0613a6c6918e96db39c07a43b01e19a0773" 3051 | }, 3052 | "dist": { 3053 | "type": "zip", 3054 | "url": "https://api.github.com/repos/symfony/config/zipball/cf63f0613a6c6918e96db39c07a43b01e19a0773", 3055 | "reference": "cf63f0613a6c6918e96db39c07a43b01e19a0773", 3056 | "shasum": "" 3057 | }, 3058 | "require": { 3059 | "php": ">=7.2.5", 3060 | "symfony/deprecation-contracts": "^2.1", 3061 | "symfony/filesystem": "^4.4|^5.0", 3062 | "symfony/polyfill-ctype": "~1.8", 3063 | "symfony/polyfill-php80": "^1.15" 3064 | }, 3065 | "conflict": { 3066 | "symfony/finder": "<4.4" 3067 | }, 3068 | "require-dev": { 3069 | "symfony/event-dispatcher": "^4.4|^5.0", 3070 | "symfony/finder": "^4.4|^5.0", 3071 | "symfony/messenger": "^4.4|^5.0", 3072 | "symfony/service-contracts": "^1.1|^2", 3073 | "symfony/yaml": "^4.4|^5.0" 3074 | }, 3075 | "suggest": { 3076 | "symfony/yaml": "To use the yaml reference dumper" 3077 | }, 3078 | "type": "library", 3079 | "extra": { 3080 | "branch-alias": { 3081 | "dev-master": "5.1-dev" 3082 | } 3083 | }, 3084 | "autoload": { 3085 | "psr-4": { 3086 | "Symfony\\Component\\Config\\": "" 3087 | }, 3088 | "exclude-from-classmap": [ 3089 | "/Tests/" 3090 | ] 3091 | }, 3092 | "notification-url": "https://packagist.org/downloads/", 3093 | "license": [ 3094 | "MIT" 3095 | ], 3096 | "authors": [ 3097 | { 3098 | "name": "Fabien Potencier", 3099 | "email": "fabien@symfony.com" 3100 | }, 3101 | { 3102 | "name": "Symfony Community", 3103 | "homepage": "https://symfony.com/contributors" 3104 | } 3105 | ], 3106 | "description": "Symfony Config Component", 3107 | "homepage": "https://symfony.com", 3108 | "time": "2020-07-15T10:53:22+00:00" 3109 | }, 3110 | { 3111 | "name": "symfony/console", 3112 | "version": "v4.4.11", 3113 | "source": { 3114 | "type": "git", 3115 | "url": "https://github.com/symfony/console.git", 3116 | "reference": "55d07021da933dd0d633ffdab6f45d5b230c7e02" 3117 | }, 3118 | "dist": { 3119 | "type": "zip", 3120 | "url": "https://api.github.com/repos/symfony/console/zipball/55d07021da933dd0d633ffdab6f45d5b230c7e02", 3121 | "reference": "55d07021da933dd0d633ffdab6f45d5b230c7e02", 3122 | "shasum": "" 3123 | }, 3124 | "require": { 3125 | "php": ">=7.1.3", 3126 | "symfony/polyfill-mbstring": "~1.0", 3127 | "symfony/polyfill-php73": "^1.8", 3128 | "symfony/polyfill-php80": "^1.15", 3129 | "symfony/service-contracts": "^1.1|^2" 3130 | }, 3131 | "conflict": { 3132 | "symfony/dependency-injection": "<3.4", 3133 | "symfony/event-dispatcher": "<4.3|>=5", 3134 | "symfony/lock": "<4.4", 3135 | "symfony/process": "<3.3" 3136 | }, 3137 | "provide": { 3138 | "psr/log-implementation": "1.0" 3139 | }, 3140 | "require-dev": { 3141 | "psr/log": "~1.0", 3142 | "symfony/config": "^3.4|^4.0|^5.0", 3143 | "symfony/dependency-injection": "^3.4|^4.0|^5.0", 3144 | "symfony/event-dispatcher": "^4.3", 3145 | "symfony/lock": "^4.4|^5.0", 3146 | "symfony/process": "^3.4|^4.0|^5.0", 3147 | "symfony/var-dumper": "^4.3|^5.0" 3148 | }, 3149 | "suggest": { 3150 | "psr/log": "For using the console logger", 3151 | "symfony/event-dispatcher": "", 3152 | "symfony/lock": "", 3153 | "symfony/process": "" 3154 | }, 3155 | "type": "library", 3156 | "extra": { 3157 | "branch-alias": { 3158 | "dev-master": "4.4-dev" 3159 | } 3160 | }, 3161 | "autoload": { 3162 | "psr-4": { 3163 | "Symfony\\Component\\Console\\": "" 3164 | }, 3165 | "exclude-from-classmap": [ 3166 | "/Tests/" 3167 | ] 3168 | }, 3169 | "notification-url": "https://packagist.org/downloads/", 3170 | "license": [ 3171 | "MIT" 3172 | ], 3173 | "authors": [ 3174 | { 3175 | "name": "Fabien Potencier", 3176 | "email": "fabien@symfony.com" 3177 | }, 3178 | { 3179 | "name": "Symfony Community", 3180 | "homepage": "https://symfony.com/contributors" 3181 | } 3182 | ], 3183 | "description": "Symfony Console Component", 3184 | "homepage": "https://symfony.com", 3185 | "time": "2020-07-06T13:18:39+00:00" 3186 | }, 3187 | { 3188 | "name": "symfony/dependency-injection", 3189 | "version": "v5.1.3", 3190 | "source": { 3191 | "type": "git", 3192 | "url": "https://github.com/symfony/dependency-injection.git", 3193 | "reference": "c45c3f26d2ae7c5239e5ad420b0c2717dbbc0bcb" 3194 | }, 3195 | "dist": { 3196 | "type": "zip", 3197 | "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c45c3f26d2ae7c5239e5ad420b0c2717dbbc0bcb", 3198 | "reference": "c45c3f26d2ae7c5239e5ad420b0c2717dbbc0bcb", 3199 | "shasum": "" 3200 | }, 3201 | "require": { 3202 | "php": ">=7.2.5", 3203 | "psr/container": "^1.0", 3204 | "symfony/deprecation-contracts": "^2.1", 3205 | "symfony/polyfill-php80": "^1.15", 3206 | "symfony/service-contracts": "^1.1.6|^2" 3207 | }, 3208 | "conflict": { 3209 | "symfony/config": "<5.1", 3210 | "symfony/finder": "<4.4", 3211 | "symfony/proxy-manager-bridge": "<4.4", 3212 | "symfony/yaml": "<4.4" 3213 | }, 3214 | "provide": { 3215 | "psr/container-implementation": "1.0", 3216 | "symfony/service-implementation": "1.0" 3217 | }, 3218 | "require-dev": { 3219 | "symfony/config": "^5.1", 3220 | "symfony/expression-language": "^4.4|^5.0", 3221 | "symfony/yaml": "^4.4|^5.0" 3222 | }, 3223 | "suggest": { 3224 | "symfony/config": "", 3225 | "symfony/expression-language": "For using expressions in service container configuration", 3226 | "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", 3227 | "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", 3228 | "symfony/yaml": "" 3229 | }, 3230 | "type": "library", 3231 | "extra": { 3232 | "branch-alias": { 3233 | "dev-master": "5.1-dev" 3234 | } 3235 | }, 3236 | "autoload": { 3237 | "psr-4": { 3238 | "Symfony\\Component\\DependencyInjection\\": "" 3239 | }, 3240 | "exclude-from-classmap": [ 3241 | "/Tests/" 3242 | ] 3243 | }, 3244 | "notification-url": "https://packagist.org/downloads/", 3245 | "license": [ 3246 | "MIT" 3247 | ], 3248 | "authors": [ 3249 | { 3250 | "name": "Fabien Potencier", 3251 | "email": "fabien@symfony.com" 3252 | }, 3253 | { 3254 | "name": "Symfony Community", 3255 | "homepage": "https://symfony.com/contributors" 3256 | } 3257 | ], 3258 | "description": "Symfony DependencyInjection Component", 3259 | "homepage": "https://symfony.com", 3260 | "time": "2020-07-23T08:36:24+00:00" 3261 | }, 3262 | { 3263 | "name": "symfony/deprecation-contracts", 3264 | "version": "v2.1.3", 3265 | "source": { 3266 | "type": "git", 3267 | "url": "https://github.com/symfony/deprecation-contracts.git", 3268 | "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14" 3269 | }, 3270 | "dist": { 3271 | "type": "zip", 3272 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5e20b83385a77593259c9f8beb2c43cd03b2ac14", 3273 | "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14", 3274 | "shasum": "" 3275 | }, 3276 | "require": { 3277 | "php": ">=7.1" 3278 | }, 3279 | "type": "library", 3280 | "extra": { 3281 | "branch-alias": { 3282 | "dev-master": "2.1-dev" 3283 | }, 3284 | "thanks": { 3285 | "name": "symfony/contracts", 3286 | "url": "https://github.com/symfony/contracts" 3287 | } 3288 | }, 3289 | "autoload": { 3290 | "files": [ 3291 | "function.php" 3292 | ] 3293 | }, 3294 | "notification-url": "https://packagist.org/downloads/", 3295 | "license": [ 3296 | "MIT" 3297 | ], 3298 | "authors": [ 3299 | { 3300 | "name": "Nicolas Grekas", 3301 | "email": "p@tchwork.com" 3302 | }, 3303 | { 3304 | "name": "Symfony Community", 3305 | "homepage": "https://symfony.com/contributors" 3306 | } 3307 | ], 3308 | "description": "A generic function and convention to trigger deprecation notices", 3309 | "homepage": "https://symfony.com", 3310 | "time": "2020-06-06T08:49:21+00:00" 3311 | }, 3312 | { 3313 | "name": "symfony/filesystem", 3314 | "version": "v5.1.3", 3315 | "source": { 3316 | "type": "git", 3317 | "url": "https://github.com/symfony/filesystem.git", 3318 | "reference": "6e4320f06d5f2cce0d96530162491f4465179157" 3319 | }, 3320 | "dist": { 3321 | "type": "zip", 3322 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/6e4320f06d5f2cce0d96530162491f4465179157", 3323 | "reference": "6e4320f06d5f2cce0d96530162491f4465179157", 3324 | "shasum": "" 3325 | }, 3326 | "require": { 3327 | "php": ">=7.2.5", 3328 | "symfony/polyfill-ctype": "~1.8" 3329 | }, 3330 | "type": "library", 3331 | "extra": { 3332 | "branch-alias": { 3333 | "dev-master": "5.1-dev" 3334 | } 3335 | }, 3336 | "autoload": { 3337 | "psr-4": { 3338 | "Symfony\\Component\\Filesystem\\": "" 3339 | }, 3340 | "exclude-from-classmap": [ 3341 | "/Tests/" 3342 | ] 3343 | }, 3344 | "notification-url": "https://packagist.org/downloads/", 3345 | "license": [ 3346 | "MIT" 3347 | ], 3348 | "authors": [ 3349 | { 3350 | "name": "Fabien Potencier", 3351 | "email": "fabien@symfony.com" 3352 | }, 3353 | { 3354 | "name": "Symfony Community", 3355 | "homepage": "https://symfony.com/contributors" 3356 | } 3357 | ], 3358 | "description": "Symfony Filesystem Component", 3359 | "homepage": "https://symfony.com", 3360 | "time": "2020-05-30T20:35:19+00:00" 3361 | }, 3362 | { 3363 | "name": "symfony/finder", 3364 | "version": "v4.4.11", 3365 | "source": { 3366 | "type": "git", 3367 | "url": "https://github.com/symfony/finder.git", 3368 | "reference": "2727aa35fddfada1dd37599948528e9b152eb742" 3369 | }, 3370 | "dist": { 3371 | "type": "zip", 3372 | "url": "https://api.github.com/repos/symfony/finder/zipball/2727aa35fddfada1dd37599948528e9b152eb742", 3373 | "reference": "2727aa35fddfada1dd37599948528e9b152eb742", 3374 | "shasum": "" 3375 | }, 3376 | "require": { 3377 | "php": ">=7.1.3" 3378 | }, 3379 | "type": "library", 3380 | "extra": { 3381 | "branch-alias": { 3382 | "dev-master": "4.4-dev" 3383 | } 3384 | }, 3385 | "autoload": { 3386 | "psr-4": { 3387 | "Symfony\\Component\\Finder\\": "" 3388 | }, 3389 | "exclude-from-classmap": [ 3390 | "/Tests/" 3391 | ] 3392 | }, 3393 | "notification-url": "https://packagist.org/downloads/", 3394 | "license": [ 3395 | "MIT" 3396 | ], 3397 | "authors": [ 3398 | { 3399 | "name": "Fabien Potencier", 3400 | "email": "fabien@symfony.com" 3401 | }, 3402 | { 3403 | "name": "Symfony Community", 3404 | "homepage": "https://symfony.com/contributors" 3405 | } 3406 | ], 3407 | "description": "Symfony Finder Component", 3408 | "homepage": "https://symfony.com", 3409 | "time": "2020-07-05T09:39:30+00:00" 3410 | }, 3411 | { 3412 | "name": "symfony/polyfill-ctype", 3413 | "version": "v1.18.1", 3414 | "source": { 3415 | "type": "git", 3416 | "url": "https://github.com/symfony/polyfill-ctype.git", 3417 | "reference": "1c302646f6efc070cd46856e600e5e0684d6b454" 3418 | }, 3419 | "dist": { 3420 | "type": "zip", 3421 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1c302646f6efc070cd46856e600e5e0684d6b454", 3422 | "reference": "1c302646f6efc070cd46856e600e5e0684d6b454", 3423 | "shasum": "" 3424 | }, 3425 | "require": { 3426 | "php": ">=5.3.3" 3427 | }, 3428 | "suggest": { 3429 | "ext-ctype": "For best performance" 3430 | }, 3431 | "type": "library", 3432 | "extra": { 3433 | "branch-alias": { 3434 | "dev-master": "1.18-dev" 3435 | }, 3436 | "thanks": { 3437 | "name": "symfony/polyfill", 3438 | "url": "https://github.com/symfony/polyfill" 3439 | } 3440 | }, 3441 | "autoload": { 3442 | "psr-4": { 3443 | "Symfony\\Polyfill\\Ctype\\": "" 3444 | }, 3445 | "files": [ 3446 | "bootstrap.php" 3447 | ] 3448 | }, 3449 | "notification-url": "https://packagist.org/downloads/", 3450 | "license": [ 3451 | "MIT" 3452 | ], 3453 | "authors": [ 3454 | { 3455 | "name": "Gert de Pagter", 3456 | "email": "BackEndTea@gmail.com" 3457 | }, 3458 | { 3459 | "name": "Symfony Community", 3460 | "homepage": "https://symfony.com/contributors" 3461 | } 3462 | ], 3463 | "description": "Symfony polyfill for ctype functions", 3464 | "homepage": "https://symfony.com", 3465 | "keywords": [ 3466 | "compatibility", 3467 | "ctype", 3468 | "polyfill", 3469 | "portable" 3470 | ], 3471 | "time": "2020-07-14T12:35:20+00:00" 3472 | }, 3473 | { 3474 | "name": "symfony/polyfill-mbstring", 3475 | "version": "v1.18.1", 3476 | "source": { 3477 | "type": "git", 3478 | "url": "https://github.com/symfony/polyfill-mbstring.git", 3479 | "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a" 3480 | }, 3481 | "dist": { 3482 | "type": "zip", 3483 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a6977d63bf9a0ad4c65cd352709e230876f9904a", 3484 | "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a", 3485 | "shasum": "" 3486 | }, 3487 | "require": { 3488 | "php": ">=5.3.3" 3489 | }, 3490 | "suggest": { 3491 | "ext-mbstring": "For best performance" 3492 | }, 3493 | "type": "library", 3494 | "extra": { 3495 | "branch-alias": { 3496 | "dev-master": "1.18-dev" 3497 | }, 3498 | "thanks": { 3499 | "name": "symfony/polyfill", 3500 | "url": "https://github.com/symfony/polyfill" 3501 | } 3502 | }, 3503 | "autoload": { 3504 | "psr-4": { 3505 | "Symfony\\Polyfill\\Mbstring\\": "" 3506 | }, 3507 | "files": [ 3508 | "bootstrap.php" 3509 | ] 3510 | }, 3511 | "notification-url": "https://packagist.org/downloads/", 3512 | "license": [ 3513 | "MIT" 3514 | ], 3515 | "authors": [ 3516 | { 3517 | "name": "Nicolas Grekas", 3518 | "email": "p@tchwork.com" 3519 | }, 3520 | { 3521 | "name": "Symfony Community", 3522 | "homepage": "https://symfony.com/contributors" 3523 | } 3524 | ], 3525 | "description": "Symfony polyfill for the Mbstring extension", 3526 | "homepage": "https://symfony.com", 3527 | "keywords": [ 3528 | "compatibility", 3529 | "mbstring", 3530 | "polyfill", 3531 | "portable", 3532 | "shim" 3533 | ], 3534 | "time": "2020-07-14T12:35:20+00:00" 3535 | }, 3536 | { 3537 | "name": "symfony/polyfill-php73", 3538 | "version": "v1.18.1", 3539 | "source": { 3540 | "type": "git", 3541 | "url": "https://github.com/symfony/polyfill-php73.git", 3542 | "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca" 3543 | }, 3544 | "dist": { 3545 | "type": "zip", 3546 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fffa1a52a023e782cdcc221d781fe1ec8f87fcca", 3547 | "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca", 3548 | "shasum": "" 3549 | }, 3550 | "require": { 3551 | "php": ">=5.3.3" 3552 | }, 3553 | "type": "library", 3554 | "extra": { 3555 | "branch-alias": { 3556 | "dev-master": "1.18-dev" 3557 | }, 3558 | "thanks": { 3559 | "name": "symfony/polyfill", 3560 | "url": "https://github.com/symfony/polyfill" 3561 | } 3562 | }, 3563 | "autoload": { 3564 | "psr-4": { 3565 | "Symfony\\Polyfill\\Php73\\": "" 3566 | }, 3567 | "files": [ 3568 | "bootstrap.php" 3569 | ], 3570 | "classmap": [ 3571 | "Resources/stubs" 3572 | ] 3573 | }, 3574 | "notification-url": "https://packagist.org/downloads/", 3575 | "license": [ 3576 | "MIT" 3577 | ], 3578 | "authors": [ 3579 | { 3580 | "name": "Nicolas Grekas", 3581 | "email": "p@tchwork.com" 3582 | }, 3583 | { 3584 | "name": "Symfony Community", 3585 | "homepage": "https://symfony.com/contributors" 3586 | } 3587 | ], 3588 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 3589 | "homepage": "https://symfony.com", 3590 | "keywords": [ 3591 | "compatibility", 3592 | "polyfill", 3593 | "portable", 3594 | "shim" 3595 | ], 3596 | "time": "2020-07-14T12:35:20+00:00" 3597 | }, 3598 | { 3599 | "name": "symfony/polyfill-php80", 3600 | "version": "v1.18.1", 3601 | "source": { 3602 | "type": "git", 3603 | "url": "https://github.com/symfony/polyfill-php80.git", 3604 | "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981" 3605 | }, 3606 | "dist": { 3607 | "type": "zip", 3608 | "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981", 3609 | "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981", 3610 | "shasum": "" 3611 | }, 3612 | "require": { 3613 | "php": ">=7.0.8" 3614 | }, 3615 | "type": "library", 3616 | "extra": { 3617 | "branch-alias": { 3618 | "dev-master": "1.18-dev" 3619 | }, 3620 | "thanks": { 3621 | "name": "symfony/polyfill", 3622 | "url": "https://github.com/symfony/polyfill" 3623 | } 3624 | }, 3625 | "autoload": { 3626 | "psr-4": { 3627 | "Symfony\\Polyfill\\Php80\\": "" 3628 | }, 3629 | "files": [ 3630 | "bootstrap.php" 3631 | ], 3632 | "classmap": [ 3633 | "Resources/stubs" 3634 | ] 3635 | }, 3636 | "notification-url": "https://packagist.org/downloads/", 3637 | "license": [ 3638 | "MIT" 3639 | ], 3640 | "authors": [ 3641 | { 3642 | "name": "Ion Bazan", 3643 | "email": "ion.bazan@gmail.com" 3644 | }, 3645 | { 3646 | "name": "Nicolas Grekas", 3647 | "email": "p@tchwork.com" 3648 | }, 3649 | { 3650 | "name": "Symfony Community", 3651 | "homepage": "https://symfony.com/contributors" 3652 | } 3653 | ], 3654 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", 3655 | "homepage": "https://symfony.com", 3656 | "keywords": [ 3657 | "compatibility", 3658 | "polyfill", 3659 | "portable", 3660 | "shim" 3661 | ], 3662 | "time": "2020-07-14T12:35:20+00:00" 3663 | }, 3664 | { 3665 | "name": "symfony/process", 3666 | "version": "v5.1.3", 3667 | "source": { 3668 | "type": "git", 3669 | "url": "https://github.com/symfony/process.git", 3670 | "reference": "1864216226af21eb76d9477f691e7cbf198e0402" 3671 | }, 3672 | "dist": { 3673 | "type": "zip", 3674 | "url": "https://api.github.com/repos/symfony/process/zipball/1864216226af21eb76d9477f691e7cbf198e0402", 3675 | "reference": "1864216226af21eb76d9477f691e7cbf198e0402", 3676 | "shasum": "" 3677 | }, 3678 | "require": { 3679 | "php": ">=7.2.5", 3680 | "symfony/polyfill-php80": "^1.15" 3681 | }, 3682 | "type": "library", 3683 | "extra": { 3684 | "branch-alias": { 3685 | "dev-master": "5.1-dev" 3686 | } 3687 | }, 3688 | "autoload": { 3689 | "psr-4": { 3690 | "Symfony\\Component\\Process\\": "" 3691 | }, 3692 | "exclude-from-classmap": [ 3693 | "/Tests/" 3694 | ] 3695 | }, 3696 | "notification-url": "https://packagist.org/downloads/", 3697 | "license": [ 3698 | "MIT" 3699 | ], 3700 | "authors": [ 3701 | { 3702 | "name": "Fabien Potencier", 3703 | "email": "fabien@symfony.com" 3704 | }, 3705 | { 3706 | "name": "Symfony Community", 3707 | "homepage": "https://symfony.com/contributors" 3708 | } 3709 | ], 3710 | "description": "Symfony Process Component", 3711 | "homepage": "https://symfony.com", 3712 | "time": "2020-07-23T08:36:24+00:00" 3713 | }, 3714 | { 3715 | "name": "symfony/service-contracts", 3716 | "version": "v2.1.3", 3717 | "source": { 3718 | "type": "git", 3719 | "url": "https://github.com/symfony/service-contracts.git", 3720 | "reference": "58c7475e5457c5492c26cc740cc0ad7464be9442" 3721 | }, 3722 | "dist": { 3723 | "type": "zip", 3724 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/58c7475e5457c5492c26cc740cc0ad7464be9442", 3725 | "reference": "58c7475e5457c5492c26cc740cc0ad7464be9442", 3726 | "shasum": "" 3727 | }, 3728 | "require": { 3729 | "php": ">=7.2.5", 3730 | "psr/container": "^1.0" 3731 | }, 3732 | "suggest": { 3733 | "symfony/service-implementation": "" 3734 | }, 3735 | "type": "library", 3736 | "extra": { 3737 | "branch-alias": { 3738 | "dev-master": "2.1-dev" 3739 | }, 3740 | "thanks": { 3741 | "name": "symfony/contracts", 3742 | "url": "https://github.com/symfony/contracts" 3743 | } 3744 | }, 3745 | "autoload": { 3746 | "psr-4": { 3747 | "Symfony\\Contracts\\Service\\": "" 3748 | } 3749 | }, 3750 | "notification-url": "https://packagist.org/downloads/", 3751 | "license": [ 3752 | "MIT" 3753 | ], 3754 | "authors": [ 3755 | { 3756 | "name": "Nicolas Grekas", 3757 | "email": "p@tchwork.com" 3758 | }, 3759 | { 3760 | "name": "Symfony Community", 3761 | "homepage": "https://symfony.com/contributors" 3762 | } 3763 | ], 3764 | "description": "Generic abstractions related to writing services", 3765 | "homepage": "https://symfony.com", 3766 | "keywords": [ 3767 | "abstractions", 3768 | "contracts", 3769 | "decoupling", 3770 | "interfaces", 3771 | "interoperability", 3772 | "standards" 3773 | ], 3774 | "time": "2020-07-06T13:23:11+00:00" 3775 | }, 3776 | { 3777 | "name": "symfony/yaml", 3778 | "version": "v5.1.3", 3779 | "source": { 3780 | "type": "git", 3781 | "url": "https://github.com/symfony/yaml.git", 3782 | "reference": "ea342353a3ef4f453809acc4ebc55382231d4d23" 3783 | }, 3784 | "dist": { 3785 | "type": "zip", 3786 | "url": "https://api.github.com/repos/symfony/yaml/zipball/ea342353a3ef4f453809acc4ebc55382231d4d23", 3787 | "reference": "ea342353a3ef4f453809acc4ebc55382231d4d23", 3788 | "shasum": "" 3789 | }, 3790 | "require": { 3791 | "php": ">=7.2.5", 3792 | "symfony/deprecation-contracts": "^2.1", 3793 | "symfony/polyfill-ctype": "~1.8" 3794 | }, 3795 | "conflict": { 3796 | "symfony/console": "<4.4" 3797 | }, 3798 | "require-dev": { 3799 | "symfony/console": "^4.4|^5.0" 3800 | }, 3801 | "suggest": { 3802 | "symfony/console": "For validating YAML files using the lint command" 3803 | }, 3804 | "bin": [ 3805 | "Resources/bin/yaml-lint" 3806 | ], 3807 | "type": "library", 3808 | "extra": { 3809 | "branch-alias": { 3810 | "dev-master": "5.1-dev" 3811 | } 3812 | }, 3813 | "autoload": { 3814 | "psr-4": { 3815 | "Symfony\\Component\\Yaml\\": "" 3816 | }, 3817 | "exclude-from-classmap": [ 3818 | "/Tests/" 3819 | ] 3820 | }, 3821 | "notification-url": "https://packagist.org/downloads/", 3822 | "license": [ 3823 | "MIT" 3824 | ], 3825 | "authors": [ 3826 | { 3827 | "name": "Fabien Potencier", 3828 | "email": "fabien@symfony.com" 3829 | }, 3830 | { 3831 | "name": "Symfony Community", 3832 | "homepage": "https://symfony.com/contributors" 3833 | } 3834 | ], 3835 | "description": "Symfony Yaml Component", 3836 | "homepage": "https://symfony.com", 3837 | "time": "2020-05-20T17:43:50+00:00" 3838 | }, 3839 | { 3840 | "name": "thecodingmachine/safe", 3841 | "version": "v1.1.3", 3842 | "source": { 3843 | "type": "git", 3844 | "url": "https://github.com/thecodingmachine/safe.git", 3845 | "reference": "9f277171e296a3c8629c04ac93ec95ff0f208ccb" 3846 | }, 3847 | "dist": { 3848 | "type": "zip", 3849 | "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/9f277171e296a3c8629c04ac93ec95ff0f208ccb", 3850 | "reference": "9f277171e296a3c8629c04ac93ec95ff0f208ccb", 3851 | "shasum": "" 3852 | }, 3853 | "require": { 3854 | "php": ">=7.2" 3855 | }, 3856 | "require-dev": { 3857 | "phpstan/phpstan": "^0.12", 3858 | "squizlabs/php_codesniffer": "^3.2", 3859 | "thecodingmachine/phpstan-strict-rules": "^0.12" 3860 | }, 3861 | "type": "library", 3862 | "extra": { 3863 | "branch-alias": { 3864 | "dev-master": "0.1-dev" 3865 | } 3866 | }, 3867 | "autoload": { 3868 | "psr-4": { 3869 | "Safe\\": [ 3870 | "lib/", 3871 | "generated/" 3872 | ] 3873 | }, 3874 | "files": [ 3875 | "generated/apache.php", 3876 | "generated/apc.php", 3877 | "generated/apcu.php", 3878 | "generated/array.php", 3879 | "generated/bzip2.php", 3880 | "generated/classobj.php", 3881 | "generated/com.php", 3882 | "generated/cubrid.php", 3883 | "generated/curl.php", 3884 | "generated/datetime.php", 3885 | "generated/dir.php", 3886 | "generated/eio.php", 3887 | "generated/errorfunc.php", 3888 | "generated/exec.php", 3889 | "generated/fileinfo.php", 3890 | "generated/filesystem.php", 3891 | "generated/filter.php", 3892 | "generated/fpm.php", 3893 | "generated/ftp.php", 3894 | "generated/funchand.php", 3895 | "generated/gmp.php", 3896 | "generated/gnupg.php", 3897 | "generated/hash.php", 3898 | "generated/ibase.php", 3899 | "generated/ibmDb2.php", 3900 | "generated/iconv.php", 3901 | "generated/image.php", 3902 | "generated/imap.php", 3903 | "generated/info.php", 3904 | "generated/ingres-ii.php", 3905 | "generated/inotify.php", 3906 | "generated/json.php", 3907 | "generated/ldap.php", 3908 | "generated/libevent.php", 3909 | "generated/libxml.php", 3910 | "generated/lzf.php", 3911 | "generated/mailparse.php", 3912 | "generated/mbstring.php", 3913 | "generated/misc.php", 3914 | "generated/msql.php", 3915 | "generated/mssql.php", 3916 | "generated/mysql.php", 3917 | "generated/mysqli.php", 3918 | "generated/mysqlndMs.php", 3919 | "generated/mysqlndQc.php", 3920 | "generated/network.php", 3921 | "generated/oci8.php", 3922 | "generated/opcache.php", 3923 | "generated/openssl.php", 3924 | "generated/outcontrol.php", 3925 | "generated/password.php", 3926 | "generated/pcntl.php", 3927 | "generated/pcre.php", 3928 | "generated/pdf.php", 3929 | "generated/pgsql.php", 3930 | "generated/posix.php", 3931 | "generated/ps.php", 3932 | "generated/pspell.php", 3933 | "generated/readline.php", 3934 | "generated/rpminfo.php", 3935 | "generated/rrd.php", 3936 | "generated/sem.php", 3937 | "generated/session.php", 3938 | "generated/shmop.php", 3939 | "generated/simplexml.php", 3940 | "generated/sockets.php", 3941 | "generated/sodium.php", 3942 | "generated/solr.php", 3943 | "generated/spl.php", 3944 | "generated/sqlsrv.php", 3945 | "generated/ssdeep.php", 3946 | "generated/ssh2.php", 3947 | "generated/stats.php", 3948 | "generated/stream.php", 3949 | "generated/strings.php", 3950 | "generated/swoole.php", 3951 | "generated/uodbc.php", 3952 | "generated/uopz.php", 3953 | "generated/url.php", 3954 | "generated/var.php", 3955 | "generated/xdiff.php", 3956 | "generated/xml.php", 3957 | "generated/xmlrpc.php", 3958 | "generated/yaml.php", 3959 | "generated/yaz.php", 3960 | "generated/zip.php", 3961 | "generated/zlib.php", 3962 | "lib/special_cases.php" 3963 | ] 3964 | }, 3965 | "notification-url": "https://packagist.org/downloads/", 3966 | "license": [ 3967 | "MIT" 3968 | ], 3969 | "description": "PHP core functions that throw exceptions instead of returning FALSE on error", 3970 | "time": "2020-07-10T09:34:29+00:00" 3971 | }, 3972 | { 3973 | "name": "theseer/tokenizer", 3974 | "version": "1.2.0", 3975 | "source": { 3976 | "type": "git", 3977 | "url": "https://github.com/theseer/tokenizer.git", 3978 | "reference": "75a63c33a8577608444246075ea0af0d052e452a" 3979 | }, 3980 | "dist": { 3981 | "type": "zip", 3982 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", 3983 | "reference": "75a63c33a8577608444246075ea0af0d052e452a", 3984 | "shasum": "" 3985 | }, 3986 | "require": { 3987 | "ext-dom": "*", 3988 | "ext-tokenizer": "*", 3989 | "ext-xmlwriter": "*", 3990 | "php": "^7.2 || ^8.0" 3991 | }, 3992 | "type": "library", 3993 | "autoload": { 3994 | "classmap": [ 3995 | "src/" 3996 | ] 3997 | }, 3998 | "notification-url": "https://packagist.org/downloads/", 3999 | "license": [ 4000 | "BSD-3-Clause" 4001 | ], 4002 | "authors": [ 4003 | { 4004 | "name": "Arne Blankerts", 4005 | "email": "arne@blankerts.de", 4006 | "role": "Developer" 4007 | } 4008 | ], 4009 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 4010 | "time": "2020-07-12T23:59:07+00:00" 4011 | }, 4012 | { 4013 | "name": "webmozart/assert", 4014 | "version": "1.8.0", 4015 | "source": { 4016 | "type": "git", 4017 | "url": "https://github.com/webmozart/assert.git", 4018 | "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" 4019 | }, 4020 | "dist": { 4021 | "type": "zip", 4022 | "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", 4023 | "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6", 4024 | "shasum": "" 4025 | }, 4026 | "require": { 4027 | "php": "^5.3.3 || ^7.0", 4028 | "symfony/polyfill-ctype": "^1.8" 4029 | }, 4030 | "conflict": { 4031 | "vimeo/psalm": "<3.9.1" 4032 | }, 4033 | "require-dev": { 4034 | "phpunit/phpunit": "^4.8.36 || ^7.5.13" 4035 | }, 4036 | "type": "library", 4037 | "autoload": { 4038 | "psr-4": { 4039 | "Webmozart\\Assert\\": "src/" 4040 | } 4041 | }, 4042 | "notification-url": "https://packagist.org/downloads/", 4043 | "license": [ 4044 | "MIT" 4045 | ], 4046 | "authors": [ 4047 | { 4048 | "name": "Bernhard Schussek", 4049 | "email": "bschussek@gmail.com" 4050 | } 4051 | ], 4052 | "description": "Assertions to validate method input/output with nice error messages.", 4053 | "keywords": [ 4054 | "assert", 4055 | "check", 4056 | "validate" 4057 | ], 4058 | "time": "2020-04-18T12:12:48+00:00" 4059 | }, 4060 | { 4061 | "name": "webmozart/path-util", 4062 | "version": "2.3.0", 4063 | "source": { 4064 | "type": "git", 4065 | "url": "https://github.com/webmozart/path-util.git", 4066 | "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" 4067 | }, 4068 | "dist": { 4069 | "type": "zip", 4070 | "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", 4071 | "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", 4072 | "shasum": "" 4073 | }, 4074 | "require": { 4075 | "php": ">=5.3.3", 4076 | "webmozart/assert": "~1.0" 4077 | }, 4078 | "require-dev": { 4079 | "phpunit/phpunit": "^4.6", 4080 | "sebastian/version": "^1.0.1" 4081 | }, 4082 | "type": "library", 4083 | "extra": { 4084 | "branch-alias": { 4085 | "dev-master": "2.3-dev" 4086 | } 4087 | }, 4088 | "autoload": { 4089 | "psr-4": { 4090 | "Webmozart\\PathUtil\\": "src/" 4091 | } 4092 | }, 4093 | "notification-url": "https://packagist.org/downloads/", 4094 | "license": [ 4095 | "MIT" 4096 | ], 4097 | "authors": [ 4098 | { 4099 | "name": "Bernhard Schussek", 4100 | "email": "bschussek@gmail.com" 4101 | } 4102 | ], 4103 | "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", 4104 | "time": "2015-12-17T08:42:14+00:00" 4105 | }, 4106 | { 4107 | "name": "wp-coding-standards/wpcs", 4108 | "version": "1.2.1", 4109 | "source": { 4110 | "type": "git", 4111 | "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", 4112 | "reference": "f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c" 4113 | }, 4114 | "dist": { 4115 | "type": "zip", 4116 | "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c", 4117 | "reference": "f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c", 4118 | "shasum": "" 4119 | }, 4120 | "require": { 4121 | "php": ">=5.3", 4122 | "squizlabs/php_codesniffer": "^2.9.0 || ^3.0.2" 4123 | }, 4124 | "require-dev": { 4125 | "phpcompatibility/php-compatibility": "^9.0" 4126 | }, 4127 | "suggest": { 4128 | "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically." 4129 | }, 4130 | "type": "phpcodesniffer-standard", 4131 | "notification-url": "https://packagist.org/downloads/", 4132 | "license": [ 4133 | "MIT" 4134 | ], 4135 | "authors": [ 4136 | { 4137 | "name": "Contributors", 4138 | "homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors" 4139 | } 4140 | ], 4141 | "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions", 4142 | "keywords": [ 4143 | "phpcs", 4144 | "standards", 4145 | "wordpress" 4146 | ], 4147 | "time": "2018-12-18T09:43:51+00:00" 4148 | }, 4149 | { 4150 | "name": "yoast/yoastcs", 4151 | "version": "1.0", 4152 | "source": { 4153 | "type": "git", 4154 | "url": "https://github.com/Yoast/yoastcs.git", 4155 | "reference": "3b3498c1b057746003eefca90c10080cd606a29e" 4156 | }, 4157 | "dist": { 4158 | "type": "zip", 4159 | "url": "https://api.github.com/repos/Yoast/yoastcs/zipball/3b3498c1b057746003eefca90c10080cd606a29e", 4160 | "reference": "3b3498c1b057746003eefca90c10080cd606a29e", 4161 | "shasum": "" 4162 | }, 4163 | "require": { 4164 | "php": ">=5.4", 4165 | "phpcompatibility/phpcompatibility-wp": "^1.0.0", 4166 | "phpmd/phpmd": "^2.2.3", 4167 | "squizlabs/php_codesniffer": "^3.3.1", 4168 | "wp-coding-standards/wpcs": "^1.0.0" 4169 | }, 4170 | "require-dev": { 4171 | "phpcompatibility/php-compatibility": "^8.2.0", 4172 | "roave/security-advisories": "dev-master" 4173 | }, 4174 | "suggest": { 4175 | "dealerdirect/phpcodesniffer-composer-installer": "This Composer plugin will sort out the PHPCS 'installed_paths' automatically." 4176 | }, 4177 | "type": "phpcodesniffer-standard", 4178 | "notification-url": "https://packagist.org/downloads/", 4179 | "license": [ 4180 | "MIT" 4181 | ], 4182 | "authors": [ 4183 | { 4184 | "name": "Team Yoast", 4185 | "email": "support@yoast.com", 4186 | "homepage": "https://yoast.com" 4187 | } 4188 | ], 4189 | "description": "PHP_CodeSniffer rules for Yoast projects", 4190 | "keywords": [ 4191 | "phpcs", 4192 | "standards", 4193 | "wordpress", 4194 | "yoast" 4195 | ], 4196 | "time": "2018-08-24T09:04:56+00:00" 4197 | } 4198 | ], 4199 | "aliases": [], 4200 | "minimum-stability": "stable", 4201 | "stability-flags": [], 4202 | "prefer-stable": false, 4203 | "prefer-lowest": false, 4204 | "platform": { 4205 | "php": ">= 7.4" 4206 | }, 4207 | "platform-dev": [] 4208 | } 4209 | -------------------------------------------------------------------------------- /example.php: -------------------------------------------------------------------------------- 1 | sign = $sign; 25 | $this->exponent = $exponent; 26 | $this->mantissa = $mantissa; 27 | } 28 | 29 | public function getSign(): string 30 | { 31 | return $this->sign; 32 | } 33 | 34 | public function getExponent(): string 35 | { 36 | return $this->exponent; 37 | } 38 | 39 | public function getMantissa(): string 40 | { 41 | return $this->mantissa; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/FloatHex/FloatInfo.php: -------------------------------------------------------------------------------- 1 | sign = $sign; 25 | $this->exponent = $exponent; 26 | $this->mantissa = $mantissa; 27 | } 28 | 29 | public function getSign(): string 30 | { 31 | return $this->sign; 32 | } 33 | 34 | public function getExponent(): string 35 | { 36 | return $this->exponent; 37 | } 38 | 39 | public function getMantissa(): string 40 | { 41 | return $this->mantissa; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/functions.php: -------------------------------------------------------------------------------- 1 | = 8) { 136 | $sign = '1'; 137 | } 138 | 139 | $exponentString = substr($float64, 0, 3); 140 | $exponentValue = hexdec($exponentString) & 0x7ff; 141 | $exponent = sprintf("%b", $exponentValue); 142 | $exponent = str_pad($exponent, 11, '0', STR_PAD_LEFT); 143 | 144 | $mantissa = substr($float64, 2); 145 | $mantissa = hexdec($mantissa) & 0xfffffffffffff; 146 | $mantissa = sprintf("%b", $mantissa); 147 | $mantissa = str_pad($mantissa, 52, '0', STR_PAD_LEFT); 148 | 149 | return new FloatInfo( 150 | $sign, 151 | $exponent, 152 | $mantissa, 153 | ); 154 | } 155 | 156 | /** 157 | * Convert a floating point number to a Float32Info object, 158 | * which contains string representations of the float's sign, 159 | * exponent and mantissa 160 | * 161 | * @param float $number 162 | * @return Float32Info 163 | */ 164 | function float_info_32(float $number): Float32Info 165 | { 166 | $float32 = floathex32($number); 167 | $chars = str_split($float32); 168 | 169 | // 3 bits from this 170 | $byte1 = hexdec($chars[0]); 171 | // 4 bits from this 172 | $byte2 = hexdec($chars[1]); 173 | 174 | // 1 bit from this 175 | $byte3 = hexdec($chars[2]); 176 | 177 | $sign = '0'; 178 | 179 | if ($byte1 >= 8) { 180 | $sign = '1'; 181 | } 182 | $exponent3Bits = ($byte1 & 0x7); 183 | $exponent4Bits = $byte2; 184 | $exponent1Bit = ($byte3 & 0x8) >> 3; 185 | $exponent = ($exponent3Bits << 5) | ($exponent4Bits << 1) | $exponent1Bit; 186 | 187 | $exponent = sprintf("%b", $exponent); 188 | $exponent = str_pad($exponent, 8, '0', STR_PAD_LEFT); 189 | 190 | $mantissa = substr($float32, 2, 6); 191 | $mantissa = hexdec($mantissa) & 0x7fffff; 192 | $mantissa = sprintf("%b", $mantissa); 193 | $mantissa = str_pad($mantissa, 23, '0', STR_PAD_LEFT); 194 | 195 | return new Float32Info( 196 | $sign, 197 | $exponent, 198 | $mantissa, 199 | ); 200 | } 201 | 202 | 203 | function compare_strings(string $string1, string $string2) 204 | { 205 | $result = ''; 206 | 207 | $letters1 = str_split($string1); 208 | $letters2 = str_split($string2); 209 | for ($i = 0; $i < count($letters1) && $i < count($letters2); $i += 1) { 210 | if ($letters1[$i] === $letters2[$i]) { 211 | $result .= '-'; 212 | } 213 | else { 214 | $result .= 'x'; 215 | } 216 | } 217 | return $result; 218 | }; 219 | 220 | /** 221 | * Produce a debug string that shows the Sign, Exponent and Mantissa for 222 | * two floating point numbers, using 64bit precision 223 | * 224 | * 225 | * @param float $value1 226 | * @param float $value2 227 | * @return string 228 | * 229 | * Example result 230 | * ┌──────┬─────────────┬──────────────────────────────────────────────────────┐ 231 | * │ Sign │ Exponent │ Mantissa │ 232 | * │ 0 │ 01111111101 │ 0011001100110011001100110011001100110011001100110011 │ 233 | * │ 0 │ 01111111101 │ 0011001100110011001100110011001100110011001100110100 │ 234 | * │ - │ ----------- │ -------------------------------------------------xxx │ 235 | * └──────┴─────────────┴──────────────────────────────────────────────────────┘ 236 | * 237 | */ 238 | function float_compare(float $value1, float $value2): string 239 | { 240 | $float_info_1 = float_info($value1); 241 | $float_info_2 = float_info($value2); 242 | 243 | //Sign bit: 1 bit 244 | //Exponent: 11 bits 245 | //Significand precision: 53 bits (52 explicitly stored) 246 | 247 | $output = "┌──────┬─────────────┬──────────────────────────────────────────────────────┐\n"; 248 | $output .= "│ Sign │ Exponent │ Mantissa │\n"; 249 | 250 | $format_string = "│ %s │ %s │ %s │\n"; 251 | 252 | $compareSign = compare_strings($float_info_1->getSign(), $float_info_2->getSign()); 253 | $compareExponent = compare_strings($float_info_1->getExponent(), $float_info_2->getExponent()); 254 | $compareMantissa = compare_strings($float_info_1->getMantissa(), $float_info_2->getMantissa()); 255 | 256 | $output .= sprintf($format_string, $float_info_1->getSign(), $float_info_1->getExponent(), $float_info_1->getMantissa()); 257 | $output .= sprintf($format_string, $float_info_2->getSign(), $float_info_2->getExponent(), $float_info_2->getMantissa()); 258 | $output .= sprintf($format_string, $compareSign, $compareExponent, $compareMantissa); 259 | 260 | $output .= "└──────┴─────────────┴──────────────────────────────────────────────────────┘\n"; 261 | 262 | return $output; 263 | } 264 | 265 | 266 | /** 267 | * Produce a debug string that shows the Sign, Exponent and Mantissa for 268 | * two floating point numbers, using 32bit precision 269 | * 270 | * @param float $value1 271 | * @param float $value2 272 | * @return string 273 | * 274 | * Example result 275 | * ┌──────┬──────────┬─────────────────────────┐ 276 | * │ Sign │ Exponent │ Mantissa │ 277 | * │ 0 │ 01111101 │ 00110011001100110011010 │ 278 | * │ 0 │ 01111110 │ 00000000000000000000000 │ 279 | * │ - │ ------xx │ --xx--xx--xx--xx--xx-x- │ 280 | * └──────┴──────────┴─────────────────────────┘ 281 | * 282 | */ 283 | function float_compare_32(float $value1, float $value2): string 284 | { 285 | $float_info_1 = float_info_32($value1); 286 | $float_info_2 = float_info_32($value2); 287 | 288 | $compareSign = compare_strings($float_info_1->getSign(), $float_info_2->getSign()); 289 | $compareExponent = compare_strings($float_info_1->getExponent(), $float_info_2->getExponent()); 290 | $compareMantissa = compare_strings($float_info_1->getMantissa(), $float_info_2->getMantissa()); 291 | 292 | 293 | $output = "┌──────┬──────────┬─────────────────────────┐\n"; 294 | $output .= "│ Sign │ Exponent │ Mantissa │\n"; 295 | 296 | $format_string = "│ %s │ %s │ %s │\n"; 297 | 298 | $output .= sprintf($format_string, $float_info_1->getSign(), $float_info_1->getExponent(), $float_info_1->getMantissa()); 299 | $output .= sprintf($format_string, $float_info_2->getSign(), $float_info_2->getExponent(), $float_info_2->getMantissa()); 300 | $output .= sprintf($format_string, $compareSign, $compareExponent, $compareMantissa); 301 | 302 | $output .= "└──────┴──────────┴─────────────────────────┘\n"; 303 | 304 | return $output; 305 | } 306 | -------------------------------------------------------------------------------- /test/FloatHexTest/BaseTestCase.php: -------------------------------------------------------------------------------- 1 | startLevel = ob_get_level(); 22 | ob_start(); 23 | } 24 | 25 | public function teardown(): void 26 | { 27 | if ($this->startLevel === null) { 28 | $this->assertEquals(0, 1, "startLevel was not set, cannot complete teardown"); 29 | } 30 | $contents = ob_get_contents(); 31 | ob_end_clean(); 32 | 33 | $endLevel = ob_get_level(); 34 | $this->assertEquals($endLevel, $this->startLevel, "Mismatched ob_start/ob_end calls....somewhere"); 35 | $this->assertEquals( 36 | 0, 37 | strlen($contents), 38 | "Something has directly output to the screen: [".substr($contents, 0, 500)."]" 39 | ); 40 | } 41 | 42 | public function testPHPUnitApparentlyGetsConfused() 43 | { 44 | //Basically despite having: 45 | //*/BaseTestCase.php 46 | //in the phpunit.xml file it still thinks this file is a test class. 47 | //and then complains about it not having any tests. 48 | $this->assertTrue(true); 49 | } 50 | 51 | 52 | // 53 | // public function assertNoErrors(ValidationResult $validationResult) 54 | // { 55 | // $validationProblems = $validationResult->getValidationProblems(); 56 | // 57 | // $message = ''; 58 | // 59 | // if (count($validationProblems) !== 0) { 60 | // foreach ($validationProblems as $validationProblem) { 61 | // $message .= $validationProblem->toString(); 62 | // } 63 | // 64 | // $this->fail("Unexpected problems: " . $message); 65 | // } 66 | // } 67 | } 68 | -------------------------------------------------------------------------------- /test/FloatHexTest/FloatHexTest.php: -------------------------------------------------------------------------------- 1 | assertSame($result, $expectedHex); 59 | 60 | $floatInfo = float_info($input); 61 | 62 | $this->assertSame($signExpected, $floatInfo->getSign()); 63 | $this->assertSame($exponentExpected, $floatInfo->getExponent()); 64 | $this->assertSame($mantissaExpected, $floatInfo->getMantissa()); 65 | } 66 | 67 | 68 | /** 69 | * @dataProvider provides64BitTests 70 | * @covers ::FloatHex\hexfloat 71 | */ 72 | public function test_hexfloat($expectedNumber, $hexInput, $signExpected, $exponentExpected, $mantissaExpected) 73 | { 74 | $number = hexfloat($hexInput); 75 | 76 | $this->assertSame($expectedNumber, $number); 77 | } 78 | 79 | 80 | public function provides64BitBinFloatTests() 81 | { 82 | // taken from https://www.binaryconvert.com/result_double.html?decimal=049048048048048048048048049 83 | 84 | // float Bin expected, sign, exponent, Mantissa 85 | yield [ 86 | 0.0, 87 | '0000000000000000000000000000000000000000000000000000000000000000', 88 | '0', '00000000000', '0000000000000000000000000000000000000000000000000000' 89 | ]; 90 | yield [ 91 | 1.0, 92 | '0011111111110000000000000000000000000000000000000000000000000000', 93 | '0', '01111111111', '0000000000000000000000000000000000000000000000000000' 94 | ]; 95 | yield [ 96 | 2.0, 97 | '0100000000000000000000000000000000000000000000000000000000000000', 98 | '0', '10000000000', '0000000000000000000000000000000000000000000000000000' 99 | ]; 100 | 101 | yield [ 102 | 0.1, 103 | '0011111110111001100110011001100110011001100110011001100110011010', 104 | '0', '01111111011', '1001100110011001100110011001100110011001100110011010' 105 | ]; 106 | yield [ 107 | 0.25, 108 | '0011111111010000000000000000000000000000000000000000000000000000', 109 | '0', '01111111101', '0000000000000000000000000000000000000000000000000000' 110 | ]; 111 | yield [ 112 | 0.5, 113 | '0011111111100000000000000000000000000000000000000000000000000000', 114 | '0', '01111111110', '0000000000000000000000000000000000000000000000000000' 115 | ]; 116 | 117 | yield [ 118 | -1.0, 119 | '1011111111110000000000000000000000000000000000000000000000000000', 120 | '1', '01111111111', '0000000000000000000000000000000000000000000000000000' 121 | ]; 122 | 123 | yield [ 124 | -11111.0, 125 | '1100000011000101101100111000000000000000000000000000000000000000', 126 | '1', '10000001100', '0101101100111000000000000000000000000000000000000000']; 127 | yield [ 128 | 100000001.0, 129 | '0100000110010111110101111000010000000100000000000000000000000000', 130 | '0', '10000011001', '0111110101111000010000000100000000000000000000000000']; 131 | } 132 | 133 | 134 | /** 135 | * @dataProvider provides64BitBinFloatTests 136 | * @covers ::FloatHex\floathex 137 | */ 138 | public function test_floatbin($input, $expectedBin, $signExpected, $exponentExpected, $mantissaExpected) 139 | { 140 | $result = floatbin($input); 141 | 142 | $this->assertSame($result, $expectedBin); 143 | 144 | $floatInfo = float_info($input); 145 | 146 | $this->assertSame($signExpected, $floatInfo->getSign()); 147 | $this->assertSame($exponentExpected, $floatInfo->getExponent()); 148 | $this->assertSame($mantissaExpected, $floatInfo->getMantissa()); 149 | } 150 | 151 | /** 152 | * @dataProvider provides64BitBinFloatTests 153 | * @covers ::FloatHex\hexfloat 154 | */ 155 | public function test_binfloat($expectedNumber, $binInput, $signExpected, $exponentExpected, $mantissaExpected) 156 | { 157 | $number = binfloat($binInput); 158 | 159 | $this->assertSame($expectedNumber, $number); 160 | } 161 | 162 | /** 163 | * @dataProvider provides64BitTests 164 | * @covers ::FloatHex\float_info 165 | */ 166 | public function test_float_info($inputNumber, $hex, $signExpected, $exponentExpected, $mantissaExpected) 167 | { 168 | $floatInfo = float_info($inputNumber); 169 | 170 | $this->assertSame($signExpected, $floatInfo->getSign()); 171 | $this->assertSame($exponentExpected, $floatInfo->getExponent()); 172 | $this->assertSame($mantissaExpected, $floatInfo->getMantissa()); 173 | } 174 | 175 | 176 | public function provides32BitTests() 177 | { 178 | // taken from https://www.binaryconvert.com/result_double.html?decimal=049048048048048048048048049 179 | 180 | // float Hex expected, sign, exponent, Mantissa 181 | yield [0.0, '00000000', '0', '00000000', '00000000000000000000000']; 182 | yield [1.0, '3f800000', '0', '01111111', '00000000000000000000000']; 183 | yield [2.0, '40000000', '0', '10000000', '00000000000000000000000']; 184 | 185 | /*0.10000000149011612 186 | 0.100000001490116119384765625*/ 187 | 188 | yield [0.100000001490116119384765625, '3dcccccd', '0', '01111011', '10011001100110011001101' ]; 189 | yield [0.25, '3e800000', '0', '01111101', '00000000000000000000000' ]; 190 | yield [0.5, '3f000000', '0', '01111110', '00000000000000000000000']; 191 | 192 | yield [100000000.0, '4cbebc20', '0', '10011001', '01111101011110000100000']; 193 | // 100000001.0 is not representable 194 | yield [100000008.0, '4cbebc21', '0', '10011001', '01111101011110000100001']; 195 | yield [-1.0, 'bf800000', '1', '01111111', '00000000000000000000000']; 196 | } 197 | 198 | 199 | /** 200 | * @dataProvider provides32BitTests 201 | * @covers ::FloatHex\floathex32 202 | */ 203 | public function test_floathex32($input, $expectedHex, $signExpected, $exponentExpected, $mantissaExpected) 204 | { 205 | $result = floathex32($input); 206 | $this->assertSame($result, $expectedHex); 207 | $float32Info = float_info_32($input); 208 | 209 | $this->assertSame($signExpected, $float32Info->getSign()); 210 | $this->assertSame($exponentExpected, $float32Info->getExponent()); 211 | $this->assertSame($mantissaExpected, $float32Info->getMantissa()); 212 | } 213 | 214 | 215 | /** 216 | * @dataProvider provides32BitTests 217 | * @covers ::FloatHex\hexfloat32 218 | */ 219 | public function test_hexfloat32($expectedNumber, $inputHex, $signExpected, $exponentExpected, $mantissaExpected) 220 | { 221 | $result = hexfloat32($inputHex); 222 | $this->assertSame($expectedNumber, $result); 223 | } 224 | 225 | /** 226 | * @covers ::FloatHex\float_compare 227 | */ 228 | public function test_float_compare() 229 | { 230 | $contents = float_compare(0.1, 100000001); 231 | 232 | $info1 = float_info(0.1); 233 | $this->assertStringContainsString($info1->getExponent(), $contents); 234 | $this->assertStringContainsString($info1->getMantissa(), $contents); 235 | 236 | $info2 = float_info(100000001); 237 | $this->assertStringContainsString($info2->getExponent(), $contents); 238 | $this->assertStringContainsString($info2->getMantissa(), $contents); 239 | } 240 | 241 | 242 | /** 243 | * @dataProvider provides32BitTests 244 | * @covers ::FloatHex\float_info_32 245 | */ 246 | public function test_float_info_32($inputNumber, $hex, $signExpected, $exponentExpected, $mantissaExpected) 247 | { 248 | $floatInfo = float_info_32($inputNumber); 249 | 250 | $this->assertSame($signExpected, $floatInfo->getSign()); 251 | $this->assertSame($exponentExpected, $floatInfo->getExponent()); 252 | $this->assertSame($mantissaExpected, $floatInfo->getMantissa()); 253 | } 254 | 255 | 256 | /** 257 | * @covers ::FloatHex\float_compare_32 258 | * @covers ::FloatHex\compare_strings 259 | */ 260 | public function testCompare32() 261 | { 262 | $contents = float_compare_32(0.1, 100000001); 263 | 264 | $info1 = float_info_32(0.1); 265 | $this->assertStringContainsString($info1->getExponent(), $contents); 266 | $this->assertStringContainsString($info1->getMantissa(), $contents); 267 | 268 | $info2 = float_info_32(100000001); 269 | $this->assertStringContainsString($info2->getExponent(), $contents); 270 | $this->assertStringContainsString($info2->getMantissa(), $contents); 271 | } 272 | } 273 | -------------------------------------------------------------------------------- /test/codesniffer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Customised coding standard for code shipped in the library. 4 | 5 | 6 | *migrations* 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | *Functions.php 26 | 27 | 28 | 29 | *test_stub_functions.php 30 | functions.php 31 | 32 | 33 | 34 | 35 | 36 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /test/codesniffer_tests.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Customised coding standard for the testing code. 4 | 5 | 6 | *migrations* 7 | 8 | *test/phpunit_bootstrap.php 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | *test_stub_functions.php 36 | functions.php 37 | 38 | 39 | 40 | 41 | 42 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /test/phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | 11 | 12 | 13 | ../test/ 14 | 15 | 16 | 17 | 18 | 19 | ../src 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /test/phpunit_bootstrap.php: -------------------------------------------------------------------------------- 1 | '.*', // strings can be empty, so * 13 | // '%d' => '\d+', // numbers can't be empty so + 14 | // ]; 15 | // 16 | // $string = str_replace( 17 | // array_keys($replacements), 18 | // array_values($replacements), 19 | // $string 20 | // ); 21 | // 22 | // return '#' . $string . '#iu'; 23 | //} 24 | // 25 | 26 | --------------------------------------------------------------------------------