├── .github └── workflows │ └── workflow.yml ├── .gitignore ├── Makefile ├── README.md ├── bin └── php-package ├── composer.json ├── composer.lock ├── phpcs.xml ├── phpstan.neon ├── phpunit.xml ├── psysh.php ├── sonar-project.properties ├── src └── User.php └── tests └── UserTest.php /.github/workflows/workflow.yml: -------------------------------------------------------------------------------- 1 | # Name of workflow 2 | name: PHP CI 3 | 4 | # Trigger the workflow on push or pull request 5 | on: 6 | - push 7 | - pull_request 8 | 9 | jobs: 10 | build: 11 | 12 | # The type of machine to run the job on 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | # Check-out repository under GitHub workspace 17 | # https://github.com/actions/checkout 18 | - uses: actions/checkout@v4 19 | # Step's name 20 | - name: Setup PHP 21 | # Action gives to setup the PHP environment to test application 22 | # https://github.com/shivammathur/setup-php 23 | uses: shivammathur/setup-php@v2 24 | with: 25 | # Specify the PHP version 26 | php-version: '8.3' 27 | - name: Install 28 | # Install project 29 | run: make install 30 | - name: Run linter 31 | # Run Linter 32 | run: make lint 33 | 34 | # https://docs.sonarsource.com/sonarqube-cloud/enriching/test-coverage/php-test-coverage/ 35 | - name: Run tests 36 | run: make test-coverage 37 | 38 | - name: SonarQube Scan 39 | uses: SonarSource/sonarqube-scan-action@v5 40 | env: 41 | SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} 42 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | .idea 3 | .DS_Store 4 | .vscode 5 | logs 6 | *.swo 7 | *.swp 8 | *.cache 9 | build 10 | coverage.xml 11 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | install: 2 | composer install 3 | 4 | console: 5 | composer exec --verbose psysh 6 | 7 | lint: 8 | composer exec --verbose phpcs -- src tests 9 | composer exec --verbose phpstan 10 | 11 | lint-fix: 12 | composer exec --verbose phpcbf -- src tests 13 | 14 | test: 15 | composer exec --verbose phpunit tests 16 | 17 | test-coverage: 18 | XDEBUG_MODE=coverage composer exec --verbose phpunit tests -- --coverage-clover=build/logs/clover.xml 19 | 20 | test-coverage-text: 21 | XDEBUG_MODE=coverage composer exec --verbose phpunit tests -- --coverage-text 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # php-package 2 | 3 | [![Github Actions Status](https://github.com/hexlet-boilerplates/php-package/workflows/PHP%20CI/badge.svg)](https://github.com/hexlet-boilerplates/php-package/actions) 4 | [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=hexlet-boilerplates_php-package&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=hexlet-boilerplates_php-package) 5 | [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=hexlet-boilerplates_php-package&metric=bugs)](https://sonarcloud.io/summary/new_code?id=hexlet-boilerplates_php-package) 6 | [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=hexlet-boilerplates_php-package&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=hexlet-boilerplates_php-package) 7 | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=hexlet-boilerplates_php-package&metric=coverage)](https://sonarcloud.io/summary/new_code?id=hexlet-boilerplates_php-package) 8 | [![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=hexlet-boilerplates_php-package&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=hexlet-boilerplates_php-package) 9 | 10 | ## Prerequisites 11 | 12 | * Linux, Macos, WSL 13 | * PHP >=8.2 14 | * Xdebug 15 | * Make 16 | * Git 17 | 18 | ## Addons 19 | 20 | Use 21 | 22 | ## Setup 23 | 24 | Setup [SSH](https://docs.github.com/en/authentication/connecting-to-github-with-ssh) before clone: 25 | 26 | ```bash 27 | git clone git@github.com:hexlet-boilerplates/php-package.git 28 | cd php-package 29 | 30 | make install 31 | ``` 32 | 33 | ## Run linter 34 | 35 | ```sh 36 | make lint 37 | ``` 38 | 39 | See configs [php.xml](./phpcs.xml) and [phpstan.neon](./phpstan.neon) 40 | 41 | ## Run tests 42 | 43 | ```sh 44 | make test 45 | ``` 46 | 47 | ## Test Coverage 48 | 49 | * see `phpunit.xml` 50 | * See [sonarcloud documentation](https://docs.sonarsource.com/sonarqube-cloud/enriching/test-coverage/php-test-coverage/) 51 | * add `SONAR_TOKEN` to workflow as SECRETS ENV VARIABLE (for safety) 52 | 53 | [![Hexlet Ltd. logo](https://raw.githubusercontent.com/Hexlet/assets/master/images/hexlet_logo128.png)](https://hexlet.io/?utm_source=github&utm_medium=link&utm_campaign=php-package) 54 | 55 | This repository is created and maintained by the team and the community of Hexlet, an educational project. [Read more about Hexlet](https://hexlet.io/?utm_source=github&utm_medium=link&utm_campaign=php-package). 56 | 57 | 58 | See most active contributors on [hexlet-friends](https://friends.hexlet.io/). 59 | -------------------------------------------------------------------------------- /bin/php-package: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | 3 | =5.0.0" 28 | }, 29 | "require-dev": { 30 | "doctrine/dbal": "^4.0.0", 31 | "nesbot/carbon": "^2.71.0 || ^3.0.0", 32 | "phpunit/phpunit": "^10.3" 33 | }, 34 | "type": "library", 35 | "autoload": { 36 | "psr-4": { 37 | "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" 38 | } 39 | }, 40 | "notification-url": "https://packagist.org/downloads/", 41 | "license": [ 42 | "MIT" 43 | ], 44 | "authors": [ 45 | { 46 | "name": "KyleKatarn", 47 | "email": "kylekatarnls@gmail.com" 48 | } 49 | ], 50 | "description": "Types to use Carbon in Doctrine", 51 | "keywords": [ 52 | "carbon", 53 | "date", 54 | "datetime", 55 | "doctrine", 56 | "time" 57 | ], 58 | "support": { 59 | "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", 60 | "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0" 61 | }, 62 | "funding": [ 63 | { 64 | "url": "https://github.com/kylekatarnls", 65 | "type": "github" 66 | }, 67 | { 68 | "url": "https://opencollective.com/Carbon", 69 | "type": "open_collective" 70 | }, 71 | { 72 | "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", 73 | "type": "tidelift" 74 | } 75 | ], 76 | "time": "2024-02-09T16:56:22+00:00" 77 | }, 78 | { 79 | "name": "illuminate/collections", 80 | "version": "v12.7.2", 81 | "source": { 82 | "type": "git", 83 | "url": "https://github.com/illuminate/collections.git", 84 | "reference": "f1d8ae882c014673b1f7bedab6435989553776e3" 85 | }, 86 | "dist": { 87 | "type": "zip", 88 | "url": "https://api.github.com/repos/illuminate/collections/zipball/f1d8ae882c014673b1f7bedab6435989553776e3", 89 | "reference": "f1d8ae882c014673b1f7bedab6435989553776e3", 90 | "shasum": "" 91 | }, 92 | "require": { 93 | "illuminate/conditionable": "^12.0", 94 | "illuminate/contracts": "^12.0", 95 | "illuminate/macroable": "^12.0", 96 | "php": "^8.2" 97 | }, 98 | "suggest": { 99 | "symfony/var-dumper": "Required to use the dump method (^7.2)." 100 | }, 101 | "type": "library", 102 | "extra": { 103 | "branch-alias": { 104 | "dev-master": "12.x-dev" 105 | } 106 | }, 107 | "autoload": { 108 | "files": [ 109 | "functions.php", 110 | "helpers.php" 111 | ], 112 | "psr-4": { 113 | "Illuminate\\Support\\": "" 114 | } 115 | }, 116 | "notification-url": "https://packagist.org/downloads/", 117 | "license": [ 118 | "MIT" 119 | ], 120 | "authors": [ 121 | { 122 | "name": "Taylor Otwell", 123 | "email": "taylor@laravel.com" 124 | } 125 | ], 126 | "description": "The Illuminate Collections package.", 127 | "homepage": "https://laravel.com", 128 | "support": { 129 | "issues": "https://github.com/laravel/framework/issues", 130 | "source": "https://github.com/laravel/framework" 131 | }, 132 | "time": "2025-04-03T17:58:47+00:00" 133 | }, 134 | { 135 | "name": "illuminate/conditionable", 136 | "version": "v12.7.2", 137 | "source": { 138 | "type": "git", 139 | "url": "https://github.com/illuminate/conditionable.git", 140 | "reference": "251ef166c6ee46cc8a141403253f83fe7ee50507" 141 | }, 142 | "dist": { 143 | "type": "zip", 144 | "url": "https://api.github.com/repos/illuminate/conditionable/zipball/251ef166c6ee46cc8a141403253f83fe7ee50507", 145 | "reference": "251ef166c6ee46cc8a141403253f83fe7ee50507", 146 | "shasum": "" 147 | }, 148 | "require": { 149 | "php": "^8.2" 150 | }, 151 | "type": "library", 152 | "extra": { 153 | "branch-alias": { 154 | "dev-master": "12.x-dev" 155 | } 156 | }, 157 | "autoload": { 158 | "psr-4": { 159 | "Illuminate\\Support\\": "" 160 | } 161 | }, 162 | "notification-url": "https://packagist.org/downloads/", 163 | "license": [ 164 | "MIT" 165 | ], 166 | "authors": [ 167 | { 168 | "name": "Taylor Otwell", 169 | "email": "taylor@laravel.com" 170 | } 171 | ], 172 | "description": "The Illuminate Conditionable package.", 173 | "homepage": "https://laravel.com", 174 | "support": { 175 | "issues": "https://github.com/laravel/framework/issues", 176 | "source": "https://github.com/laravel/framework" 177 | }, 178 | "time": "2025-03-19T20:10:05+00:00" 179 | }, 180 | { 181 | "name": "illuminate/contracts", 182 | "version": "v12.7.2", 183 | "source": { 184 | "type": "git", 185 | "url": "https://github.com/illuminate/contracts.git", 186 | "reference": "bbaec083da240396f2186f4c3a9952da207f28a0" 187 | }, 188 | "dist": { 189 | "type": "zip", 190 | "url": "https://api.github.com/repos/illuminate/contracts/zipball/bbaec083da240396f2186f4c3a9952da207f28a0", 191 | "reference": "bbaec083da240396f2186f4c3a9952da207f28a0", 192 | "shasum": "" 193 | }, 194 | "require": { 195 | "php": "^8.2", 196 | "psr/container": "^1.1.1|^2.0.1", 197 | "psr/simple-cache": "^1.0|^2.0|^3.0" 198 | }, 199 | "type": "library", 200 | "extra": { 201 | "branch-alias": { 202 | "dev-master": "12.x-dev" 203 | } 204 | }, 205 | "autoload": { 206 | "psr-4": { 207 | "Illuminate\\Contracts\\": "" 208 | } 209 | }, 210 | "notification-url": "https://packagist.org/downloads/", 211 | "license": [ 212 | "MIT" 213 | ], 214 | "authors": [ 215 | { 216 | "name": "Taylor Otwell", 217 | "email": "taylor@laravel.com" 218 | } 219 | ], 220 | "description": "The Illuminate Contracts package.", 221 | "homepage": "https://laravel.com", 222 | "support": { 223 | "issues": "https://github.com/laravel/framework/issues", 224 | "source": "https://github.com/laravel/framework" 225 | }, 226 | "time": "2025-03-19T20:10:05+00:00" 227 | }, 228 | { 229 | "name": "illuminate/macroable", 230 | "version": "v12.7.2", 231 | "source": { 232 | "type": "git", 233 | "url": "https://github.com/illuminate/macroable.git", 234 | "reference": "e862e5648ee34004fa56046b746f490dfa86c613" 235 | }, 236 | "dist": { 237 | "type": "zip", 238 | "url": "https://api.github.com/repos/illuminate/macroable/zipball/e862e5648ee34004fa56046b746f490dfa86c613", 239 | "reference": "e862e5648ee34004fa56046b746f490dfa86c613", 240 | "shasum": "" 241 | }, 242 | "require": { 243 | "php": "^8.2" 244 | }, 245 | "type": "library", 246 | "extra": { 247 | "branch-alias": { 248 | "dev-master": "12.x-dev" 249 | } 250 | }, 251 | "autoload": { 252 | "psr-4": { 253 | "Illuminate\\Support\\": "" 254 | } 255 | }, 256 | "notification-url": "https://packagist.org/downloads/", 257 | "license": [ 258 | "MIT" 259 | ], 260 | "authors": [ 261 | { 262 | "name": "Taylor Otwell", 263 | "email": "taylor@laravel.com" 264 | } 265 | ], 266 | "description": "The Illuminate Macroable package.", 267 | "homepage": "https://laravel.com", 268 | "support": { 269 | "issues": "https://github.com/laravel/framework/issues", 270 | "source": "https://github.com/laravel/framework" 271 | }, 272 | "time": "2024-07-23T16:31:01+00:00" 273 | }, 274 | { 275 | "name": "nesbot/carbon", 276 | "version": "3.9.0", 277 | "source": { 278 | "type": "git", 279 | "url": "https://github.com/CarbonPHP/carbon.git", 280 | "reference": "6d16a8a015166fe54e22c042e0805c5363aef50d" 281 | }, 282 | "dist": { 283 | "type": "zip", 284 | "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/6d16a8a015166fe54e22c042e0805c5363aef50d", 285 | "reference": "6d16a8a015166fe54e22c042e0805c5363aef50d", 286 | "shasum": "" 287 | }, 288 | "require": { 289 | "carbonphp/carbon-doctrine-types": "<100.0", 290 | "ext-json": "*", 291 | "php": "^8.1", 292 | "psr/clock": "^1.0", 293 | "symfony/clock": "^6.3 || ^7.0", 294 | "symfony/polyfill-mbstring": "^1.0", 295 | "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0" 296 | }, 297 | "provide": { 298 | "psr/clock-implementation": "1.0" 299 | }, 300 | "require-dev": { 301 | "doctrine/dbal": "^3.6.3 || ^4.0", 302 | "doctrine/orm": "^2.15.2 || ^3.0", 303 | "friendsofphp/php-cs-fixer": "^3.57.2", 304 | "kylekatarnls/multi-tester": "^2.5.3", 305 | "ondrejmirtes/better-reflection": "^6.25.0.4", 306 | "phpmd/phpmd": "^2.15.0", 307 | "phpstan/extension-installer": "^1.3.1", 308 | "phpstan/phpstan": "^1.11.2", 309 | "phpunit/phpunit": "^10.5.20", 310 | "squizlabs/php_codesniffer": "^3.9.0" 311 | }, 312 | "bin": [ 313 | "bin/carbon" 314 | ], 315 | "type": "library", 316 | "extra": { 317 | "laravel": { 318 | "providers": [ 319 | "Carbon\\Laravel\\ServiceProvider" 320 | ] 321 | }, 322 | "phpstan": { 323 | "includes": [ 324 | "extension.neon" 325 | ] 326 | }, 327 | "branch-alias": { 328 | "dev-2.x": "2.x-dev", 329 | "dev-master": "3.x-dev" 330 | } 331 | }, 332 | "autoload": { 333 | "psr-4": { 334 | "Carbon\\": "src/Carbon/" 335 | } 336 | }, 337 | "notification-url": "https://packagist.org/downloads/", 338 | "license": [ 339 | "MIT" 340 | ], 341 | "authors": [ 342 | { 343 | "name": "Brian Nesbitt", 344 | "email": "brian@nesbot.com", 345 | "homepage": "https://markido.com" 346 | }, 347 | { 348 | "name": "kylekatarnls", 349 | "homepage": "https://github.com/kylekatarnls" 350 | } 351 | ], 352 | "description": "An API extension for DateTime that supports 281 different languages.", 353 | "homepage": "https://carbon.nesbot.com", 354 | "keywords": [ 355 | "date", 356 | "datetime", 357 | "time" 358 | ], 359 | "support": { 360 | "docs": "https://carbon.nesbot.com/docs", 361 | "issues": "https://github.com/CarbonPHP/carbon/issues", 362 | "source": "https://github.com/CarbonPHP/carbon" 363 | }, 364 | "funding": [ 365 | { 366 | "url": "https://github.com/sponsors/kylekatarnls", 367 | "type": "github" 368 | }, 369 | { 370 | "url": "https://opencollective.com/Carbon#sponsor", 371 | "type": "opencollective" 372 | }, 373 | { 374 | "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", 375 | "type": "tidelift" 376 | } 377 | ], 378 | "time": "2025-03-27T12:57:33+00:00" 379 | }, 380 | { 381 | "name": "psr/clock", 382 | "version": "1.0.0", 383 | "source": { 384 | "type": "git", 385 | "url": "https://github.com/php-fig/clock.git", 386 | "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" 387 | }, 388 | "dist": { 389 | "type": "zip", 390 | "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", 391 | "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", 392 | "shasum": "" 393 | }, 394 | "require": { 395 | "php": "^7.0 || ^8.0" 396 | }, 397 | "type": "library", 398 | "autoload": { 399 | "psr-4": { 400 | "Psr\\Clock\\": "src/" 401 | } 402 | }, 403 | "notification-url": "https://packagist.org/downloads/", 404 | "license": [ 405 | "MIT" 406 | ], 407 | "authors": [ 408 | { 409 | "name": "PHP-FIG", 410 | "homepage": "https://www.php-fig.org/" 411 | } 412 | ], 413 | "description": "Common interface for reading the clock.", 414 | "homepage": "https://github.com/php-fig/clock", 415 | "keywords": [ 416 | "clock", 417 | "now", 418 | "psr", 419 | "psr-20", 420 | "time" 421 | ], 422 | "support": { 423 | "issues": "https://github.com/php-fig/clock/issues", 424 | "source": "https://github.com/php-fig/clock/tree/1.0.0" 425 | }, 426 | "time": "2022-11-25T14:36:26+00:00" 427 | }, 428 | { 429 | "name": "psr/container", 430 | "version": "2.0.2", 431 | "source": { 432 | "type": "git", 433 | "url": "https://github.com/php-fig/container.git", 434 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" 435 | }, 436 | "dist": { 437 | "type": "zip", 438 | "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", 439 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", 440 | "shasum": "" 441 | }, 442 | "require": { 443 | "php": ">=7.4.0" 444 | }, 445 | "type": "library", 446 | "extra": { 447 | "branch-alias": { 448 | "dev-master": "2.0.x-dev" 449 | } 450 | }, 451 | "autoload": { 452 | "psr-4": { 453 | "Psr\\Container\\": "src/" 454 | } 455 | }, 456 | "notification-url": "https://packagist.org/downloads/", 457 | "license": [ 458 | "MIT" 459 | ], 460 | "authors": [ 461 | { 462 | "name": "PHP-FIG", 463 | "homepage": "https://www.php-fig.org/" 464 | } 465 | ], 466 | "description": "Common Container Interface (PHP FIG PSR-11)", 467 | "homepage": "https://github.com/php-fig/container", 468 | "keywords": [ 469 | "PSR-11", 470 | "container", 471 | "container-interface", 472 | "container-interop", 473 | "psr" 474 | ], 475 | "support": { 476 | "issues": "https://github.com/php-fig/container/issues", 477 | "source": "https://github.com/php-fig/container/tree/2.0.2" 478 | }, 479 | "time": "2021-11-05T16:47:00+00:00" 480 | }, 481 | { 482 | "name": "psr/simple-cache", 483 | "version": "3.0.0", 484 | "source": { 485 | "type": "git", 486 | "url": "https://github.com/php-fig/simple-cache.git", 487 | "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" 488 | }, 489 | "dist": { 490 | "type": "zip", 491 | "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", 492 | "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", 493 | "shasum": "" 494 | }, 495 | "require": { 496 | "php": ">=8.0.0" 497 | }, 498 | "type": "library", 499 | "extra": { 500 | "branch-alias": { 501 | "dev-master": "3.0.x-dev" 502 | } 503 | }, 504 | "autoload": { 505 | "psr-4": { 506 | "Psr\\SimpleCache\\": "src/" 507 | } 508 | }, 509 | "notification-url": "https://packagist.org/downloads/", 510 | "license": [ 511 | "MIT" 512 | ], 513 | "authors": [ 514 | { 515 | "name": "PHP-FIG", 516 | "homepage": "https://www.php-fig.org/" 517 | } 518 | ], 519 | "description": "Common interfaces for simple caching", 520 | "keywords": [ 521 | "cache", 522 | "caching", 523 | "psr", 524 | "psr-16", 525 | "simple-cache" 526 | ], 527 | "support": { 528 | "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" 529 | }, 530 | "time": "2021-10-29T13:26:27+00:00" 531 | }, 532 | { 533 | "name": "symfony/clock", 534 | "version": "v7.2.0", 535 | "source": { 536 | "type": "git", 537 | "url": "https://github.com/symfony/clock.git", 538 | "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24" 539 | }, 540 | "dist": { 541 | "type": "zip", 542 | "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", 543 | "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", 544 | "shasum": "" 545 | }, 546 | "require": { 547 | "php": ">=8.2", 548 | "psr/clock": "^1.0", 549 | "symfony/polyfill-php83": "^1.28" 550 | }, 551 | "provide": { 552 | "psr/clock-implementation": "1.0" 553 | }, 554 | "type": "library", 555 | "autoload": { 556 | "files": [ 557 | "Resources/now.php" 558 | ], 559 | "psr-4": { 560 | "Symfony\\Component\\Clock\\": "" 561 | }, 562 | "exclude-from-classmap": [ 563 | "/Tests/" 564 | ] 565 | }, 566 | "notification-url": "https://packagist.org/downloads/", 567 | "license": [ 568 | "MIT" 569 | ], 570 | "authors": [ 571 | { 572 | "name": "Nicolas Grekas", 573 | "email": "p@tchwork.com" 574 | }, 575 | { 576 | "name": "Symfony Community", 577 | "homepage": "https://symfony.com/contributors" 578 | } 579 | ], 580 | "description": "Decouples applications from the system clock", 581 | "homepage": "https://symfony.com", 582 | "keywords": [ 583 | "clock", 584 | "psr20", 585 | "time" 586 | ], 587 | "support": { 588 | "source": "https://github.com/symfony/clock/tree/v7.2.0" 589 | }, 590 | "funding": [ 591 | { 592 | "url": "https://symfony.com/sponsor", 593 | "type": "custom" 594 | }, 595 | { 596 | "url": "https://github.com/fabpot", 597 | "type": "github" 598 | }, 599 | { 600 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 601 | "type": "tidelift" 602 | } 603 | ], 604 | "time": "2024-09-25T14:21:43+00:00" 605 | }, 606 | { 607 | "name": "symfony/deprecation-contracts", 608 | "version": "v3.5.1", 609 | "source": { 610 | "type": "git", 611 | "url": "https://github.com/symfony/deprecation-contracts.git", 612 | "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" 613 | }, 614 | "dist": { 615 | "type": "zip", 616 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", 617 | "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", 618 | "shasum": "" 619 | }, 620 | "require": { 621 | "php": ">=8.1" 622 | }, 623 | "type": "library", 624 | "extra": { 625 | "thanks": { 626 | "url": "https://github.com/symfony/contracts", 627 | "name": "symfony/contracts" 628 | }, 629 | "branch-alias": { 630 | "dev-main": "3.5-dev" 631 | } 632 | }, 633 | "autoload": { 634 | "files": [ 635 | "function.php" 636 | ] 637 | }, 638 | "notification-url": "https://packagist.org/downloads/", 639 | "license": [ 640 | "MIT" 641 | ], 642 | "authors": [ 643 | { 644 | "name": "Nicolas Grekas", 645 | "email": "p@tchwork.com" 646 | }, 647 | { 648 | "name": "Symfony Community", 649 | "homepage": "https://symfony.com/contributors" 650 | } 651 | ], 652 | "description": "A generic function and convention to trigger deprecation notices", 653 | "homepage": "https://symfony.com", 654 | "support": { 655 | "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" 656 | }, 657 | "funding": [ 658 | { 659 | "url": "https://symfony.com/sponsor", 660 | "type": "custom" 661 | }, 662 | { 663 | "url": "https://github.com/fabpot", 664 | "type": "github" 665 | }, 666 | { 667 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 668 | "type": "tidelift" 669 | } 670 | ], 671 | "time": "2024-09-25T14:20:29+00:00" 672 | }, 673 | { 674 | "name": "symfony/polyfill-ctype", 675 | "version": "v1.31.0", 676 | "source": { 677 | "type": "git", 678 | "url": "https://github.com/symfony/polyfill-ctype.git", 679 | "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" 680 | }, 681 | "dist": { 682 | "type": "zip", 683 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", 684 | "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", 685 | "shasum": "" 686 | }, 687 | "require": { 688 | "php": ">=7.2" 689 | }, 690 | "provide": { 691 | "ext-ctype": "*" 692 | }, 693 | "suggest": { 694 | "ext-ctype": "For best performance" 695 | }, 696 | "type": "library", 697 | "extra": { 698 | "thanks": { 699 | "url": "https://github.com/symfony/polyfill", 700 | "name": "symfony/polyfill" 701 | } 702 | }, 703 | "autoload": { 704 | "files": [ 705 | "bootstrap.php" 706 | ], 707 | "psr-4": { 708 | "Symfony\\Polyfill\\Ctype\\": "" 709 | } 710 | }, 711 | "notification-url": "https://packagist.org/downloads/", 712 | "license": [ 713 | "MIT" 714 | ], 715 | "authors": [ 716 | { 717 | "name": "Gert de Pagter", 718 | "email": "BackEndTea@gmail.com" 719 | }, 720 | { 721 | "name": "Symfony Community", 722 | "homepage": "https://symfony.com/contributors" 723 | } 724 | ], 725 | "description": "Symfony polyfill for ctype functions", 726 | "homepage": "https://symfony.com", 727 | "keywords": [ 728 | "compatibility", 729 | "ctype", 730 | "polyfill", 731 | "portable" 732 | ], 733 | "support": { 734 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" 735 | }, 736 | "funding": [ 737 | { 738 | "url": "https://symfony.com/sponsor", 739 | "type": "custom" 740 | }, 741 | { 742 | "url": "https://github.com/fabpot", 743 | "type": "github" 744 | }, 745 | { 746 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 747 | "type": "tidelift" 748 | } 749 | ], 750 | "time": "2024-09-09T11:45:10+00:00" 751 | }, 752 | { 753 | "name": "symfony/polyfill-intl-grapheme", 754 | "version": "v1.31.0", 755 | "source": { 756 | "type": "git", 757 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git", 758 | "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" 759 | }, 760 | "dist": { 761 | "type": "zip", 762 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", 763 | "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", 764 | "shasum": "" 765 | }, 766 | "require": { 767 | "php": ">=7.2" 768 | }, 769 | "suggest": { 770 | "ext-intl": "For best performance" 771 | }, 772 | "type": "library", 773 | "extra": { 774 | "thanks": { 775 | "url": "https://github.com/symfony/polyfill", 776 | "name": "symfony/polyfill" 777 | } 778 | }, 779 | "autoload": { 780 | "files": [ 781 | "bootstrap.php" 782 | ], 783 | "psr-4": { 784 | "Symfony\\Polyfill\\Intl\\Grapheme\\": "" 785 | } 786 | }, 787 | "notification-url": "https://packagist.org/downloads/", 788 | "license": [ 789 | "MIT" 790 | ], 791 | "authors": [ 792 | { 793 | "name": "Nicolas Grekas", 794 | "email": "p@tchwork.com" 795 | }, 796 | { 797 | "name": "Symfony Community", 798 | "homepage": "https://symfony.com/contributors" 799 | } 800 | ], 801 | "description": "Symfony polyfill for intl's grapheme_* functions", 802 | "homepage": "https://symfony.com", 803 | "keywords": [ 804 | "compatibility", 805 | "grapheme", 806 | "intl", 807 | "polyfill", 808 | "portable", 809 | "shim" 810 | ], 811 | "support": { 812 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" 813 | }, 814 | "funding": [ 815 | { 816 | "url": "https://symfony.com/sponsor", 817 | "type": "custom" 818 | }, 819 | { 820 | "url": "https://github.com/fabpot", 821 | "type": "github" 822 | }, 823 | { 824 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 825 | "type": "tidelift" 826 | } 827 | ], 828 | "time": "2024-09-09T11:45:10+00:00" 829 | }, 830 | { 831 | "name": "symfony/polyfill-intl-normalizer", 832 | "version": "v1.31.0", 833 | "source": { 834 | "type": "git", 835 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git", 836 | "reference": "3833d7255cc303546435cb650316bff708a1c75c" 837 | }, 838 | "dist": { 839 | "type": "zip", 840 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", 841 | "reference": "3833d7255cc303546435cb650316bff708a1c75c", 842 | "shasum": "" 843 | }, 844 | "require": { 845 | "php": ">=7.2" 846 | }, 847 | "suggest": { 848 | "ext-intl": "For best performance" 849 | }, 850 | "type": "library", 851 | "extra": { 852 | "thanks": { 853 | "url": "https://github.com/symfony/polyfill", 854 | "name": "symfony/polyfill" 855 | } 856 | }, 857 | "autoload": { 858 | "files": [ 859 | "bootstrap.php" 860 | ], 861 | "psr-4": { 862 | "Symfony\\Polyfill\\Intl\\Normalizer\\": "" 863 | }, 864 | "classmap": [ 865 | "Resources/stubs" 866 | ] 867 | }, 868 | "notification-url": "https://packagist.org/downloads/", 869 | "license": [ 870 | "MIT" 871 | ], 872 | "authors": [ 873 | { 874 | "name": "Nicolas Grekas", 875 | "email": "p@tchwork.com" 876 | }, 877 | { 878 | "name": "Symfony Community", 879 | "homepage": "https://symfony.com/contributors" 880 | } 881 | ], 882 | "description": "Symfony polyfill for intl's Normalizer class and related functions", 883 | "homepage": "https://symfony.com", 884 | "keywords": [ 885 | "compatibility", 886 | "intl", 887 | "normalizer", 888 | "polyfill", 889 | "portable", 890 | "shim" 891 | ], 892 | "support": { 893 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" 894 | }, 895 | "funding": [ 896 | { 897 | "url": "https://symfony.com/sponsor", 898 | "type": "custom" 899 | }, 900 | { 901 | "url": "https://github.com/fabpot", 902 | "type": "github" 903 | }, 904 | { 905 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 906 | "type": "tidelift" 907 | } 908 | ], 909 | "time": "2024-09-09T11:45:10+00:00" 910 | }, 911 | { 912 | "name": "symfony/polyfill-mbstring", 913 | "version": "v1.31.0", 914 | "source": { 915 | "type": "git", 916 | "url": "https://github.com/symfony/polyfill-mbstring.git", 917 | "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" 918 | }, 919 | "dist": { 920 | "type": "zip", 921 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", 922 | "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", 923 | "shasum": "" 924 | }, 925 | "require": { 926 | "php": ">=7.2" 927 | }, 928 | "provide": { 929 | "ext-mbstring": "*" 930 | }, 931 | "suggest": { 932 | "ext-mbstring": "For best performance" 933 | }, 934 | "type": "library", 935 | "extra": { 936 | "thanks": { 937 | "url": "https://github.com/symfony/polyfill", 938 | "name": "symfony/polyfill" 939 | } 940 | }, 941 | "autoload": { 942 | "files": [ 943 | "bootstrap.php" 944 | ], 945 | "psr-4": { 946 | "Symfony\\Polyfill\\Mbstring\\": "" 947 | } 948 | }, 949 | "notification-url": "https://packagist.org/downloads/", 950 | "license": [ 951 | "MIT" 952 | ], 953 | "authors": [ 954 | { 955 | "name": "Nicolas Grekas", 956 | "email": "p@tchwork.com" 957 | }, 958 | { 959 | "name": "Symfony Community", 960 | "homepage": "https://symfony.com/contributors" 961 | } 962 | ], 963 | "description": "Symfony polyfill for the Mbstring extension", 964 | "homepage": "https://symfony.com", 965 | "keywords": [ 966 | "compatibility", 967 | "mbstring", 968 | "polyfill", 969 | "portable", 970 | "shim" 971 | ], 972 | "support": { 973 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" 974 | }, 975 | "funding": [ 976 | { 977 | "url": "https://symfony.com/sponsor", 978 | "type": "custom" 979 | }, 980 | { 981 | "url": "https://github.com/fabpot", 982 | "type": "github" 983 | }, 984 | { 985 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 986 | "type": "tidelift" 987 | } 988 | ], 989 | "time": "2024-09-09T11:45:10+00:00" 990 | }, 991 | { 992 | "name": "symfony/polyfill-php83", 993 | "version": "v1.31.0", 994 | "source": { 995 | "type": "git", 996 | "url": "https://github.com/symfony/polyfill-php83.git", 997 | "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" 998 | }, 999 | "dist": { 1000 | "type": "zip", 1001 | "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", 1002 | "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", 1003 | "shasum": "" 1004 | }, 1005 | "require": { 1006 | "php": ">=7.2" 1007 | }, 1008 | "type": "library", 1009 | "extra": { 1010 | "thanks": { 1011 | "url": "https://github.com/symfony/polyfill", 1012 | "name": "symfony/polyfill" 1013 | } 1014 | }, 1015 | "autoload": { 1016 | "files": [ 1017 | "bootstrap.php" 1018 | ], 1019 | "psr-4": { 1020 | "Symfony\\Polyfill\\Php83\\": "" 1021 | }, 1022 | "classmap": [ 1023 | "Resources/stubs" 1024 | ] 1025 | }, 1026 | "notification-url": "https://packagist.org/downloads/", 1027 | "license": [ 1028 | "MIT" 1029 | ], 1030 | "authors": [ 1031 | { 1032 | "name": "Nicolas Grekas", 1033 | "email": "p@tchwork.com" 1034 | }, 1035 | { 1036 | "name": "Symfony Community", 1037 | "homepage": "https://symfony.com/contributors" 1038 | } 1039 | ], 1040 | "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", 1041 | "homepage": "https://symfony.com", 1042 | "keywords": [ 1043 | "compatibility", 1044 | "polyfill", 1045 | "portable", 1046 | "shim" 1047 | ], 1048 | "support": { 1049 | "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" 1050 | }, 1051 | "funding": [ 1052 | { 1053 | "url": "https://symfony.com/sponsor", 1054 | "type": "custom" 1055 | }, 1056 | { 1057 | "url": "https://github.com/fabpot", 1058 | "type": "github" 1059 | }, 1060 | { 1061 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1062 | "type": "tidelift" 1063 | } 1064 | ], 1065 | "time": "2024-09-09T11:45:10+00:00" 1066 | }, 1067 | { 1068 | "name": "symfony/string", 1069 | "version": "v7.2.0", 1070 | "source": { 1071 | "type": "git", 1072 | "url": "https://github.com/symfony/string.git", 1073 | "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82" 1074 | }, 1075 | "dist": { 1076 | "type": "zip", 1077 | "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82", 1078 | "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82", 1079 | "shasum": "" 1080 | }, 1081 | "require": { 1082 | "php": ">=8.2", 1083 | "symfony/polyfill-ctype": "~1.8", 1084 | "symfony/polyfill-intl-grapheme": "~1.0", 1085 | "symfony/polyfill-intl-normalizer": "~1.0", 1086 | "symfony/polyfill-mbstring": "~1.0" 1087 | }, 1088 | "conflict": { 1089 | "symfony/translation-contracts": "<2.5" 1090 | }, 1091 | "require-dev": { 1092 | "symfony/emoji": "^7.1", 1093 | "symfony/error-handler": "^6.4|^7.0", 1094 | "symfony/http-client": "^6.4|^7.0", 1095 | "symfony/intl": "^6.4|^7.0", 1096 | "symfony/translation-contracts": "^2.5|^3.0", 1097 | "symfony/var-exporter": "^6.4|^7.0" 1098 | }, 1099 | "type": "library", 1100 | "autoload": { 1101 | "files": [ 1102 | "Resources/functions.php" 1103 | ], 1104 | "psr-4": { 1105 | "Symfony\\Component\\String\\": "" 1106 | }, 1107 | "exclude-from-classmap": [ 1108 | "/Tests/" 1109 | ] 1110 | }, 1111 | "notification-url": "https://packagist.org/downloads/", 1112 | "license": [ 1113 | "MIT" 1114 | ], 1115 | "authors": [ 1116 | { 1117 | "name": "Nicolas Grekas", 1118 | "email": "p@tchwork.com" 1119 | }, 1120 | { 1121 | "name": "Symfony Community", 1122 | "homepage": "https://symfony.com/contributors" 1123 | } 1124 | ], 1125 | "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", 1126 | "homepage": "https://symfony.com", 1127 | "keywords": [ 1128 | "grapheme", 1129 | "i18n", 1130 | "string", 1131 | "unicode", 1132 | "utf-8", 1133 | "utf8" 1134 | ], 1135 | "support": { 1136 | "source": "https://github.com/symfony/string/tree/v7.2.0" 1137 | }, 1138 | "funding": [ 1139 | { 1140 | "url": "https://symfony.com/sponsor", 1141 | "type": "custom" 1142 | }, 1143 | { 1144 | "url": "https://github.com/fabpot", 1145 | "type": "github" 1146 | }, 1147 | { 1148 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1149 | "type": "tidelift" 1150 | } 1151 | ], 1152 | "time": "2024-11-13T13:31:26+00:00" 1153 | }, 1154 | { 1155 | "name": "symfony/translation", 1156 | "version": "v7.2.4", 1157 | "source": { 1158 | "type": "git", 1159 | "url": "https://github.com/symfony/translation.git", 1160 | "reference": "283856e6981286cc0d800b53bd5703e8e363f05a" 1161 | }, 1162 | "dist": { 1163 | "type": "zip", 1164 | "url": "https://api.github.com/repos/symfony/translation/zipball/283856e6981286cc0d800b53bd5703e8e363f05a", 1165 | "reference": "283856e6981286cc0d800b53bd5703e8e363f05a", 1166 | "shasum": "" 1167 | }, 1168 | "require": { 1169 | "php": ">=8.2", 1170 | "symfony/deprecation-contracts": "^2.5|^3", 1171 | "symfony/polyfill-mbstring": "~1.0", 1172 | "symfony/translation-contracts": "^2.5|^3.0" 1173 | }, 1174 | "conflict": { 1175 | "symfony/config": "<6.4", 1176 | "symfony/console": "<6.4", 1177 | "symfony/dependency-injection": "<6.4", 1178 | "symfony/http-client-contracts": "<2.5", 1179 | "symfony/http-kernel": "<6.4", 1180 | "symfony/service-contracts": "<2.5", 1181 | "symfony/twig-bundle": "<6.4", 1182 | "symfony/yaml": "<6.4" 1183 | }, 1184 | "provide": { 1185 | "symfony/translation-implementation": "2.3|3.0" 1186 | }, 1187 | "require-dev": { 1188 | "nikic/php-parser": "^4.18|^5.0", 1189 | "psr/log": "^1|^2|^3", 1190 | "symfony/config": "^6.4|^7.0", 1191 | "symfony/console": "^6.4|^7.0", 1192 | "symfony/dependency-injection": "^6.4|^7.0", 1193 | "symfony/finder": "^6.4|^7.0", 1194 | "symfony/http-client-contracts": "^2.5|^3.0", 1195 | "symfony/http-kernel": "^6.4|^7.0", 1196 | "symfony/intl": "^6.4|^7.0", 1197 | "symfony/polyfill-intl-icu": "^1.21", 1198 | "symfony/routing": "^6.4|^7.0", 1199 | "symfony/service-contracts": "^2.5|^3", 1200 | "symfony/yaml": "^6.4|^7.0" 1201 | }, 1202 | "type": "library", 1203 | "autoload": { 1204 | "files": [ 1205 | "Resources/functions.php" 1206 | ], 1207 | "psr-4": { 1208 | "Symfony\\Component\\Translation\\": "" 1209 | }, 1210 | "exclude-from-classmap": [ 1211 | "/Tests/" 1212 | ] 1213 | }, 1214 | "notification-url": "https://packagist.org/downloads/", 1215 | "license": [ 1216 | "MIT" 1217 | ], 1218 | "authors": [ 1219 | { 1220 | "name": "Fabien Potencier", 1221 | "email": "fabien@symfony.com" 1222 | }, 1223 | { 1224 | "name": "Symfony Community", 1225 | "homepage": "https://symfony.com/contributors" 1226 | } 1227 | ], 1228 | "description": "Provides tools to internationalize your application", 1229 | "homepage": "https://symfony.com", 1230 | "support": { 1231 | "source": "https://github.com/symfony/translation/tree/v7.2.4" 1232 | }, 1233 | "funding": [ 1234 | { 1235 | "url": "https://symfony.com/sponsor", 1236 | "type": "custom" 1237 | }, 1238 | { 1239 | "url": "https://github.com/fabpot", 1240 | "type": "github" 1241 | }, 1242 | { 1243 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1244 | "type": "tidelift" 1245 | } 1246 | ], 1247 | "time": "2025-02-13T10:27:23+00:00" 1248 | }, 1249 | { 1250 | "name": "symfony/translation-contracts", 1251 | "version": "v3.5.1", 1252 | "source": { 1253 | "type": "git", 1254 | "url": "https://github.com/symfony/translation-contracts.git", 1255 | "reference": "4667ff3bd513750603a09c8dedbea942487fb07c" 1256 | }, 1257 | "dist": { 1258 | "type": "zip", 1259 | "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c", 1260 | "reference": "4667ff3bd513750603a09c8dedbea942487fb07c", 1261 | "shasum": "" 1262 | }, 1263 | "require": { 1264 | "php": ">=8.1" 1265 | }, 1266 | "type": "library", 1267 | "extra": { 1268 | "thanks": { 1269 | "url": "https://github.com/symfony/contracts", 1270 | "name": "symfony/contracts" 1271 | }, 1272 | "branch-alias": { 1273 | "dev-main": "3.5-dev" 1274 | } 1275 | }, 1276 | "autoload": { 1277 | "psr-4": { 1278 | "Symfony\\Contracts\\Translation\\": "" 1279 | }, 1280 | "exclude-from-classmap": [ 1281 | "/Test/" 1282 | ] 1283 | }, 1284 | "notification-url": "https://packagist.org/downloads/", 1285 | "license": [ 1286 | "MIT" 1287 | ], 1288 | "authors": [ 1289 | { 1290 | "name": "Nicolas Grekas", 1291 | "email": "p@tchwork.com" 1292 | }, 1293 | { 1294 | "name": "Symfony Community", 1295 | "homepage": "https://symfony.com/contributors" 1296 | } 1297 | ], 1298 | "description": "Generic abstractions related to translation", 1299 | "homepage": "https://symfony.com", 1300 | "keywords": [ 1301 | "abstractions", 1302 | "contracts", 1303 | "decoupling", 1304 | "interfaces", 1305 | "interoperability", 1306 | "standards" 1307 | ], 1308 | "support": { 1309 | "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1" 1310 | }, 1311 | "funding": [ 1312 | { 1313 | "url": "https://symfony.com/sponsor", 1314 | "type": "custom" 1315 | }, 1316 | { 1317 | "url": "https://github.com/fabpot", 1318 | "type": "github" 1319 | }, 1320 | { 1321 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1322 | "type": "tidelift" 1323 | } 1324 | ], 1325 | "time": "2024-09-25T14:20:29+00:00" 1326 | } 1327 | ], 1328 | "packages-dev": [ 1329 | { 1330 | "name": "myclabs/deep-copy", 1331 | "version": "1.13.0", 1332 | "source": { 1333 | "type": "git", 1334 | "url": "https://github.com/myclabs/DeepCopy.git", 1335 | "reference": "024473a478be9df5fdaca2c793f2232fe788e414" 1336 | }, 1337 | "dist": { 1338 | "type": "zip", 1339 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414", 1340 | "reference": "024473a478be9df5fdaca2c793f2232fe788e414", 1341 | "shasum": "" 1342 | }, 1343 | "require": { 1344 | "php": "^7.1 || ^8.0" 1345 | }, 1346 | "conflict": { 1347 | "doctrine/collections": "<1.6.8", 1348 | "doctrine/common": "<2.13.3 || >=3 <3.2.2" 1349 | }, 1350 | "require-dev": { 1351 | "doctrine/collections": "^1.6.8", 1352 | "doctrine/common": "^2.13.3 || ^3.2.2", 1353 | "phpspec/prophecy": "^1.10", 1354 | "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" 1355 | }, 1356 | "type": "library", 1357 | "autoload": { 1358 | "files": [ 1359 | "src/DeepCopy/deep_copy.php" 1360 | ], 1361 | "psr-4": { 1362 | "DeepCopy\\": "src/DeepCopy/" 1363 | } 1364 | }, 1365 | "notification-url": "https://packagist.org/downloads/", 1366 | "license": [ 1367 | "MIT" 1368 | ], 1369 | "description": "Create deep copies (clones) of your objects", 1370 | "keywords": [ 1371 | "clone", 1372 | "copy", 1373 | "duplicate", 1374 | "object", 1375 | "object graph" 1376 | ], 1377 | "support": { 1378 | "issues": "https://github.com/myclabs/DeepCopy/issues", 1379 | "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0" 1380 | }, 1381 | "funding": [ 1382 | { 1383 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", 1384 | "type": "tidelift" 1385 | } 1386 | ], 1387 | "time": "2025-02-12T12:17:51+00:00" 1388 | }, 1389 | { 1390 | "name": "nikic/php-parser", 1391 | "version": "v5.4.0", 1392 | "source": { 1393 | "type": "git", 1394 | "url": "https://github.com/nikic/PHP-Parser.git", 1395 | "reference": "447a020a1f875a434d62f2a401f53b82a396e494" 1396 | }, 1397 | "dist": { 1398 | "type": "zip", 1399 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", 1400 | "reference": "447a020a1f875a434d62f2a401f53b82a396e494", 1401 | "shasum": "" 1402 | }, 1403 | "require": { 1404 | "ext-ctype": "*", 1405 | "ext-json": "*", 1406 | "ext-tokenizer": "*", 1407 | "php": ">=7.4" 1408 | }, 1409 | "require-dev": { 1410 | "ircmaxell/php-yacc": "^0.0.7", 1411 | "phpunit/phpunit": "^9.0" 1412 | }, 1413 | "bin": [ 1414 | "bin/php-parse" 1415 | ], 1416 | "type": "library", 1417 | "extra": { 1418 | "branch-alias": { 1419 | "dev-master": "5.0-dev" 1420 | } 1421 | }, 1422 | "autoload": { 1423 | "psr-4": { 1424 | "PhpParser\\": "lib/PhpParser" 1425 | } 1426 | }, 1427 | "notification-url": "https://packagist.org/downloads/", 1428 | "license": [ 1429 | "BSD-3-Clause" 1430 | ], 1431 | "authors": [ 1432 | { 1433 | "name": "Nikita Popov" 1434 | } 1435 | ], 1436 | "description": "A PHP parser written in PHP", 1437 | "keywords": [ 1438 | "parser", 1439 | "php" 1440 | ], 1441 | "support": { 1442 | "issues": "https://github.com/nikic/PHP-Parser/issues", 1443 | "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" 1444 | }, 1445 | "time": "2024-12-30T11:07:19+00:00" 1446 | }, 1447 | { 1448 | "name": "phar-io/manifest", 1449 | "version": "2.0.4", 1450 | "source": { 1451 | "type": "git", 1452 | "url": "https://github.com/phar-io/manifest.git", 1453 | "reference": "54750ef60c58e43759730615a392c31c80e23176" 1454 | }, 1455 | "dist": { 1456 | "type": "zip", 1457 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", 1458 | "reference": "54750ef60c58e43759730615a392c31c80e23176", 1459 | "shasum": "" 1460 | }, 1461 | "require": { 1462 | "ext-dom": "*", 1463 | "ext-libxml": "*", 1464 | "ext-phar": "*", 1465 | "ext-xmlwriter": "*", 1466 | "phar-io/version": "^3.0.1", 1467 | "php": "^7.2 || ^8.0" 1468 | }, 1469 | "type": "library", 1470 | "extra": { 1471 | "branch-alias": { 1472 | "dev-master": "2.0.x-dev" 1473 | } 1474 | }, 1475 | "autoload": { 1476 | "classmap": [ 1477 | "src/" 1478 | ] 1479 | }, 1480 | "notification-url": "https://packagist.org/downloads/", 1481 | "license": [ 1482 | "BSD-3-Clause" 1483 | ], 1484 | "authors": [ 1485 | { 1486 | "name": "Arne Blankerts", 1487 | "email": "arne@blankerts.de", 1488 | "role": "Developer" 1489 | }, 1490 | { 1491 | "name": "Sebastian Heuer", 1492 | "email": "sebastian@phpeople.de", 1493 | "role": "Developer" 1494 | }, 1495 | { 1496 | "name": "Sebastian Bergmann", 1497 | "email": "sebastian@phpunit.de", 1498 | "role": "Developer" 1499 | } 1500 | ], 1501 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 1502 | "support": { 1503 | "issues": "https://github.com/phar-io/manifest/issues", 1504 | "source": "https://github.com/phar-io/manifest/tree/2.0.4" 1505 | }, 1506 | "funding": [ 1507 | { 1508 | "url": "https://github.com/theseer", 1509 | "type": "github" 1510 | } 1511 | ], 1512 | "time": "2024-03-03T12:33:53+00:00" 1513 | }, 1514 | { 1515 | "name": "phar-io/version", 1516 | "version": "3.2.1", 1517 | "source": { 1518 | "type": "git", 1519 | "url": "https://github.com/phar-io/version.git", 1520 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" 1521 | }, 1522 | "dist": { 1523 | "type": "zip", 1524 | "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", 1525 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", 1526 | "shasum": "" 1527 | }, 1528 | "require": { 1529 | "php": "^7.2 || ^8.0" 1530 | }, 1531 | "type": "library", 1532 | "autoload": { 1533 | "classmap": [ 1534 | "src/" 1535 | ] 1536 | }, 1537 | "notification-url": "https://packagist.org/downloads/", 1538 | "license": [ 1539 | "BSD-3-Clause" 1540 | ], 1541 | "authors": [ 1542 | { 1543 | "name": "Arne Blankerts", 1544 | "email": "arne@blankerts.de", 1545 | "role": "Developer" 1546 | }, 1547 | { 1548 | "name": "Sebastian Heuer", 1549 | "email": "sebastian@phpeople.de", 1550 | "role": "Developer" 1551 | }, 1552 | { 1553 | "name": "Sebastian Bergmann", 1554 | "email": "sebastian@phpunit.de", 1555 | "role": "Developer" 1556 | } 1557 | ], 1558 | "description": "Library for handling version information and constraints", 1559 | "support": { 1560 | "issues": "https://github.com/phar-io/version/issues", 1561 | "source": "https://github.com/phar-io/version/tree/3.2.1" 1562 | }, 1563 | "time": "2022-02-21T01:04:05+00:00" 1564 | }, 1565 | { 1566 | "name": "phpstan/extension-installer", 1567 | "version": "1.4.3", 1568 | "source": { 1569 | "type": "git", 1570 | "url": "https://github.com/phpstan/extension-installer.git", 1571 | "reference": "85e90b3942d06b2326fba0403ec24fe912372936" 1572 | }, 1573 | "dist": { 1574 | "type": "zip", 1575 | "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/85e90b3942d06b2326fba0403ec24fe912372936", 1576 | "reference": "85e90b3942d06b2326fba0403ec24fe912372936", 1577 | "shasum": "" 1578 | }, 1579 | "require": { 1580 | "composer-plugin-api": "^2.0", 1581 | "php": "^7.2 || ^8.0", 1582 | "phpstan/phpstan": "^1.9.0 || ^2.0" 1583 | }, 1584 | "require-dev": { 1585 | "composer/composer": "^2.0", 1586 | "php-parallel-lint/php-parallel-lint": "^1.2.0", 1587 | "phpstan/phpstan-strict-rules": "^0.11 || ^0.12 || ^1.0" 1588 | }, 1589 | "type": "composer-plugin", 1590 | "extra": { 1591 | "class": "PHPStan\\ExtensionInstaller\\Plugin" 1592 | }, 1593 | "autoload": { 1594 | "psr-4": { 1595 | "PHPStan\\ExtensionInstaller\\": "src/" 1596 | } 1597 | }, 1598 | "notification-url": "https://packagist.org/downloads/", 1599 | "license": [ 1600 | "MIT" 1601 | ], 1602 | "description": "Composer plugin for automatic installation of PHPStan extensions", 1603 | "keywords": [ 1604 | "dev", 1605 | "static analysis" 1606 | ], 1607 | "support": { 1608 | "issues": "https://github.com/phpstan/extension-installer/issues", 1609 | "source": "https://github.com/phpstan/extension-installer/tree/1.4.3" 1610 | }, 1611 | "time": "2024-09-04T20:21:43+00:00" 1612 | }, 1613 | { 1614 | "name": "phpstan/phpstan", 1615 | "version": "2.1.12", 1616 | "source": { 1617 | "type": "git", 1618 | "url": "https://github.com/phpstan/phpstan.git", 1619 | "reference": "96dde49e967c0c22812bcfa7bda4ff82c09f3b0c" 1620 | }, 1621 | "dist": { 1622 | "type": "zip", 1623 | "url": "https://api.github.com/repos/phpstan/phpstan/zipball/96dde49e967c0c22812bcfa7bda4ff82c09f3b0c", 1624 | "reference": "96dde49e967c0c22812bcfa7bda4ff82c09f3b0c", 1625 | "shasum": "" 1626 | }, 1627 | "require": { 1628 | "php": "^7.4|^8.0" 1629 | }, 1630 | "conflict": { 1631 | "phpstan/phpstan-shim": "*" 1632 | }, 1633 | "bin": [ 1634 | "phpstan", 1635 | "phpstan.phar" 1636 | ], 1637 | "type": "library", 1638 | "autoload": { 1639 | "files": [ 1640 | "bootstrap.php" 1641 | ] 1642 | }, 1643 | "notification-url": "https://packagist.org/downloads/", 1644 | "license": [ 1645 | "MIT" 1646 | ], 1647 | "description": "PHPStan - PHP Static Analysis Tool", 1648 | "keywords": [ 1649 | "dev", 1650 | "static analysis" 1651 | ], 1652 | "support": { 1653 | "docs": "https://phpstan.org/user-guide/getting-started", 1654 | "forum": "https://github.com/phpstan/phpstan/discussions", 1655 | "issues": "https://github.com/phpstan/phpstan/issues", 1656 | "security": "https://github.com/phpstan/phpstan/security/policy", 1657 | "source": "https://github.com/phpstan/phpstan-src" 1658 | }, 1659 | "funding": [ 1660 | { 1661 | "url": "https://github.com/ondrejmirtes", 1662 | "type": "github" 1663 | }, 1664 | { 1665 | "url": "https://github.com/phpstan", 1666 | "type": "github" 1667 | } 1668 | ], 1669 | "time": "2025-04-16T13:19:18+00:00" 1670 | }, 1671 | { 1672 | "name": "phpstan/phpstan-phpunit", 1673 | "version": "2.0.6", 1674 | "source": { 1675 | "type": "git", 1676 | "url": "https://github.com/phpstan/phpstan-phpunit.git", 1677 | "reference": "6b92469f8a7995e626da3aa487099617b8dfa260" 1678 | }, 1679 | "dist": { 1680 | "type": "zip", 1681 | "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/6b92469f8a7995e626da3aa487099617b8dfa260", 1682 | "reference": "6b92469f8a7995e626da3aa487099617b8dfa260", 1683 | "shasum": "" 1684 | }, 1685 | "require": { 1686 | "php": "^7.4 || ^8.0", 1687 | "phpstan/phpstan": "^2.0.4" 1688 | }, 1689 | "conflict": { 1690 | "phpunit/phpunit": "<7.0" 1691 | }, 1692 | "require-dev": { 1693 | "nikic/php-parser": "^5", 1694 | "php-parallel-lint/php-parallel-lint": "^1.2", 1695 | "phpstan/phpstan-deprecation-rules": "^2.0", 1696 | "phpstan/phpstan-strict-rules": "^2.0", 1697 | "phpunit/phpunit": "^9.6" 1698 | }, 1699 | "type": "phpstan-extension", 1700 | "extra": { 1701 | "phpstan": { 1702 | "includes": [ 1703 | "extension.neon", 1704 | "rules.neon" 1705 | ] 1706 | } 1707 | }, 1708 | "autoload": { 1709 | "psr-4": { 1710 | "PHPStan\\": "src/" 1711 | } 1712 | }, 1713 | "notification-url": "https://packagist.org/downloads/", 1714 | "license": [ 1715 | "MIT" 1716 | ], 1717 | "description": "PHPUnit extensions and rules for PHPStan", 1718 | "support": { 1719 | "issues": "https://github.com/phpstan/phpstan-phpunit/issues", 1720 | "source": "https://github.com/phpstan/phpstan-phpunit/tree/2.0.6" 1721 | }, 1722 | "time": "2025-03-26T12:47:06+00:00" 1723 | }, 1724 | { 1725 | "name": "phpunit/php-code-coverage", 1726 | "version": "11.0.9", 1727 | "source": { 1728 | "type": "git", 1729 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 1730 | "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7" 1731 | }, 1732 | "dist": { 1733 | "type": "zip", 1734 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/14d63fbcca18457e49c6f8bebaa91a87e8e188d7", 1735 | "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7", 1736 | "shasum": "" 1737 | }, 1738 | "require": { 1739 | "ext-dom": "*", 1740 | "ext-libxml": "*", 1741 | "ext-xmlwriter": "*", 1742 | "nikic/php-parser": "^5.4.0", 1743 | "php": ">=8.2", 1744 | "phpunit/php-file-iterator": "^5.1.0", 1745 | "phpunit/php-text-template": "^4.0.1", 1746 | "sebastian/code-unit-reverse-lookup": "^4.0.1", 1747 | "sebastian/complexity": "^4.0.1", 1748 | "sebastian/environment": "^7.2.0", 1749 | "sebastian/lines-of-code": "^3.0.1", 1750 | "sebastian/version": "^5.0.2", 1751 | "theseer/tokenizer": "^1.2.3" 1752 | }, 1753 | "require-dev": { 1754 | "phpunit/phpunit": "^11.5.2" 1755 | }, 1756 | "suggest": { 1757 | "ext-pcov": "PHP extension that provides line coverage", 1758 | "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" 1759 | }, 1760 | "type": "library", 1761 | "extra": { 1762 | "branch-alias": { 1763 | "dev-main": "11.0.x-dev" 1764 | } 1765 | }, 1766 | "autoload": { 1767 | "classmap": [ 1768 | "src/" 1769 | ] 1770 | }, 1771 | "notification-url": "https://packagist.org/downloads/", 1772 | "license": [ 1773 | "BSD-3-Clause" 1774 | ], 1775 | "authors": [ 1776 | { 1777 | "name": "Sebastian Bergmann", 1778 | "email": "sebastian@phpunit.de", 1779 | "role": "lead" 1780 | } 1781 | ], 1782 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 1783 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 1784 | "keywords": [ 1785 | "coverage", 1786 | "testing", 1787 | "xunit" 1788 | ], 1789 | "support": { 1790 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", 1791 | "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", 1792 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.9" 1793 | }, 1794 | "funding": [ 1795 | { 1796 | "url": "https://github.com/sebastianbergmann", 1797 | "type": "github" 1798 | } 1799 | ], 1800 | "time": "2025-02-25T13:26:39+00:00" 1801 | }, 1802 | { 1803 | "name": "phpunit/php-file-iterator", 1804 | "version": "5.1.0", 1805 | "source": { 1806 | "type": "git", 1807 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 1808 | "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" 1809 | }, 1810 | "dist": { 1811 | "type": "zip", 1812 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", 1813 | "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", 1814 | "shasum": "" 1815 | }, 1816 | "require": { 1817 | "php": ">=8.2" 1818 | }, 1819 | "require-dev": { 1820 | "phpunit/phpunit": "^11.0" 1821 | }, 1822 | "type": "library", 1823 | "extra": { 1824 | "branch-alias": { 1825 | "dev-main": "5.0-dev" 1826 | } 1827 | }, 1828 | "autoload": { 1829 | "classmap": [ 1830 | "src/" 1831 | ] 1832 | }, 1833 | "notification-url": "https://packagist.org/downloads/", 1834 | "license": [ 1835 | "BSD-3-Clause" 1836 | ], 1837 | "authors": [ 1838 | { 1839 | "name": "Sebastian Bergmann", 1840 | "email": "sebastian@phpunit.de", 1841 | "role": "lead" 1842 | } 1843 | ], 1844 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 1845 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 1846 | "keywords": [ 1847 | "filesystem", 1848 | "iterator" 1849 | ], 1850 | "support": { 1851 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", 1852 | "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", 1853 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" 1854 | }, 1855 | "funding": [ 1856 | { 1857 | "url": "https://github.com/sebastianbergmann", 1858 | "type": "github" 1859 | } 1860 | ], 1861 | "time": "2024-08-27T05:02:59+00:00" 1862 | }, 1863 | { 1864 | "name": "phpunit/php-invoker", 1865 | "version": "5.0.1", 1866 | "source": { 1867 | "type": "git", 1868 | "url": "https://github.com/sebastianbergmann/php-invoker.git", 1869 | "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" 1870 | }, 1871 | "dist": { 1872 | "type": "zip", 1873 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", 1874 | "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", 1875 | "shasum": "" 1876 | }, 1877 | "require": { 1878 | "php": ">=8.2" 1879 | }, 1880 | "require-dev": { 1881 | "ext-pcntl": "*", 1882 | "phpunit/phpunit": "^11.0" 1883 | }, 1884 | "suggest": { 1885 | "ext-pcntl": "*" 1886 | }, 1887 | "type": "library", 1888 | "extra": { 1889 | "branch-alias": { 1890 | "dev-main": "5.0-dev" 1891 | } 1892 | }, 1893 | "autoload": { 1894 | "classmap": [ 1895 | "src/" 1896 | ] 1897 | }, 1898 | "notification-url": "https://packagist.org/downloads/", 1899 | "license": [ 1900 | "BSD-3-Clause" 1901 | ], 1902 | "authors": [ 1903 | { 1904 | "name": "Sebastian Bergmann", 1905 | "email": "sebastian@phpunit.de", 1906 | "role": "lead" 1907 | } 1908 | ], 1909 | "description": "Invoke callables with a timeout", 1910 | "homepage": "https://github.com/sebastianbergmann/php-invoker/", 1911 | "keywords": [ 1912 | "process" 1913 | ], 1914 | "support": { 1915 | "issues": "https://github.com/sebastianbergmann/php-invoker/issues", 1916 | "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", 1917 | "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" 1918 | }, 1919 | "funding": [ 1920 | { 1921 | "url": "https://github.com/sebastianbergmann", 1922 | "type": "github" 1923 | } 1924 | ], 1925 | "time": "2024-07-03T05:07:44+00:00" 1926 | }, 1927 | { 1928 | "name": "phpunit/php-text-template", 1929 | "version": "4.0.1", 1930 | "source": { 1931 | "type": "git", 1932 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 1933 | "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" 1934 | }, 1935 | "dist": { 1936 | "type": "zip", 1937 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", 1938 | "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", 1939 | "shasum": "" 1940 | }, 1941 | "require": { 1942 | "php": ">=8.2" 1943 | }, 1944 | "require-dev": { 1945 | "phpunit/phpunit": "^11.0" 1946 | }, 1947 | "type": "library", 1948 | "extra": { 1949 | "branch-alias": { 1950 | "dev-main": "4.0-dev" 1951 | } 1952 | }, 1953 | "autoload": { 1954 | "classmap": [ 1955 | "src/" 1956 | ] 1957 | }, 1958 | "notification-url": "https://packagist.org/downloads/", 1959 | "license": [ 1960 | "BSD-3-Clause" 1961 | ], 1962 | "authors": [ 1963 | { 1964 | "name": "Sebastian Bergmann", 1965 | "email": "sebastian@phpunit.de", 1966 | "role": "lead" 1967 | } 1968 | ], 1969 | "description": "Simple template engine.", 1970 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 1971 | "keywords": [ 1972 | "template" 1973 | ], 1974 | "support": { 1975 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues", 1976 | "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", 1977 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" 1978 | }, 1979 | "funding": [ 1980 | { 1981 | "url": "https://github.com/sebastianbergmann", 1982 | "type": "github" 1983 | } 1984 | ], 1985 | "time": "2024-07-03T05:08:43+00:00" 1986 | }, 1987 | { 1988 | "name": "phpunit/php-timer", 1989 | "version": "7.0.1", 1990 | "source": { 1991 | "type": "git", 1992 | "url": "https://github.com/sebastianbergmann/php-timer.git", 1993 | "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" 1994 | }, 1995 | "dist": { 1996 | "type": "zip", 1997 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", 1998 | "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", 1999 | "shasum": "" 2000 | }, 2001 | "require": { 2002 | "php": ">=8.2" 2003 | }, 2004 | "require-dev": { 2005 | "phpunit/phpunit": "^11.0" 2006 | }, 2007 | "type": "library", 2008 | "extra": { 2009 | "branch-alias": { 2010 | "dev-main": "7.0-dev" 2011 | } 2012 | }, 2013 | "autoload": { 2014 | "classmap": [ 2015 | "src/" 2016 | ] 2017 | }, 2018 | "notification-url": "https://packagist.org/downloads/", 2019 | "license": [ 2020 | "BSD-3-Clause" 2021 | ], 2022 | "authors": [ 2023 | { 2024 | "name": "Sebastian Bergmann", 2025 | "email": "sebastian@phpunit.de", 2026 | "role": "lead" 2027 | } 2028 | ], 2029 | "description": "Utility class for timing", 2030 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 2031 | "keywords": [ 2032 | "timer" 2033 | ], 2034 | "support": { 2035 | "issues": "https://github.com/sebastianbergmann/php-timer/issues", 2036 | "security": "https://github.com/sebastianbergmann/php-timer/security/policy", 2037 | "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" 2038 | }, 2039 | "funding": [ 2040 | { 2041 | "url": "https://github.com/sebastianbergmann", 2042 | "type": "github" 2043 | } 2044 | ], 2045 | "time": "2024-07-03T05:09:35+00:00" 2046 | }, 2047 | { 2048 | "name": "phpunit/phpunit", 2049 | "version": "11.5.15", 2050 | "source": { 2051 | "type": "git", 2052 | "url": "https://github.com/sebastianbergmann/phpunit.git", 2053 | "reference": "4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c" 2054 | }, 2055 | "dist": { 2056 | "type": "zip", 2057 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c", 2058 | "reference": "4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c", 2059 | "shasum": "" 2060 | }, 2061 | "require": { 2062 | "ext-dom": "*", 2063 | "ext-json": "*", 2064 | "ext-libxml": "*", 2065 | "ext-mbstring": "*", 2066 | "ext-xml": "*", 2067 | "ext-xmlwriter": "*", 2068 | "myclabs/deep-copy": "^1.13.0", 2069 | "phar-io/manifest": "^2.0.4", 2070 | "phar-io/version": "^3.2.1", 2071 | "php": ">=8.2", 2072 | "phpunit/php-code-coverage": "^11.0.9", 2073 | "phpunit/php-file-iterator": "^5.1.0", 2074 | "phpunit/php-invoker": "^5.0.1", 2075 | "phpunit/php-text-template": "^4.0.1", 2076 | "phpunit/php-timer": "^7.0.1", 2077 | "sebastian/cli-parser": "^3.0.2", 2078 | "sebastian/code-unit": "^3.0.3", 2079 | "sebastian/comparator": "^6.3.1", 2080 | "sebastian/diff": "^6.0.2", 2081 | "sebastian/environment": "^7.2.0", 2082 | "sebastian/exporter": "^6.3.0", 2083 | "sebastian/global-state": "^7.0.2", 2084 | "sebastian/object-enumerator": "^6.0.1", 2085 | "sebastian/type": "^5.1.2", 2086 | "sebastian/version": "^5.0.2", 2087 | "staabm/side-effects-detector": "^1.0.5" 2088 | }, 2089 | "suggest": { 2090 | "ext-soap": "To be able to generate mocks based on WSDL files" 2091 | }, 2092 | "bin": [ 2093 | "phpunit" 2094 | ], 2095 | "type": "library", 2096 | "extra": { 2097 | "branch-alias": { 2098 | "dev-main": "11.5-dev" 2099 | } 2100 | }, 2101 | "autoload": { 2102 | "files": [ 2103 | "src/Framework/Assert/Functions.php" 2104 | ], 2105 | "classmap": [ 2106 | "src/" 2107 | ] 2108 | }, 2109 | "notification-url": "https://packagist.org/downloads/", 2110 | "license": [ 2111 | "BSD-3-Clause" 2112 | ], 2113 | "authors": [ 2114 | { 2115 | "name": "Sebastian Bergmann", 2116 | "email": "sebastian@phpunit.de", 2117 | "role": "lead" 2118 | } 2119 | ], 2120 | "description": "The PHP Unit Testing framework.", 2121 | "homepage": "https://phpunit.de/", 2122 | "keywords": [ 2123 | "phpunit", 2124 | "testing", 2125 | "xunit" 2126 | ], 2127 | "support": { 2128 | "issues": "https://github.com/sebastianbergmann/phpunit/issues", 2129 | "security": "https://github.com/sebastianbergmann/phpunit/security/policy", 2130 | "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.15" 2131 | }, 2132 | "funding": [ 2133 | { 2134 | "url": "https://phpunit.de/sponsors.html", 2135 | "type": "custom" 2136 | }, 2137 | { 2138 | "url": "https://github.com/sebastianbergmann", 2139 | "type": "github" 2140 | }, 2141 | { 2142 | "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", 2143 | "type": "tidelift" 2144 | } 2145 | ], 2146 | "time": "2025-03-23T16:02:11+00:00" 2147 | }, 2148 | { 2149 | "name": "psy/psysh", 2150 | "version": "v0.12.8", 2151 | "source": { 2152 | "type": "git", 2153 | "url": "https://github.com/bobthecow/psysh.git", 2154 | "reference": "85057ceedee50c49d4f6ecaff73ee96adb3b3625" 2155 | }, 2156 | "dist": { 2157 | "type": "zip", 2158 | "url": "https://api.github.com/repos/bobthecow/psysh/zipball/85057ceedee50c49d4f6ecaff73ee96adb3b3625", 2159 | "reference": "85057ceedee50c49d4f6ecaff73ee96adb3b3625", 2160 | "shasum": "" 2161 | }, 2162 | "require": { 2163 | "ext-json": "*", 2164 | "ext-tokenizer": "*", 2165 | "nikic/php-parser": "^5.0 || ^4.0", 2166 | "php": "^8.0 || ^7.4", 2167 | "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", 2168 | "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" 2169 | }, 2170 | "conflict": { 2171 | "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" 2172 | }, 2173 | "require-dev": { 2174 | "bamarni/composer-bin-plugin": "^1.2" 2175 | }, 2176 | "suggest": { 2177 | "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", 2178 | "ext-pdo-sqlite": "The doc command requires SQLite to work.", 2179 | "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." 2180 | }, 2181 | "bin": [ 2182 | "bin/psysh" 2183 | ], 2184 | "type": "library", 2185 | "extra": { 2186 | "bamarni-bin": { 2187 | "bin-links": false, 2188 | "forward-command": false 2189 | }, 2190 | "branch-alias": { 2191 | "dev-main": "0.12.x-dev" 2192 | } 2193 | }, 2194 | "autoload": { 2195 | "files": [ 2196 | "src/functions.php" 2197 | ], 2198 | "psr-4": { 2199 | "Psy\\": "src/" 2200 | } 2201 | }, 2202 | "notification-url": "https://packagist.org/downloads/", 2203 | "license": [ 2204 | "MIT" 2205 | ], 2206 | "authors": [ 2207 | { 2208 | "name": "Justin Hileman", 2209 | "email": "justin@justinhileman.info", 2210 | "homepage": "http://justinhileman.com" 2211 | } 2212 | ], 2213 | "description": "An interactive shell for modern PHP.", 2214 | "homepage": "http://psysh.org", 2215 | "keywords": [ 2216 | "REPL", 2217 | "console", 2218 | "interactive", 2219 | "shell" 2220 | ], 2221 | "support": { 2222 | "issues": "https://github.com/bobthecow/psysh/issues", 2223 | "source": "https://github.com/bobthecow/psysh/tree/v0.12.8" 2224 | }, 2225 | "time": "2025-03-16T03:05:19+00:00" 2226 | }, 2227 | { 2228 | "name": "sebastian/cli-parser", 2229 | "version": "3.0.2", 2230 | "source": { 2231 | "type": "git", 2232 | "url": "https://github.com/sebastianbergmann/cli-parser.git", 2233 | "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" 2234 | }, 2235 | "dist": { 2236 | "type": "zip", 2237 | "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", 2238 | "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", 2239 | "shasum": "" 2240 | }, 2241 | "require": { 2242 | "php": ">=8.2" 2243 | }, 2244 | "require-dev": { 2245 | "phpunit/phpunit": "^11.0" 2246 | }, 2247 | "type": "library", 2248 | "extra": { 2249 | "branch-alias": { 2250 | "dev-main": "3.0-dev" 2251 | } 2252 | }, 2253 | "autoload": { 2254 | "classmap": [ 2255 | "src/" 2256 | ] 2257 | }, 2258 | "notification-url": "https://packagist.org/downloads/", 2259 | "license": [ 2260 | "BSD-3-Clause" 2261 | ], 2262 | "authors": [ 2263 | { 2264 | "name": "Sebastian Bergmann", 2265 | "email": "sebastian@phpunit.de", 2266 | "role": "lead" 2267 | } 2268 | ], 2269 | "description": "Library for parsing CLI options", 2270 | "homepage": "https://github.com/sebastianbergmann/cli-parser", 2271 | "support": { 2272 | "issues": "https://github.com/sebastianbergmann/cli-parser/issues", 2273 | "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", 2274 | "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" 2275 | }, 2276 | "funding": [ 2277 | { 2278 | "url": "https://github.com/sebastianbergmann", 2279 | "type": "github" 2280 | } 2281 | ], 2282 | "time": "2024-07-03T04:41:36+00:00" 2283 | }, 2284 | { 2285 | "name": "sebastian/code-unit", 2286 | "version": "3.0.3", 2287 | "source": { 2288 | "type": "git", 2289 | "url": "https://github.com/sebastianbergmann/code-unit.git", 2290 | "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" 2291 | }, 2292 | "dist": { 2293 | "type": "zip", 2294 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", 2295 | "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", 2296 | "shasum": "" 2297 | }, 2298 | "require": { 2299 | "php": ">=8.2" 2300 | }, 2301 | "require-dev": { 2302 | "phpunit/phpunit": "^11.5" 2303 | }, 2304 | "type": "library", 2305 | "extra": { 2306 | "branch-alias": { 2307 | "dev-main": "3.0-dev" 2308 | } 2309 | }, 2310 | "autoload": { 2311 | "classmap": [ 2312 | "src/" 2313 | ] 2314 | }, 2315 | "notification-url": "https://packagist.org/downloads/", 2316 | "license": [ 2317 | "BSD-3-Clause" 2318 | ], 2319 | "authors": [ 2320 | { 2321 | "name": "Sebastian Bergmann", 2322 | "email": "sebastian@phpunit.de", 2323 | "role": "lead" 2324 | } 2325 | ], 2326 | "description": "Collection of value objects that represent the PHP code units", 2327 | "homepage": "https://github.com/sebastianbergmann/code-unit", 2328 | "support": { 2329 | "issues": "https://github.com/sebastianbergmann/code-unit/issues", 2330 | "security": "https://github.com/sebastianbergmann/code-unit/security/policy", 2331 | "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" 2332 | }, 2333 | "funding": [ 2334 | { 2335 | "url": "https://github.com/sebastianbergmann", 2336 | "type": "github" 2337 | } 2338 | ], 2339 | "time": "2025-03-19T07:56:08+00:00" 2340 | }, 2341 | { 2342 | "name": "sebastian/code-unit-reverse-lookup", 2343 | "version": "4.0.1", 2344 | "source": { 2345 | "type": "git", 2346 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 2347 | "reference": "183a9b2632194febd219bb9246eee421dad8d45e" 2348 | }, 2349 | "dist": { 2350 | "type": "zip", 2351 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", 2352 | "reference": "183a9b2632194febd219bb9246eee421dad8d45e", 2353 | "shasum": "" 2354 | }, 2355 | "require": { 2356 | "php": ">=8.2" 2357 | }, 2358 | "require-dev": { 2359 | "phpunit/phpunit": "^11.0" 2360 | }, 2361 | "type": "library", 2362 | "extra": { 2363 | "branch-alias": { 2364 | "dev-main": "4.0-dev" 2365 | } 2366 | }, 2367 | "autoload": { 2368 | "classmap": [ 2369 | "src/" 2370 | ] 2371 | }, 2372 | "notification-url": "https://packagist.org/downloads/", 2373 | "license": [ 2374 | "BSD-3-Clause" 2375 | ], 2376 | "authors": [ 2377 | { 2378 | "name": "Sebastian Bergmann", 2379 | "email": "sebastian@phpunit.de" 2380 | } 2381 | ], 2382 | "description": "Looks up which function or method a line of code belongs to", 2383 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 2384 | "support": { 2385 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", 2386 | "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", 2387 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" 2388 | }, 2389 | "funding": [ 2390 | { 2391 | "url": "https://github.com/sebastianbergmann", 2392 | "type": "github" 2393 | } 2394 | ], 2395 | "time": "2024-07-03T04:45:54+00:00" 2396 | }, 2397 | { 2398 | "name": "sebastian/comparator", 2399 | "version": "6.3.1", 2400 | "source": { 2401 | "type": "git", 2402 | "url": "https://github.com/sebastianbergmann/comparator.git", 2403 | "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959" 2404 | }, 2405 | "dist": { 2406 | "type": "zip", 2407 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/24b8fbc2c8e201bb1308e7b05148d6ab393b6959", 2408 | "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959", 2409 | "shasum": "" 2410 | }, 2411 | "require": { 2412 | "ext-dom": "*", 2413 | "ext-mbstring": "*", 2414 | "php": ">=8.2", 2415 | "sebastian/diff": "^6.0", 2416 | "sebastian/exporter": "^6.0" 2417 | }, 2418 | "require-dev": { 2419 | "phpunit/phpunit": "^11.4" 2420 | }, 2421 | "suggest": { 2422 | "ext-bcmath": "For comparing BcMath\\Number objects" 2423 | }, 2424 | "type": "library", 2425 | "extra": { 2426 | "branch-alias": { 2427 | "dev-main": "6.3-dev" 2428 | } 2429 | }, 2430 | "autoload": { 2431 | "classmap": [ 2432 | "src/" 2433 | ] 2434 | }, 2435 | "notification-url": "https://packagist.org/downloads/", 2436 | "license": [ 2437 | "BSD-3-Clause" 2438 | ], 2439 | "authors": [ 2440 | { 2441 | "name": "Sebastian Bergmann", 2442 | "email": "sebastian@phpunit.de" 2443 | }, 2444 | { 2445 | "name": "Jeff Welch", 2446 | "email": "whatthejeff@gmail.com" 2447 | }, 2448 | { 2449 | "name": "Volker Dusch", 2450 | "email": "github@wallbash.com" 2451 | }, 2452 | { 2453 | "name": "Bernhard Schussek", 2454 | "email": "bschussek@2bepublished.at" 2455 | } 2456 | ], 2457 | "description": "Provides the functionality to compare PHP values for equality", 2458 | "homepage": "https://github.com/sebastianbergmann/comparator", 2459 | "keywords": [ 2460 | "comparator", 2461 | "compare", 2462 | "equality" 2463 | ], 2464 | "support": { 2465 | "issues": "https://github.com/sebastianbergmann/comparator/issues", 2466 | "security": "https://github.com/sebastianbergmann/comparator/security/policy", 2467 | "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.1" 2468 | }, 2469 | "funding": [ 2470 | { 2471 | "url": "https://github.com/sebastianbergmann", 2472 | "type": "github" 2473 | } 2474 | ], 2475 | "time": "2025-03-07T06:57:01+00:00" 2476 | }, 2477 | { 2478 | "name": "sebastian/complexity", 2479 | "version": "4.0.1", 2480 | "source": { 2481 | "type": "git", 2482 | "url": "https://github.com/sebastianbergmann/complexity.git", 2483 | "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" 2484 | }, 2485 | "dist": { 2486 | "type": "zip", 2487 | "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", 2488 | "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", 2489 | "shasum": "" 2490 | }, 2491 | "require": { 2492 | "nikic/php-parser": "^5.0", 2493 | "php": ">=8.2" 2494 | }, 2495 | "require-dev": { 2496 | "phpunit/phpunit": "^11.0" 2497 | }, 2498 | "type": "library", 2499 | "extra": { 2500 | "branch-alias": { 2501 | "dev-main": "4.0-dev" 2502 | } 2503 | }, 2504 | "autoload": { 2505 | "classmap": [ 2506 | "src/" 2507 | ] 2508 | }, 2509 | "notification-url": "https://packagist.org/downloads/", 2510 | "license": [ 2511 | "BSD-3-Clause" 2512 | ], 2513 | "authors": [ 2514 | { 2515 | "name": "Sebastian Bergmann", 2516 | "email": "sebastian@phpunit.de", 2517 | "role": "lead" 2518 | } 2519 | ], 2520 | "description": "Library for calculating the complexity of PHP code units", 2521 | "homepage": "https://github.com/sebastianbergmann/complexity", 2522 | "support": { 2523 | "issues": "https://github.com/sebastianbergmann/complexity/issues", 2524 | "security": "https://github.com/sebastianbergmann/complexity/security/policy", 2525 | "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" 2526 | }, 2527 | "funding": [ 2528 | { 2529 | "url": "https://github.com/sebastianbergmann", 2530 | "type": "github" 2531 | } 2532 | ], 2533 | "time": "2024-07-03T04:49:50+00:00" 2534 | }, 2535 | { 2536 | "name": "sebastian/diff", 2537 | "version": "6.0.2", 2538 | "source": { 2539 | "type": "git", 2540 | "url": "https://github.com/sebastianbergmann/diff.git", 2541 | "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" 2542 | }, 2543 | "dist": { 2544 | "type": "zip", 2545 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", 2546 | "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", 2547 | "shasum": "" 2548 | }, 2549 | "require": { 2550 | "php": ">=8.2" 2551 | }, 2552 | "require-dev": { 2553 | "phpunit/phpunit": "^11.0", 2554 | "symfony/process": "^4.2 || ^5" 2555 | }, 2556 | "type": "library", 2557 | "extra": { 2558 | "branch-alias": { 2559 | "dev-main": "6.0-dev" 2560 | } 2561 | }, 2562 | "autoload": { 2563 | "classmap": [ 2564 | "src/" 2565 | ] 2566 | }, 2567 | "notification-url": "https://packagist.org/downloads/", 2568 | "license": [ 2569 | "BSD-3-Clause" 2570 | ], 2571 | "authors": [ 2572 | { 2573 | "name": "Sebastian Bergmann", 2574 | "email": "sebastian@phpunit.de" 2575 | }, 2576 | { 2577 | "name": "Kore Nordmann", 2578 | "email": "mail@kore-nordmann.de" 2579 | } 2580 | ], 2581 | "description": "Diff implementation", 2582 | "homepage": "https://github.com/sebastianbergmann/diff", 2583 | "keywords": [ 2584 | "diff", 2585 | "udiff", 2586 | "unidiff", 2587 | "unified diff" 2588 | ], 2589 | "support": { 2590 | "issues": "https://github.com/sebastianbergmann/diff/issues", 2591 | "security": "https://github.com/sebastianbergmann/diff/security/policy", 2592 | "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" 2593 | }, 2594 | "funding": [ 2595 | { 2596 | "url": "https://github.com/sebastianbergmann", 2597 | "type": "github" 2598 | } 2599 | ], 2600 | "time": "2024-07-03T04:53:05+00:00" 2601 | }, 2602 | { 2603 | "name": "sebastian/environment", 2604 | "version": "7.2.0", 2605 | "source": { 2606 | "type": "git", 2607 | "url": "https://github.com/sebastianbergmann/environment.git", 2608 | "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5" 2609 | }, 2610 | "dist": { 2611 | "type": "zip", 2612 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", 2613 | "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", 2614 | "shasum": "" 2615 | }, 2616 | "require": { 2617 | "php": ">=8.2" 2618 | }, 2619 | "require-dev": { 2620 | "phpunit/phpunit": "^11.0" 2621 | }, 2622 | "suggest": { 2623 | "ext-posix": "*" 2624 | }, 2625 | "type": "library", 2626 | "extra": { 2627 | "branch-alias": { 2628 | "dev-main": "7.2-dev" 2629 | } 2630 | }, 2631 | "autoload": { 2632 | "classmap": [ 2633 | "src/" 2634 | ] 2635 | }, 2636 | "notification-url": "https://packagist.org/downloads/", 2637 | "license": [ 2638 | "BSD-3-Clause" 2639 | ], 2640 | "authors": [ 2641 | { 2642 | "name": "Sebastian Bergmann", 2643 | "email": "sebastian@phpunit.de" 2644 | } 2645 | ], 2646 | "description": "Provides functionality to handle HHVM/PHP environments", 2647 | "homepage": "https://github.com/sebastianbergmann/environment", 2648 | "keywords": [ 2649 | "Xdebug", 2650 | "environment", 2651 | "hhvm" 2652 | ], 2653 | "support": { 2654 | "issues": "https://github.com/sebastianbergmann/environment/issues", 2655 | "security": "https://github.com/sebastianbergmann/environment/security/policy", 2656 | "source": "https://github.com/sebastianbergmann/environment/tree/7.2.0" 2657 | }, 2658 | "funding": [ 2659 | { 2660 | "url": "https://github.com/sebastianbergmann", 2661 | "type": "github" 2662 | } 2663 | ], 2664 | "time": "2024-07-03T04:54:44+00:00" 2665 | }, 2666 | { 2667 | "name": "sebastian/exporter", 2668 | "version": "6.3.0", 2669 | "source": { 2670 | "type": "git", 2671 | "url": "https://github.com/sebastianbergmann/exporter.git", 2672 | "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3" 2673 | }, 2674 | "dist": { 2675 | "type": "zip", 2676 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/3473f61172093b2da7de1fb5782e1f24cc036dc3", 2677 | "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3", 2678 | "shasum": "" 2679 | }, 2680 | "require": { 2681 | "ext-mbstring": "*", 2682 | "php": ">=8.2", 2683 | "sebastian/recursion-context": "^6.0" 2684 | }, 2685 | "require-dev": { 2686 | "phpunit/phpunit": "^11.3" 2687 | }, 2688 | "type": "library", 2689 | "extra": { 2690 | "branch-alias": { 2691 | "dev-main": "6.1-dev" 2692 | } 2693 | }, 2694 | "autoload": { 2695 | "classmap": [ 2696 | "src/" 2697 | ] 2698 | }, 2699 | "notification-url": "https://packagist.org/downloads/", 2700 | "license": [ 2701 | "BSD-3-Clause" 2702 | ], 2703 | "authors": [ 2704 | { 2705 | "name": "Sebastian Bergmann", 2706 | "email": "sebastian@phpunit.de" 2707 | }, 2708 | { 2709 | "name": "Jeff Welch", 2710 | "email": "whatthejeff@gmail.com" 2711 | }, 2712 | { 2713 | "name": "Volker Dusch", 2714 | "email": "github@wallbash.com" 2715 | }, 2716 | { 2717 | "name": "Adam Harvey", 2718 | "email": "aharvey@php.net" 2719 | }, 2720 | { 2721 | "name": "Bernhard Schussek", 2722 | "email": "bschussek@gmail.com" 2723 | } 2724 | ], 2725 | "description": "Provides the functionality to export PHP variables for visualization", 2726 | "homepage": "https://www.github.com/sebastianbergmann/exporter", 2727 | "keywords": [ 2728 | "export", 2729 | "exporter" 2730 | ], 2731 | "support": { 2732 | "issues": "https://github.com/sebastianbergmann/exporter/issues", 2733 | "security": "https://github.com/sebastianbergmann/exporter/security/policy", 2734 | "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.0" 2735 | }, 2736 | "funding": [ 2737 | { 2738 | "url": "https://github.com/sebastianbergmann", 2739 | "type": "github" 2740 | } 2741 | ], 2742 | "time": "2024-12-05T09:17:50+00:00" 2743 | }, 2744 | { 2745 | "name": "sebastian/global-state", 2746 | "version": "7.0.2", 2747 | "source": { 2748 | "type": "git", 2749 | "url": "https://github.com/sebastianbergmann/global-state.git", 2750 | "reference": "3be331570a721f9a4b5917f4209773de17f747d7" 2751 | }, 2752 | "dist": { 2753 | "type": "zip", 2754 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", 2755 | "reference": "3be331570a721f9a4b5917f4209773de17f747d7", 2756 | "shasum": "" 2757 | }, 2758 | "require": { 2759 | "php": ">=8.2", 2760 | "sebastian/object-reflector": "^4.0", 2761 | "sebastian/recursion-context": "^6.0" 2762 | }, 2763 | "require-dev": { 2764 | "ext-dom": "*", 2765 | "phpunit/phpunit": "^11.0" 2766 | }, 2767 | "type": "library", 2768 | "extra": { 2769 | "branch-alias": { 2770 | "dev-main": "7.0-dev" 2771 | } 2772 | }, 2773 | "autoload": { 2774 | "classmap": [ 2775 | "src/" 2776 | ] 2777 | }, 2778 | "notification-url": "https://packagist.org/downloads/", 2779 | "license": [ 2780 | "BSD-3-Clause" 2781 | ], 2782 | "authors": [ 2783 | { 2784 | "name": "Sebastian Bergmann", 2785 | "email": "sebastian@phpunit.de" 2786 | } 2787 | ], 2788 | "description": "Snapshotting of global state", 2789 | "homepage": "https://www.github.com/sebastianbergmann/global-state", 2790 | "keywords": [ 2791 | "global state" 2792 | ], 2793 | "support": { 2794 | "issues": "https://github.com/sebastianbergmann/global-state/issues", 2795 | "security": "https://github.com/sebastianbergmann/global-state/security/policy", 2796 | "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" 2797 | }, 2798 | "funding": [ 2799 | { 2800 | "url": "https://github.com/sebastianbergmann", 2801 | "type": "github" 2802 | } 2803 | ], 2804 | "time": "2024-07-03T04:57:36+00:00" 2805 | }, 2806 | { 2807 | "name": "sebastian/lines-of-code", 2808 | "version": "3.0.1", 2809 | "source": { 2810 | "type": "git", 2811 | "url": "https://github.com/sebastianbergmann/lines-of-code.git", 2812 | "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" 2813 | }, 2814 | "dist": { 2815 | "type": "zip", 2816 | "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", 2817 | "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", 2818 | "shasum": "" 2819 | }, 2820 | "require": { 2821 | "nikic/php-parser": "^5.0", 2822 | "php": ">=8.2" 2823 | }, 2824 | "require-dev": { 2825 | "phpunit/phpunit": "^11.0" 2826 | }, 2827 | "type": "library", 2828 | "extra": { 2829 | "branch-alias": { 2830 | "dev-main": "3.0-dev" 2831 | } 2832 | }, 2833 | "autoload": { 2834 | "classmap": [ 2835 | "src/" 2836 | ] 2837 | }, 2838 | "notification-url": "https://packagist.org/downloads/", 2839 | "license": [ 2840 | "BSD-3-Clause" 2841 | ], 2842 | "authors": [ 2843 | { 2844 | "name": "Sebastian Bergmann", 2845 | "email": "sebastian@phpunit.de", 2846 | "role": "lead" 2847 | } 2848 | ], 2849 | "description": "Library for counting the lines of code in PHP source code", 2850 | "homepage": "https://github.com/sebastianbergmann/lines-of-code", 2851 | "support": { 2852 | "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", 2853 | "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", 2854 | "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" 2855 | }, 2856 | "funding": [ 2857 | { 2858 | "url": "https://github.com/sebastianbergmann", 2859 | "type": "github" 2860 | } 2861 | ], 2862 | "time": "2024-07-03T04:58:38+00:00" 2863 | }, 2864 | { 2865 | "name": "sebastian/object-enumerator", 2866 | "version": "6.0.1", 2867 | "source": { 2868 | "type": "git", 2869 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 2870 | "reference": "f5b498e631a74204185071eb41f33f38d64608aa" 2871 | }, 2872 | "dist": { 2873 | "type": "zip", 2874 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", 2875 | "reference": "f5b498e631a74204185071eb41f33f38d64608aa", 2876 | "shasum": "" 2877 | }, 2878 | "require": { 2879 | "php": ">=8.2", 2880 | "sebastian/object-reflector": "^4.0", 2881 | "sebastian/recursion-context": "^6.0" 2882 | }, 2883 | "require-dev": { 2884 | "phpunit/phpunit": "^11.0" 2885 | }, 2886 | "type": "library", 2887 | "extra": { 2888 | "branch-alias": { 2889 | "dev-main": "6.0-dev" 2890 | } 2891 | }, 2892 | "autoload": { 2893 | "classmap": [ 2894 | "src/" 2895 | ] 2896 | }, 2897 | "notification-url": "https://packagist.org/downloads/", 2898 | "license": [ 2899 | "BSD-3-Clause" 2900 | ], 2901 | "authors": [ 2902 | { 2903 | "name": "Sebastian Bergmann", 2904 | "email": "sebastian@phpunit.de" 2905 | } 2906 | ], 2907 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 2908 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 2909 | "support": { 2910 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", 2911 | "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", 2912 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" 2913 | }, 2914 | "funding": [ 2915 | { 2916 | "url": "https://github.com/sebastianbergmann", 2917 | "type": "github" 2918 | } 2919 | ], 2920 | "time": "2024-07-03T05:00:13+00:00" 2921 | }, 2922 | { 2923 | "name": "sebastian/object-reflector", 2924 | "version": "4.0.1", 2925 | "source": { 2926 | "type": "git", 2927 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 2928 | "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" 2929 | }, 2930 | "dist": { 2931 | "type": "zip", 2932 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", 2933 | "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", 2934 | "shasum": "" 2935 | }, 2936 | "require": { 2937 | "php": ">=8.2" 2938 | }, 2939 | "require-dev": { 2940 | "phpunit/phpunit": "^11.0" 2941 | }, 2942 | "type": "library", 2943 | "extra": { 2944 | "branch-alias": { 2945 | "dev-main": "4.0-dev" 2946 | } 2947 | }, 2948 | "autoload": { 2949 | "classmap": [ 2950 | "src/" 2951 | ] 2952 | }, 2953 | "notification-url": "https://packagist.org/downloads/", 2954 | "license": [ 2955 | "BSD-3-Clause" 2956 | ], 2957 | "authors": [ 2958 | { 2959 | "name": "Sebastian Bergmann", 2960 | "email": "sebastian@phpunit.de" 2961 | } 2962 | ], 2963 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 2964 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 2965 | "support": { 2966 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues", 2967 | "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", 2968 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" 2969 | }, 2970 | "funding": [ 2971 | { 2972 | "url": "https://github.com/sebastianbergmann", 2973 | "type": "github" 2974 | } 2975 | ], 2976 | "time": "2024-07-03T05:01:32+00:00" 2977 | }, 2978 | { 2979 | "name": "sebastian/recursion-context", 2980 | "version": "6.0.2", 2981 | "source": { 2982 | "type": "git", 2983 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 2984 | "reference": "694d156164372abbd149a4b85ccda2e4670c0e16" 2985 | }, 2986 | "dist": { 2987 | "type": "zip", 2988 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/694d156164372abbd149a4b85ccda2e4670c0e16", 2989 | "reference": "694d156164372abbd149a4b85ccda2e4670c0e16", 2990 | "shasum": "" 2991 | }, 2992 | "require": { 2993 | "php": ">=8.2" 2994 | }, 2995 | "require-dev": { 2996 | "phpunit/phpunit": "^11.0" 2997 | }, 2998 | "type": "library", 2999 | "extra": { 3000 | "branch-alias": { 3001 | "dev-main": "6.0-dev" 3002 | } 3003 | }, 3004 | "autoload": { 3005 | "classmap": [ 3006 | "src/" 3007 | ] 3008 | }, 3009 | "notification-url": "https://packagist.org/downloads/", 3010 | "license": [ 3011 | "BSD-3-Clause" 3012 | ], 3013 | "authors": [ 3014 | { 3015 | "name": "Sebastian Bergmann", 3016 | "email": "sebastian@phpunit.de" 3017 | }, 3018 | { 3019 | "name": "Jeff Welch", 3020 | "email": "whatthejeff@gmail.com" 3021 | }, 3022 | { 3023 | "name": "Adam Harvey", 3024 | "email": "aharvey@php.net" 3025 | } 3026 | ], 3027 | "description": "Provides functionality to recursively process PHP variables", 3028 | "homepage": "https://github.com/sebastianbergmann/recursion-context", 3029 | "support": { 3030 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues", 3031 | "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", 3032 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.2" 3033 | }, 3034 | "funding": [ 3035 | { 3036 | "url": "https://github.com/sebastianbergmann", 3037 | "type": "github" 3038 | } 3039 | ], 3040 | "time": "2024-07-03T05:10:34+00:00" 3041 | }, 3042 | { 3043 | "name": "sebastian/type", 3044 | "version": "5.1.2", 3045 | "source": { 3046 | "type": "git", 3047 | "url": "https://github.com/sebastianbergmann/type.git", 3048 | "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e" 3049 | }, 3050 | "dist": { 3051 | "type": "zip", 3052 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/a8a7e30534b0eb0c77cd9d07e82de1a114389f5e", 3053 | "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e", 3054 | "shasum": "" 3055 | }, 3056 | "require": { 3057 | "php": ">=8.2" 3058 | }, 3059 | "require-dev": { 3060 | "phpunit/phpunit": "^11.3" 3061 | }, 3062 | "type": "library", 3063 | "extra": { 3064 | "branch-alias": { 3065 | "dev-main": "5.1-dev" 3066 | } 3067 | }, 3068 | "autoload": { 3069 | "classmap": [ 3070 | "src/" 3071 | ] 3072 | }, 3073 | "notification-url": "https://packagist.org/downloads/", 3074 | "license": [ 3075 | "BSD-3-Clause" 3076 | ], 3077 | "authors": [ 3078 | { 3079 | "name": "Sebastian Bergmann", 3080 | "email": "sebastian@phpunit.de", 3081 | "role": "lead" 3082 | } 3083 | ], 3084 | "description": "Collection of value objects that represent the types of the PHP type system", 3085 | "homepage": "https://github.com/sebastianbergmann/type", 3086 | "support": { 3087 | "issues": "https://github.com/sebastianbergmann/type/issues", 3088 | "security": "https://github.com/sebastianbergmann/type/security/policy", 3089 | "source": "https://github.com/sebastianbergmann/type/tree/5.1.2" 3090 | }, 3091 | "funding": [ 3092 | { 3093 | "url": "https://github.com/sebastianbergmann", 3094 | "type": "github" 3095 | } 3096 | ], 3097 | "time": "2025-03-18T13:35:50+00:00" 3098 | }, 3099 | { 3100 | "name": "sebastian/version", 3101 | "version": "5.0.2", 3102 | "source": { 3103 | "type": "git", 3104 | "url": "https://github.com/sebastianbergmann/version.git", 3105 | "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" 3106 | }, 3107 | "dist": { 3108 | "type": "zip", 3109 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", 3110 | "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", 3111 | "shasum": "" 3112 | }, 3113 | "require": { 3114 | "php": ">=8.2" 3115 | }, 3116 | "type": "library", 3117 | "extra": { 3118 | "branch-alias": { 3119 | "dev-main": "5.0-dev" 3120 | } 3121 | }, 3122 | "autoload": { 3123 | "classmap": [ 3124 | "src/" 3125 | ] 3126 | }, 3127 | "notification-url": "https://packagist.org/downloads/", 3128 | "license": [ 3129 | "BSD-3-Clause" 3130 | ], 3131 | "authors": [ 3132 | { 3133 | "name": "Sebastian Bergmann", 3134 | "email": "sebastian@phpunit.de", 3135 | "role": "lead" 3136 | } 3137 | ], 3138 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 3139 | "homepage": "https://github.com/sebastianbergmann/version", 3140 | "support": { 3141 | "issues": "https://github.com/sebastianbergmann/version/issues", 3142 | "security": "https://github.com/sebastianbergmann/version/security/policy", 3143 | "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" 3144 | }, 3145 | "funding": [ 3146 | { 3147 | "url": "https://github.com/sebastianbergmann", 3148 | "type": "github" 3149 | } 3150 | ], 3151 | "time": "2024-10-09T05:16:32+00:00" 3152 | }, 3153 | { 3154 | "name": "squizlabs/php_codesniffer", 3155 | "version": "3.12.1", 3156 | "source": { 3157 | "type": "git", 3158 | "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", 3159 | "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd" 3160 | }, 3161 | "dist": { 3162 | "type": "zip", 3163 | "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ea16a1f3719783345febd3aab41beb55c8c84bfd", 3164 | "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd", 3165 | "shasum": "" 3166 | }, 3167 | "require": { 3168 | "ext-simplexml": "*", 3169 | "ext-tokenizer": "*", 3170 | "ext-xmlwriter": "*", 3171 | "php": ">=5.4.0" 3172 | }, 3173 | "require-dev": { 3174 | "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" 3175 | }, 3176 | "bin": [ 3177 | "bin/phpcbf", 3178 | "bin/phpcs" 3179 | ], 3180 | "type": "library", 3181 | "extra": { 3182 | "branch-alias": { 3183 | "dev-master": "3.x-dev" 3184 | } 3185 | }, 3186 | "notification-url": "https://packagist.org/downloads/", 3187 | "license": [ 3188 | "BSD-3-Clause" 3189 | ], 3190 | "authors": [ 3191 | { 3192 | "name": "Greg Sherwood", 3193 | "role": "Former lead" 3194 | }, 3195 | { 3196 | "name": "Juliette Reinders Folmer", 3197 | "role": "Current lead" 3198 | }, 3199 | { 3200 | "name": "Contributors", 3201 | "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" 3202 | } 3203 | ], 3204 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 3205 | "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", 3206 | "keywords": [ 3207 | "phpcs", 3208 | "standards", 3209 | "static analysis" 3210 | ], 3211 | "support": { 3212 | "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", 3213 | "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", 3214 | "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", 3215 | "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" 3216 | }, 3217 | "funding": [ 3218 | { 3219 | "url": "https://github.com/PHPCSStandards", 3220 | "type": "github" 3221 | }, 3222 | { 3223 | "url": "https://github.com/jrfnl", 3224 | "type": "github" 3225 | }, 3226 | { 3227 | "url": "https://opencollective.com/php_codesniffer", 3228 | "type": "open_collective" 3229 | }, 3230 | { 3231 | "url": "https://thanks.dev/u/gh/phpcsstandards", 3232 | "type": "thanks_dev" 3233 | } 3234 | ], 3235 | "time": "2025-04-04T12:57:55+00:00" 3236 | }, 3237 | { 3238 | "name": "staabm/side-effects-detector", 3239 | "version": "1.0.5", 3240 | "source": { 3241 | "type": "git", 3242 | "url": "https://github.com/staabm/side-effects-detector.git", 3243 | "reference": "d8334211a140ce329c13726d4a715adbddd0a163" 3244 | }, 3245 | "dist": { 3246 | "type": "zip", 3247 | "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", 3248 | "reference": "d8334211a140ce329c13726d4a715adbddd0a163", 3249 | "shasum": "" 3250 | }, 3251 | "require": { 3252 | "ext-tokenizer": "*", 3253 | "php": "^7.4 || ^8.0" 3254 | }, 3255 | "require-dev": { 3256 | "phpstan/extension-installer": "^1.4.3", 3257 | "phpstan/phpstan": "^1.12.6", 3258 | "phpunit/phpunit": "^9.6.21", 3259 | "symfony/var-dumper": "^5.4.43", 3260 | "tomasvotruba/type-coverage": "1.0.0", 3261 | "tomasvotruba/unused-public": "1.0.0" 3262 | }, 3263 | "type": "library", 3264 | "autoload": { 3265 | "classmap": [ 3266 | "lib/" 3267 | ] 3268 | }, 3269 | "notification-url": "https://packagist.org/downloads/", 3270 | "license": [ 3271 | "MIT" 3272 | ], 3273 | "description": "A static analysis tool to detect side effects in PHP code", 3274 | "keywords": [ 3275 | "static analysis" 3276 | ], 3277 | "support": { 3278 | "issues": "https://github.com/staabm/side-effects-detector/issues", 3279 | "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" 3280 | }, 3281 | "funding": [ 3282 | { 3283 | "url": "https://github.com/staabm", 3284 | "type": "github" 3285 | } 3286 | ], 3287 | "time": "2024-10-20T05:08:20+00:00" 3288 | }, 3289 | { 3290 | "name": "symfony/console", 3291 | "version": "v7.2.5", 3292 | "source": { 3293 | "type": "git", 3294 | "url": "https://github.com/symfony/console.git", 3295 | "reference": "e51498ea18570c062e7df29d05a7003585b19b88" 3296 | }, 3297 | "dist": { 3298 | "type": "zip", 3299 | "url": "https://api.github.com/repos/symfony/console/zipball/e51498ea18570c062e7df29d05a7003585b19b88", 3300 | "reference": "e51498ea18570c062e7df29d05a7003585b19b88", 3301 | "shasum": "" 3302 | }, 3303 | "require": { 3304 | "php": ">=8.2", 3305 | "symfony/polyfill-mbstring": "~1.0", 3306 | "symfony/service-contracts": "^2.5|^3", 3307 | "symfony/string": "^6.4|^7.0" 3308 | }, 3309 | "conflict": { 3310 | "symfony/dependency-injection": "<6.4", 3311 | "symfony/dotenv": "<6.4", 3312 | "symfony/event-dispatcher": "<6.4", 3313 | "symfony/lock": "<6.4", 3314 | "symfony/process": "<6.4" 3315 | }, 3316 | "provide": { 3317 | "psr/log-implementation": "1.0|2.0|3.0" 3318 | }, 3319 | "require-dev": { 3320 | "psr/log": "^1|^2|^3", 3321 | "symfony/config": "^6.4|^7.0", 3322 | "symfony/dependency-injection": "^6.4|^7.0", 3323 | "symfony/event-dispatcher": "^6.4|^7.0", 3324 | "symfony/http-foundation": "^6.4|^7.0", 3325 | "symfony/http-kernel": "^6.4|^7.0", 3326 | "symfony/lock": "^6.4|^7.0", 3327 | "symfony/messenger": "^6.4|^7.0", 3328 | "symfony/process": "^6.4|^7.0", 3329 | "symfony/stopwatch": "^6.4|^7.0", 3330 | "symfony/var-dumper": "^6.4|^7.0" 3331 | }, 3332 | "type": "library", 3333 | "autoload": { 3334 | "psr-4": { 3335 | "Symfony\\Component\\Console\\": "" 3336 | }, 3337 | "exclude-from-classmap": [ 3338 | "/Tests/" 3339 | ] 3340 | }, 3341 | "notification-url": "https://packagist.org/downloads/", 3342 | "license": [ 3343 | "MIT" 3344 | ], 3345 | "authors": [ 3346 | { 3347 | "name": "Fabien Potencier", 3348 | "email": "fabien@symfony.com" 3349 | }, 3350 | { 3351 | "name": "Symfony Community", 3352 | "homepage": "https://symfony.com/contributors" 3353 | } 3354 | ], 3355 | "description": "Eases the creation of beautiful and testable command line interfaces", 3356 | "homepage": "https://symfony.com", 3357 | "keywords": [ 3358 | "cli", 3359 | "command-line", 3360 | "console", 3361 | "terminal" 3362 | ], 3363 | "support": { 3364 | "source": "https://github.com/symfony/console/tree/v7.2.5" 3365 | }, 3366 | "funding": [ 3367 | { 3368 | "url": "https://symfony.com/sponsor", 3369 | "type": "custom" 3370 | }, 3371 | { 3372 | "url": "https://github.com/fabpot", 3373 | "type": "github" 3374 | }, 3375 | { 3376 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3377 | "type": "tidelift" 3378 | } 3379 | ], 3380 | "time": "2025-03-12T08:11:12+00:00" 3381 | }, 3382 | { 3383 | "name": "symfony/service-contracts", 3384 | "version": "v3.5.1", 3385 | "source": { 3386 | "type": "git", 3387 | "url": "https://github.com/symfony/service-contracts.git", 3388 | "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" 3389 | }, 3390 | "dist": { 3391 | "type": "zip", 3392 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", 3393 | "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", 3394 | "shasum": "" 3395 | }, 3396 | "require": { 3397 | "php": ">=8.1", 3398 | "psr/container": "^1.1|^2.0", 3399 | "symfony/deprecation-contracts": "^2.5|^3" 3400 | }, 3401 | "conflict": { 3402 | "ext-psr": "<1.1|>=2" 3403 | }, 3404 | "type": "library", 3405 | "extra": { 3406 | "thanks": { 3407 | "url": "https://github.com/symfony/contracts", 3408 | "name": "symfony/contracts" 3409 | }, 3410 | "branch-alias": { 3411 | "dev-main": "3.5-dev" 3412 | } 3413 | }, 3414 | "autoload": { 3415 | "psr-4": { 3416 | "Symfony\\Contracts\\Service\\": "" 3417 | }, 3418 | "exclude-from-classmap": [ 3419 | "/Test/" 3420 | ] 3421 | }, 3422 | "notification-url": "https://packagist.org/downloads/", 3423 | "license": [ 3424 | "MIT" 3425 | ], 3426 | "authors": [ 3427 | { 3428 | "name": "Nicolas Grekas", 3429 | "email": "p@tchwork.com" 3430 | }, 3431 | { 3432 | "name": "Symfony Community", 3433 | "homepage": "https://symfony.com/contributors" 3434 | } 3435 | ], 3436 | "description": "Generic abstractions related to writing services", 3437 | "homepage": "https://symfony.com", 3438 | "keywords": [ 3439 | "abstractions", 3440 | "contracts", 3441 | "decoupling", 3442 | "interfaces", 3443 | "interoperability", 3444 | "standards" 3445 | ], 3446 | "support": { 3447 | "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" 3448 | }, 3449 | "funding": [ 3450 | { 3451 | "url": "https://symfony.com/sponsor", 3452 | "type": "custom" 3453 | }, 3454 | { 3455 | "url": "https://github.com/fabpot", 3456 | "type": "github" 3457 | }, 3458 | { 3459 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3460 | "type": "tidelift" 3461 | } 3462 | ], 3463 | "time": "2024-09-25T14:20:29+00:00" 3464 | }, 3465 | { 3466 | "name": "symfony/var-dumper", 3467 | "version": "v7.2.3", 3468 | "source": { 3469 | "type": "git", 3470 | "url": "https://github.com/symfony/var-dumper.git", 3471 | "reference": "82b478c69745d8878eb60f9a049a4d584996f73a" 3472 | }, 3473 | "dist": { 3474 | "type": "zip", 3475 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/82b478c69745d8878eb60f9a049a4d584996f73a", 3476 | "reference": "82b478c69745d8878eb60f9a049a4d584996f73a", 3477 | "shasum": "" 3478 | }, 3479 | "require": { 3480 | "php": ">=8.2", 3481 | "symfony/polyfill-mbstring": "~1.0" 3482 | }, 3483 | "conflict": { 3484 | "symfony/console": "<6.4" 3485 | }, 3486 | "require-dev": { 3487 | "ext-iconv": "*", 3488 | "symfony/console": "^6.4|^7.0", 3489 | "symfony/http-kernel": "^6.4|^7.0", 3490 | "symfony/process": "^6.4|^7.0", 3491 | "symfony/uid": "^6.4|^7.0", 3492 | "twig/twig": "^3.12" 3493 | }, 3494 | "bin": [ 3495 | "Resources/bin/var-dump-server" 3496 | ], 3497 | "type": "library", 3498 | "autoload": { 3499 | "files": [ 3500 | "Resources/functions/dump.php" 3501 | ], 3502 | "psr-4": { 3503 | "Symfony\\Component\\VarDumper\\": "" 3504 | }, 3505 | "exclude-from-classmap": [ 3506 | "/Tests/" 3507 | ] 3508 | }, 3509 | "notification-url": "https://packagist.org/downloads/", 3510 | "license": [ 3511 | "MIT" 3512 | ], 3513 | "authors": [ 3514 | { 3515 | "name": "Nicolas Grekas", 3516 | "email": "p@tchwork.com" 3517 | }, 3518 | { 3519 | "name": "Symfony Community", 3520 | "homepage": "https://symfony.com/contributors" 3521 | } 3522 | ], 3523 | "description": "Provides mechanisms for walking through any arbitrary PHP variable", 3524 | "homepage": "https://symfony.com", 3525 | "keywords": [ 3526 | "debug", 3527 | "dump" 3528 | ], 3529 | "support": { 3530 | "source": "https://github.com/symfony/var-dumper/tree/v7.2.3" 3531 | }, 3532 | "funding": [ 3533 | { 3534 | "url": "https://symfony.com/sponsor", 3535 | "type": "custom" 3536 | }, 3537 | { 3538 | "url": "https://github.com/fabpot", 3539 | "type": "github" 3540 | }, 3541 | { 3542 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3543 | "type": "tidelift" 3544 | } 3545 | ], 3546 | "time": "2025-01-17T11:39:41+00:00" 3547 | }, 3548 | { 3549 | "name": "theseer/tokenizer", 3550 | "version": "1.2.3", 3551 | "source": { 3552 | "type": "git", 3553 | "url": "https://github.com/theseer/tokenizer.git", 3554 | "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" 3555 | }, 3556 | "dist": { 3557 | "type": "zip", 3558 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", 3559 | "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", 3560 | "shasum": "" 3561 | }, 3562 | "require": { 3563 | "ext-dom": "*", 3564 | "ext-tokenizer": "*", 3565 | "ext-xmlwriter": "*", 3566 | "php": "^7.2 || ^8.0" 3567 | }, 3568 | "type": "library", 3569 | "autoload": { 3570 | "classmap": [ 3571 | "src/" 3572 | ] 3573 | }, 3574 | "notification-url": "https://packagist.org/downloads/", 3575 | "license": [ 3576 | "BSD-3-Clause" 3577 | ], 3578 | "authors": [ 3579 | { 3580 | "name": "Arne Blankerts", 3581 | "email": "arne@blankerts.de", 3582 | "role": "Developer" 3583 | } 3584 | ], 3585 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 3586 | "support": { 3587 | "issues": "https://github.com/theseer/tokenizer/issues", 3588 | "source": "https://github.com/theseer/tokenizer/tree/1.2.3" 3589 | }, 3590 | "funding": [ 3591 | { 3592 | "url": "https://github.com/theseer", 3593 | "type": "github" 3594 | } 3595 | ], 3596 | "time": "2024-03-03T12:36:25+00:00" 3597 | } 3598 | ], 3599 | "aliases": [], 3600 | "minimum-stability": "stable", 3601 | "stability-flags": { 3602 | "psy/psysh": 0 3603 | }, 3604 | "prefer-stable": false, 3605 | "prefer-lowest": false, 3606 | "platform": [], 3607 | "platform-dev": [], 3608 | "plugin-api-version": "2.6.0" 3609 | } 3610 | -------------------------------------------------------------------------------- /phpcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Coding Standards for Hexlets project 4 | 5 | 6 | 7 | 8 | 9 | */vendor/* 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- 1 | parameters: 2 | level: 8 3 | paths: 4 | - bin 5 | - src 6 | - tests 7 | ignoreErrors: 8 | - identifier: missingType.generics 9 | - identifier: missingType.iterableValue 10 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | ./src 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /psysh.php: -------------------------------------------------------------------------------- 1 | name = $name; 15 | $this->children = collect($children); 16 | } 17 | 18 | public function getName(): string 19 | { 20 | return $this->name; 21 | } 22 | 23 | public function getChildren(): Collection 24 | { 25 | return $this->children; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /tests/UserTest.php: -------------------------------------------------------------------------------- 1 | assertEquals($name, $user->getName()); 17 | $this->assertEquals(collect($children), $user->getChildren()); 18 | } 19 | } 20 | --------------------------------------------------------------------------------