├── .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 | [](https://github.com/hexlet-boilerplates/php-package/actions)
4 | [](https://sonarcloud.io/summary/new_code?id=hexlet-boilerplates_php-package)
5 | [](https://sonarcloud.io/summary/new_code?id=hexlet-boilerplates_php-package)
6 | [](https://sonarcloud.io/summary/new_code?id=hexlet-boilerplates_php-package)
7 | [](https://sonarcloud.io/summary/new_code?id=hexlet-boilerplates_php-package)
8 | [](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 | [](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 |
--------------------------------------------------------------------------------