├── .github ├── dependabot.yml └── workflows │ ├── ci-composer-version.yml │ ├── ci-coverage.yml │ ├── ci-latest.yml │ ├── ci-php73.yml │ └── ci.yml ├── .gitignore ├── README.md ├── composer.json ├── composer.lock ├── src ├── EnvGreeter.php └── Greeter.php └── test ├── EnvGreeterTest.php ├── GreeterTest.php └── phpunit.xml /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # Keep GitHub Actions up to date with GitHub's Dependabot... 2 | # https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot 3 | # https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem 4 | version: 2 5 | updates: 6 | - package-ecosystem: github-actions 7 | directory: / 8 | groups: 9 | github-actions: 10 | patterns: 11 | - "*" # Group all Actions updates into a single larger pull request 12 | schedule: 13 | interval: weekly 14 | -------------------------------------------------------------------------------- /.github/workflows/ci-composer-version.yml: -------------------------------------------------------------------------------- 1 | name: CI-composer-version 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build-test: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v3 11 | - uses: php-actions/composer@run-as-current-user 12 | 13 | - name: PHPUnit Tests 14 | uses: php-actions/phpunit@composer-version--user 15 | env: 16 | TEST_NAME: Scarlett 17 | with: 18 | bootstrap: vendor/autoload.php 19 | configuration: test/phpunit.xml 20 | -------------------------------------------------------------------------------- /.github/workflows/ci-coverage.yml: -------------------------------------------------------------------------------- 1 | name: CI-coverage 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build-test: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v3 11 | 12 | - uses: php-actions/composer@v6 13 | 14 | - name: PHPUnit Tests 15 | uses: php-actions/phpunit@v3 16 | with: 17 | version: 9.5.26 18 | php_extensions: xdebug 19 | bootstrap: vendor/autoload.php 20 | configuration: test/phpunit.xml 21 | args: --coverage-text 22 | env: 23 | XDEBUG_MODE: coverage 24 | TEST_NAME: Scarlett 25 | -------------------------------------------------------------------------------- /.github/workflows/ci-latest.yml: -------------------------------------------------------------------------------- 1 | name: CI-latest 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build-test: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v3 11 | 12 | - uses: php-actions/composer@v6 13 | 14 | - name: PHPUnit Tests 15 | uses: php-actions/phpunit@master 16 | env: 17 | TEST_NAME: Scarlett 18 | with: 19 | version: 9.6 20 | php_version: 8.3 21 | bootstrap: vendor/autoload.php 22 | configuration: test/phpunit.xml 23 | args: --coverage-text 24 | -------------------------------------------------------------------------------- /.github/workflows/ci-php73.yml: -------------------------------------------------------------------------------- 1 | name: CI-old-php 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build-test: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v3 11 | 12 | - uses: php-actions/composer@v6 13 | 14 | - name: PHPUnit Tests 15 | uses: php-actions/phpunit@v3 16 | env: 17 | TEST_NAME: Scarlett 18 | with: 19 | bootstrap: vendor/autoload.php 20 | configuration: test/phpunit.xml 21 | args: --coverage-text 22 | version: 8 23 | php_version: "7.3" 24 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build-test: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v3 11 | 12 | - uses: php-actions/composer@v6 13 | 14 | - name: PHPUnit Tests 15 | uses: php-actions/phpunit@master 16 | env: 17 | TEST_NAME: Scarlett 18 | with: 19 | version: 9.6 20 | bootstrap: vendor/autoload.php 21 | configuration: test/phpunit.xml 22 | args: --coverage-text 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | /.phpunit.result.cache -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | An example project that uses [php-actions/phpunit][action-link] 2 | === 3 | 4 | This is a trivial project that holds only simple example functionality: a greeter that can greet you by name. 5 | 6 | Check out the [**Actions tab** in the Github repository][actions-tab] to see the past actions workflows and their outputs. 7 | 8 | There are unit tests stored within the `test` directory, along with a `phpunit.xml`. 9 | 10 | The file at `.github/workflows/ci.yml` shows how to use [php-actions/phpunit][action-link] - take note of the `uses: php-actions/phpunit@v9` line. 11 | 12 | Versions of PHPUnit and all options are available to configure. Please see the [php-actions/phpunit documentation][action-link] for more information! 13 | 14 | Functionality 15 | ------------- 16 | 17 | There are two classes in this example project; `Greeter` and `EnvGreeter`, in the `src/` directory, which are tested in the `test/` directory. 18 | 19 | The `Greeter` has a function, `greet()` which takes an optional name. Without providing a name, the Greeter will return "Hello!", otherwise it will include the provided name, like "Hello, Example!". 20 | 21 | The `EnvGreeter` extends `Greeter` and provides a new function, `greetFromEnv()`, which takes the name of an environment variable to load the name from. 22 | 23 | The GitHub Action tests are executed in the [`ci.yml` file](https://github.com/php-actions/example-phpunit/blob/e1db6474eec4dc75526042f9cf5dab2bf8f163f9/.github/workflows/ci.yml#L14-L21) where the TEST_NAME environment variable is declared, along with any other PHPUnit configuration. 24 | 25 | Click the [Actions tab](https://github.com/php-actions/example-phpunit/actions) at the top of this repository to view the latest test runs. 26 | 27 | *** 28 | 29 | If you found this repository helpful, please consider [sponsoring the developer][sponsor]. 30 | 31 | [action-link]: https://github.com/php-actions/phpunit 32 | [actions-tab]: https://github.com/php-actions/example-phpunit/actions 33 | [sponsor]: https://github.com/sponsors/g105b 34 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "php-actions/example-phpunit", 3 | "description": "Example project using php-actions/phpunit", 4 | 5 | "require-dev": { 6 | "ext-curl": "*", 7 | "ext-dom": "*", 8 | "ext-json": "*", 9 | "ext-sqlite3": "*", 10 | "phpunit/phpunit": "^9.6" 11 | }, 12 | "autoload": { 13 | "psr-4": { 14 | "App\\": "src" 15 | } 16 | }, 17 | "autoload-dev": { 18 | "psr-4": { 19 | "App\\Test\\": "test" 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "0f57ae640ade84286006a5cc0c4f8a4a", 8 | "packages": [], 9 | "packages-dev": [ 10 | { 11 | "name": "doctrine/instantiator", 12 | "version": "2.0.0", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/doctrine/instantiator.git", 16 | "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", 21 | "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "php": "^8.1" 26 | }, 27 | "require-dev": { 28 | "doctrine/coding-standard": "^11", 29 | "ext-pdo": "*", 30 | "ext-phar": "*", 31 | "phpbench/phpbench": "^1.2", 32 | "phpstan/phpstan": "^1.9.4", 33 | "phpstan/phpstan-phpunit": "^1.3", 34 | "phpunit/phpunit": "^9.5.27", 35 | "vimeo/psalm": "^5.4" 36 | }, 37 | "type": "library", 38 | "autoload": { 39 | "psr-4": { 40 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 41 | } 42 | }, 43 | "notification-url": "https://packagist.org/downloads/", 44 | "license": [ 45 | "MIT" 46 | ], 47 | "authors": [ 48 | { 49 | "name": "Marco Pivetta", 50 | "email": "ocramius@gmail.com", 51 | "homepage": "https://ocramius.github.io/" 52 | } 53 | ], 54 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 55 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 56 | "keywords": [ 57 | "constructor", 58 | "instantiate" 59 | ], 60 | "support": { 61 | "issues": "https://github.com/doctrine/instantiator/issues", 62 | "source": "https://github.com/doctrine/instantiator/tree/2.0.0" 63 | }, 64 | "funding": [ 65 | { 66 | "url": "https://www.doctrine-project.org/sponsorship.html", 67 | "type": "custom" 68 | }, 69 | { 70 | "url": "https://www.patreon.com/phpdoctrine", 71 | "type": "patreon" 72 | }, 73 | { 74 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", 75 | "type": "tidelift" 76 | } 77 | ], 78 | "time": "2022-12-30T00:23:10+00:00" 79 | }, 80 | { 81 | "name": "myclabs/deep-copy", 82 | "version": "1.11.1", 83 | "source": { 84 | "type": "git", 85 | "url": "https://github.com/myclabs/DeepCopy.git", 86 | "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" 87 | }, 88 | "dist": { 89 | "type": "zip", 90 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", 91 | "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", 92 | "shasum": "" 93 | }, 94 | "require": { 95 | "php": "^7.1 || ^8.0" 96 | }, 97 | "conflict": { 98 | "doctrine/collections": "<1.6.8", 99 | "doctrine/common": "<2.13.3 || >=3,<3.2.2" 100 | }, 101 | "require-dev": { 102 | "doctrine/collections": "^1.6.8", 103 | "doctrine/common": "^2.13.3 || ^3.2.2", 104 | "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" 105 | }, 106 | "type": "library", 107 | "autoload": { 108 | "files": [ 109 | "src/DeepCopy/deep_copy.php" 110 | ], 111 | "psr-4": { 112 | "DeepCopy\\": "src/DeepCopy/" 113 | } 114 | }, 115 | "notification-url": "https://packagist.org/downloads/", 116 | "license": [ 117 | "MIT" 118 | ], 119 | "description": "Create deep copies (clones) of your objects", 120 | "keywords": [ 121 | "clone", 122 | "copy", 123 | "duplicate", 124 | "object", 125 | "object graph" 126 | ], 127 | "support": { 128 | "issues": "https://github.com/myclabs/DeepCopy/issues", 129 | "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" 130 | }, 131 | "funding": [ 132 | { 133 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", 134 | "type": "tidelift" 135 | } 136 | ], 137 | "time": "2023-03-08T13:26:56+00:00" 138 | }, 139 | { 140 | "name": "nikic/php-parser", 141 | "version": "v5.0.0", 142 | "source": { 143 | "type": "git", 144 | "url": "https://github.com/nikic/PHP-Parser.git", 145 | "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc" 146 | }, 147 | "dist": { 148 | "type": "zip", 149 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc", 150 | "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc", 151 | "shasum": "" 152 | }, 153 | "require": { 154 | "ext-ctype": "*", 155 | "ext-json": "*", 156 | "ext-tokenizer": "*", 157 | "php": ">=7.4" 158 | }, 159 | "require-dev": { 160 | "ircmaxell/php-yacc": "^0.0.7", 161 | "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" 162 | }, 163 | "bin": [ 164 | "bin/php-parse" 165 | ], 166 | "type": "library", 167 | "extra": { 168 | "branch-alias": { 169 | "dev-master": "5.0-dev" 170 | } 171 | }, 172 | "autoload": { 173 | "psr-4": { 174 | "PhpParser\\": "lib/PhpParser" 175 | } 176 | }, 177 | "notification-url": "https://packagist.org/downloads/", 178 | "license": [ 179 | "BSD-3-Clause" 180 | ], 181 | "authors": [ 182 | { 183 | "name": "Nikita Popov" 184 | } 185 | ], 186 | "description": "A PHP parser written in PHP", 187 | "keywords": [ 188 | "parser", 189 | "php" 190 | ], 191 | "support": { 192 | "issues": "https://github.com/nikic/PHP-Parser/issues", 193 | "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0" 194 | }, 195 | "time": "2024-01-07T17:17:35+00:00" 196 | }, 197 | { 198 | "name": "phar-io/manifest", 199 | "version": "2.0.3", 200 | "source": { 201 | "type": "git", 202 | "url": "https://github.com/phar-io/manifest.git", 203 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53" 204 | }, 205 | "dist": { 206 | "type": "zip", 207 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", 208 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53", 209 | "shasum": "" 210 | }, 211 | "require": { 212 | "ext-dom": "*", 213 | "ext-phar": "*", 214 | "ext-xmlwriter": "*", 215 | "phar-io/version": "^3.0.1", 216 | "php": "^7.2 || ^8.0" 217 | }, 218 | "type": "library", 219 | "extra": { 220 | "branch-alias": { 221 | "dev-master": "2.0.x-dev" 222 | } 223 | }, 224 | "autoload": { 225 | "classmap": [ 226 | "src/" 227 | ] 228 | }, 229 | "notification-url": "https://packagist.org/downloads/", 230 | "license": [ 231 | "BSD-3-Clause" 232 | ], 233 | "authors": [ 234 | { 235 | "name": "Arne Blankerts", 236 | "email": "arne@blankerts.de", 237 | "role": "Developer" 238 | }, 239 | { 240 | "name": "Sebastian Heuer", 241 | "email": "sebastian@phpeople.de", 242 | "role": "Developer" 243 | }, 244 | { 245 | "name": "Sebastian Bergmann", 246 | "email": "sebastian@phpunit.de", 247 | "role": "Developer" 248 | } 249 | ], 250 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 251 | "support": { 252 | "issues": "https://github.com/phar-io/manifest/issues", 253 | "source": "https://github.com/phar-io/manifest/tree/2.0.3" 254 | }, 255 | "time": "2021-07-20T11:28:43+00:00" 256 | }, 257 | { 258 | "name": "phar-io/version", 259 | "version": "3.2.1", 260 | "source": { 261 | "type": "git", 262 | "url": "https://github.com/phar-io/version.git", 263 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" 264 | }, 265 | "dist": { 266 | "type": "zip", 267 | "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", 268 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", 269 | "shasum": "" 270 | }, 271 | "require": { 272 | "php": "^7.2 || ^8.0" 273 | }, 274 | "type": "library", 275 | "autoload": { 276 | "classmap": [ 277 | "src/" 278 | ] 279 | }, 280 | "notification-url": "https://packagist.org/downloads/", 281 | "license": [ 282 | "BSD-3-Clause" 283 | ], 284 | "authors": [ 285 | { 286 | "name": "Arne Blankerts", 287 | "email": "arne@blankerts.de", 288 | "role": "Developer" 289 | }, 290 | { 291 | "name": "Sebastian Heuer", 292 | "email": "sebastian@phpeople.de", 293 | "role": "Developer" 294 | }, 295 | { 296 | "name": "Sebastian Bergmann", 297 | "email": "sebastian@phpunit.de", 298 | "role": "Developer" 299 | } 300 | ], 301 | "description": "Library for handling version information and constraints", 302 | "support": { 303 | "issues": "https://github.com/phar-io/version/issues", 304 | "source": "https://github.com/phar-io/version/tree/3.2.1" 305 | }, 306 | "time": "2022-02-21T01:04:05+00:00" 307 | }, 308 | { 309 | "name": "phpunit/php-code-coverage", 310 | "version": "9.2.30", 311 | "source": { 312 | "type": "git", 313 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 314 | "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089" 315 | }, 316 | "dist": { 317 | "type": "zip", 318 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca2bd87d2f9215904682a9cb9bb37dda98e76089", 319 | "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089", 320 | "shasum": "" 321 | }, 322 | "require": { 323 | "ext-dom": "*", 324 | "ext-libxml": "*", 325 | "ext-xmlwriter": "*", 326 | "nikic/php-parser": "^4.18 || ^5.0", 327 | "php": ">=7.3", 328 | "phpunit/php-file-iterator": "^3.0.3", 329 | "phpunit/php-text-template": "^2.0.2", 330 | "sebastian/code-unit-reverse-lookup": "^2.0.2", 331 | "sebastian/complexity": "^2.0", 332 | "sebastian/environment": "^5.1.2", 333 | "sebastian/lines-of-code": "^1.0.3", 334 | "sebastian/version": "^3.0.1", 335 | "theseer/tokenizer": "^1.2.0" 336 | }, 337 | "require-dev": { 338 | "phpunit/phpunit": "^9.3" 339 | }, 340 | "suggest": { 341 | "ext-pcov": "PHP extension that provides line coverage", 342 | "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" 343 | }, 344 | "type": "library", 345 | "extra": { 346 | "branch-alias": { 347 | "dev-master": "9.2-dev" 348 | } 349 | }, 350 | "autoload": { 351 | "classmap": [ 352 | "src/" 353 | ] 354 | }, 355 | "notification-url": "https://packagist.org/downloads/", 356 | "license": [ 357 | "BSD-3-Clause" 358 | ], 359 | "authors": [ 360 | { 361 | "name": "Sebastian Bergmann", 362 | "email": "sebastian@phpunit.de", 363 | "role": "lead" 364 | } 365 | ], 366 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 367 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 368 | "keywords": [ 369 | "coverage", 370 | "testing", 371 | "xunit" 372 | ], 373 | "support": { 374 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", 375 | "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", 376 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.30" 377 | }, 378 | "funding": [ 379 | { 380 | "url": "https://github.com/sebastianbergmann", 381 | "type": "github" 382 | } 383 | ], 384 | "time": "2023-12-22T06:47:57+00:00" 385 | }, 386 | { 387 | "name": "phpunit/php-file-iterator", 388 | "version": "3.0.6", 389 | "source": { 390 | "type": "git", 391 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 392 | "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" 393 | }, 394 | "dist": { 395 | "type": "zip", 396 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", 397 | "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", 398 | "shasum": "" 399 | }, 400 | "require": { 401 | "php": ">=7.3" 402 | }, 403 | "require-dev": { 404 | "phpunit/phpunit": "^9.3" 405 | }, 406 | "type": "library", 407 | "extra": { 408 | "branch-alias": { 409 | "dev-master": "3.0-dev" 410 | } 411 | }, 412 | "autoload": { 413 | "classmap": [ 414 | "src/" 415 | ] 416 | }, 417 | "notification-url": "https://packagist.org/downloads/", 418 | "license": [ 419 | "BSD-3-Clause" 420 | ], 421 | "authors": [ 422 | { 423 | "name": "Sebastian Bergmann", 424 | "email": "sebastian@phpunit.de", 425 | "role": "lead" 426 | } 427 | ], 428 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 429 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 430 | "keywords": [ 431 | "filesystem", 432 | "iterator" 433 | ], 434 | "support": { 435 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", 436 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" 437 | }, 438 | "funding": [ 439 | { 440 | "url": "https://github.com/sebastianbergmann", 441 | "type": "github" 442 | } 443 | ], 444 | "time": "2021-12-02T12:48:52+00:00" 445 | }, 446 | { 447 | "name": "phpunit/php-invoker", 448 | "version": "3.1.1", 449 | "source": { 450 | "type": "git", 451 | "url": "https://github.com/sebastianbergmann/php-invoker.git", 452 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" 453 | }, 454 | "dist": { 455 | "type": "zip", 456 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", 457 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", 458 | "shasum": "" 459 | }, 460 | "require": { 461 | "php": ">=7.3" 462 | }, 463 | "require-dev": { 464 | "ext-pcntl": "*", 465 | "phpunit/phpunit": "^9.3" 466 | }, 467 | "suggest": { 468 | "ext-pcntl": "*" 469 | }, 470 | "type": "library", 471 | "extra": { 472 | "branch-alias": { 473 | "dev-master": "3.1-dev" 474 | } 475 | }, 476 | "autoload": { 477 | "classmap": [ 478 | "src/" 479 | ] 480 | }, 481 | "notification-url": "https://packagist.org/downloads/", 482 | "license": [ 483 | "BSD-3-Clause" 484 | ], 485 | "authors": [ 486 | { 487 | "name": "Sebastian Bergmann", 488 | "email": "sebastian@phpunit.de", 489 | "role": "lead" 490 | } 491 | ], 492 | "description": "Invoke callables with a timeout", 493 | "homepage": "https://github.com/sebastianbergmann/php-invoker/", 494 | "keywords": [ 495 | "process" 496 | ], 497 | "support": { 498 | "issues": "https://github.com/sebastianbergmann/php-invoker/issues", 499 | "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" 500 | }, 501 | "funding": [ 502 | { 503 | "url": "https://github.com/sebastianbergmann", 504 | "type": "github" 505 | } 506 | ], 507 | "time": "2020-09-28T05:58:55+00:00" 508 | }, 509 | { 510 | "name": "phpunit/php-text-template", 511 | "version": "2.0.4", 512 | "source": { 513 | "type": "git", 514 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 515 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" 516 | }, 517 | "dist": { 518 | "type": "zip", 519 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", 520 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", 521 | "shasum": "" 522 | }, 523 | "require": { 524 | "php": ">=7.3" 525 | }, 526 | "require-dev": { 527 | "phpunit/phpunit": "^9.3" 528 | }, 529 | "type": "library", 530 | "extra": { 531 | "branch-alias": { 532 | "dev-master": "2.0-dev" 533 | } 534 | }, 535 | "autoload": { 536 | "classmap": [ 537 | "src/" 538 | ] 539 | }, 540 | "notification-url": "https://packagist.org/downloads/", 541 | "license": [ 542 | "BSD-3-Clause" 543 | ], 544 | "authors": [ 545 | { 546 | "name": "Sebastian Bergmann", 547 | "email": "sebastian@phpunit.de", 548 | "role": "lead" 549 | } 550 | ], 551 | "description": "Simple template engine.", 552 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 553 | "keywords": [ 554 | "template" 555 | ], 556 | "support": { 557 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues", 558 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" 559 | }, 560 | "funding": [ 561 | { 562 | "url": "https://github.com/sebastianbergmann", 563 | "type": "github" 564 | } 565 | ], 566 | "time": "2020-10-26T05:33:50+00:00" 567 | }, 568 | { 569 | "name": "phpunit/php-timer", 570 | "version": "5.0.3", 571 | "source": { 572 | "type": "git", 573 | "url": "https://github.com/sebastianbergmann/php-timer.git", 574 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" 575 | }, 576 | "dist": { 577 | "type": "zip", 578 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", 579 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", 580 | "shasum": "" 581 | }, 582 | "require": { 583 | "php": ">=7.3" 584 | }, 585 | "require-dev": { 586 | "phpunit/phpunit": "^9.3" 587 | }, 588 | "type": "library", 589 | "extra": { 590 | "branch-alias": { 591 | "dev-master": "5.0-dev" 592 | } 593 | }, 594 | "autoload": { 595 | "classmap": [ 596 | "src/" 597 | ] 598 | }, 599 | "notification-url": "https://packagist.org/downloads/", 600 | "license": [ 601 | "BSD-3-Clause" 602 | ], 603 | "authors": [ 604 | { 605 | "name": "Sebastian Bergmann", 606 | "email": "sebastian@phpunit.de", 607 | "role": "lead" 608 | } 609 | ], 610 | "description": "Utility class for timing", 611 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 612 | "keywords": [ 613 | "timer" 614 | ], 615 | "support": { 616 | "issues": "https://github.com/sebastianbergmann/php-timer/issues", 617 | "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" 618 | }, 619 | "funding": [ 620 | { 621 | "url": "https://github.com/sebastianbergmann", 622 | "type": "github" 623 | } 624 | ], 625 | "time": "2020-10-26T13:16:10+00:00" 626 | }, 627 | { 628 | "name": "phpunit/phpunit", 629 | "version": "9.6.16", 630 | "source": { 631 | "type": "git", 632 | "url": "https://github.com/sebastianbergmann/phpunit.git", 633 | "reference": "3767b2c56ce02d01e3491046f33466a1ae60a37f" 634 | }, 635 | "dist": { 636 | "type": "zip", 637 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3767b2c56ce02d01e3491046f33466a1ae60a37f", 638 | "reference": "3767b2c56ce02d01e3491046f33466a1ae60a37f", 639 | "shasum": "" 640 | }, 641 | "require": { 642 | "doctrine/instantiator": "^1.3.1 || ^2", 643 | "ext-dom": "*", 644 | "ext-json": "*", 645 | "ext-libxml": "*", 646 | "ext-mbstring": "*", 647 | "ext-xml": "*", 648 | "ext-xmlwriter": "*", 649 | "myclabs/deep-copy": "^1.10.1", 650 | "phar-io/manifest": "^2.0.3", 651 | "phar-io/version": "^3.0.2", 652 | "php": ">=7.3", 653 | "phpunit/php-code-coverage": "^9.2.28", 654 | "phpunit/php-file-iterator": "^3.0.5", 655 | "phpunit/php-invoker": "^3.1.1", 656 | "phpunit/php-text-template": "^2.0.3", 657 | "phpunit/php-timer": "^5.0.2", 658 | "sebastian/cli-parser": "^1.0.1", 659 | "sebastian/code-unit": "^1.0.6", 660 | "sebastian/comparator": "^4.0.8", 661 | "sebastian/diff": "^4.0.3", 662 | "sebastian/environment": "^5.1.3", 663 | "sebastian/exporter": "^4.0.5", 664 | "sebastian/global-state": "^5.0.1", 665 | "sebastian/object-enumerator": "^4.0.3", 666 | "sebastian/resource-operations": "^3.0.3", 667 | "sebastian/type": "^3.2", 668 | "sebastian/version": "^3.0.2" 669 | }, 670 | "suggest": { 671 | "ext-soap": "To be able to generate mocks based on WSDL files", 672 | "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" 673 | }, 674 | "bin": [ 675 | "phpunit" 676 | ], 677 | "type": "library", 678 | "extra": { 679 | "branch-alias": { 680 | "dev-master": "9.6-dev" 681 | } 682 | }, 683 | "autoload": { 684 | "files": [ 685 | "src/Framework/Assert/Functions.php" 686 | ], 687 | "classmap": [ 688 | "src/" 689 | ] 690 | }, 691 | "notification-url": "https://packagist.org/downloads/", 692 | "license": [ 693 | "BSD-3-Clause" 694 | ], 695 | "authors": [ 696 | { 697 | "name": "Sebastian Bergmann", 698 | "email": "sebastian@phpunit.de", 699 | "role": "lead" 700 | } 701 | ], 702 | "description": "The PHP Unit Testing framework.", 703 | "homepage": "https://phpunit.de/", 704 | "keywords": [ 705 | "phpunit", 706 | "testing", 707 | "xunit" 708 | ], 709 | "support": { 710 | "issues": "https://github.com/sebastianbergmann/phpunit/issues", 711 | "security": "https://github.com/sebastianbergmann/phpunit/security/policy", 712 | "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.16" 713 | }, 714 | "funding": [ 715 | { 716 | "url": "https://phpunit.de/sponsors.html", 717 | "type": "custom" 718 | }, 719 | { 720 | "url": "https://github.com/sebastianbergmann", 721 | "type": "github" 722 | }, 723 | { 724 | "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", 725 | "type": "tidelift" 726 | } 727 | ], 728 | "time": "2024-01-19T07:03:14+00:00" 729 | }, 730 | { 731 | "name": "sebastian/cli-parser", 732 | "version": "1.0.1", 733 | "source": { 734 | "type": "git", 735 | "url": "https://github.com/sebastianbergmann/cli-parser.git", 736 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" 737 | }, 738 | "dist": { 739 | "type": "zip", 740 | "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", 741 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", 742 | "shasum": "" 743 | }, 744 | "require": { 745 | "php": ">=7.3" 746 | }, 747 | "require-dev": { 748 | "phpunit/phpunit": "^9.3" 749 | }, 750 | "type": "library", 751 | "extra": { 752 | "branch-alias": { 753 | "dev-master": "1.0-dev" 754 | } 755 | }, 756 | "autoload": { 757 | "classmap": [ 758 | "src/" 759 | ] 760 | }, 761 | "notification-url": "https://packagist.org/downloads/", 762 | "license": [ 763 | "BSD-3-Clause" 764 | ], 765 | "authors": [ 766 | { 767 | "name": "Sebastian Bergmann", 768 | "email": "sebastian@phpunit.de", 769 | "role": "lead" 770 | } 771 | ], 772 | "description": "Library for parsing CLI options", 773 | "homepage": "https://github.com/sebastianbergmann/cli-parser", 774 | "support": { 775 | "issues": "https://github.com/sebastianbergmann/cli-parser/issues", 776 | "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" 777 | }, 778 | "funding": [ 779 | { 780 | "url": "https://github.com/sebastianbergmann", 781 | "type": "github" 782 | } 783 | ], 784 | "time": "2020-09-28T06:08:49+00:00" 785 | }, 786 | { 787 | "name": "sebastian/code-unit", 788 | "version": "1.0.8", 789 | "source": { 790 | "type": "git", 791 | "url": "https://github.com/sebastianbergmann/code-unit.git", 792 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" 793 | }, 794 | "dist": { 795 | "type": "zip", 796 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", 797 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", 798 | "shasum": "" 799 | }, 800 | "require": { 801 | "php": ">=7.3" 802 | }, 803 | "require-dev": { 804 | "phpunit/phpunit": "^9.3" 805 | }, 806 | "type": "library", 807 | "extra": { 808 | "branch-alias": { 809 | "dev-master": "1.0-dev" 810 | } 811 | }, 812 | "autoload": { 813 | "classmap": [ 814 | "src/" 815 | ] 816 | }, 817 | "notification-url": "https://packagist.org/downloads/", 818 | "license": [ 819 | "BSD-3-Clause" 820 | ], 821 | "authors": [ 822 | { 823 | "name": "Sebastian Bergmann", 824 | "email": "sebastian@phpunit.de", 825 | "role": "lead" 826 | } 827 | ], 828 | "description": "Collection of value objects that represent the PHP code units", 829 | "homepage": "https://github.com/sebastianbergmann/code-unit", 830 | "support": { 831 | "issues": "https://github.com/sebastianbergmann/code-unit/issues", 832 | "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" 833 | }, 834 | "funding": [ 835 | { 836 | "url": "https://github.com/sebastianbergmann", 837 | "type": "github" 838 | } 839 | ], 840 | "time": "2020-10-26T13:08:54+00:00" 841 | }, 842 | { 843 | "name": "sebastian/code-unit-reverse-lookup", 844 | "version": "2.0.3", 845 | "source": { 846 | "type": "git", 847 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 848 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" 849 | }, 850 | "dist": { 851 | "type": "zip", 852 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", 853 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", 854 | "shasum": "" 855 | }, 856 | "require": { 857 | "php": ">=7.3" 858 | }, 859 | "require-dev": { 860 | "phpunit/phpunit": "^9.3" 861 | }, 862 | "type": "library", 863 | "extra": { 864 | "branch-alias": { 865 | "dev-master": "2.0-dev" 866 | } 867 | }, 868 | "autoload": { 869 | "classmap": [ 870 | "src/" 871 | ] 872 | }, 873 | "notification-url": "https://packagist.org/downloads/", 874 | "license": [ 875 | "BSD-3-Clause" 876 | ], 877 | "authors": [ 878 | { 879 | "name": "Sebastian Bergmann", 880 | "email": "sebastian@phpunit.de" 881 | } 882 | ], 883 | "description": "Looks up which function or method a line of code belongs to", 884 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 885 | "support": { 886 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", 887 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" 888 | }, 889 | "funding": [ 890 | { 891 | "url": "https://github.com/sebastianbergmann", 892 | "type": "github" 893 | } 894 | ], 895 | "time": "2020-09-28T05:30:19+00:00" 896 | }, 897 | { 898 | "name": "sebastian/comparator", 899 | "version": "4.0.8", 900 | "source": { 901 | "type": "git", 902 | "url": "https://github.com/sebastianbergmann/comparator.git", 903 | "reference": "fa0f136dd2334583309d32b62544682ee972b51a" 904 | }, 905 | "dist": { 906 | "type": "zip", 907 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", 908 | "reference": "fa0f136dd2334583309d32b62544682ee972b51a", 909 | "shasum": "" 910 | }, 911 | "require": { 912 | "php": ">=7.3", 913 | "sebastian/diff": "^4.0", 914 | "sebastian/exporter": "^4.0" 915 | }, 916 | "require-dev": { 917 | "phpunit/phpunit": "^9.3" 918 | }, 919 | "type": "library", 920 | "extra": { 921 | "branch-alias": { 922 | "dev-master": "4.0-dev" 923 | } 924 | }, 925 | "autoload": { 926 | "classmap": [ 927 | "src/" 928 | ] 929 | }, 930 | "notification-url": "https://packagist.org/downloads/", 931 | "license": [ 932 | "BSD-3-Clause" 933 | ], 934 | "authors": [ 935 | { 936 | "name": "Sebastian Bergmann", 937 | "email": "sebastian@phpunit.de" 938 | }, 939 | { 940 | "name": "Jeff Welch", 941 | "email": "whatthejeff@gmail.com" 942 | }, 943 | { 944 | "name": "Volker Dusch", 945 | "email": "github@wallbash.com" 946 | }, 947 | { 948 | "name": "Bernhard Schussek", 949 | "email": "bschussek@2bepublished.at" 950 | } 951 | ], 952 | "description": "Provides the functionality to compare PHP values for equality", 953 | "homepage": "https://github.com/sebastianbergmann/comparator", 954 | "keywords": [ 955 | "comparator", 956 | "compare", 957 | "equality" 958 | ], 959 | "support": { 960 | "issues": "https://github.com/sebastianbergmann/comparator/issues", 961 | "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" 962 | }, 963 | "funding": [ 964 | { 965 | "url": "https://github.com/sebastianbergmann", 966 | "type": "github" 967 | } 968 | ], 969 | "time": "2022-09-14T12:41:17+00:00" 970 | }, 971 | { 972 | "name": "sebastian/complexity", 973 | "version": "2.0.3", 974 | "source": { 975 | "type": "git", 976 | "url": "https://github.com/sebastianbergmann/complexity.git", 977 | "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" 978 | }, 979 | "dist": { 980 | "type": "zip", 981 | "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", 982 | "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", 983 | "shasum": "" 984 | }, 985 | "require": { 986 | "nikic/php-parser": "^4.18 || ^5.0", 987 | "php": ">=7.3" 988 | }, 989 | "require-dev": { 990 | "phpunit/phpunit": "^9.3" 991 | }, 992 | "type": "library", 993 | "extra": { 994 | "branch-alias": { 995 | "dev-master": "2.0-dev" 996 | } 997 | }, 998 | "autoload": { 999 | "classmap": [ 1000 | "src/" 1001 | ] 1002 | }, 1003 | "notification-url": "https://packagist.org/downloads/", 1004 | "license": [ 1005 | "BSD-3-Clause" 1006 | ], 1007 | "authors": [ 1008 | { 1009 | "name": "Sebastian Bergmann", 1010 | "email": "sebastian@phpunit.de", 1011 | "role": "lead" 1012 | } 1013 | ], 1014 | "description": "Library for calculating the complexity of PHP code units", 1015 | "homepage": "https://github.com/sebastianbergmann/complexity", 1016 | "support": { 1017 | "issues": "https://github.com/sebastianbergmann/complexity/issues", 1018 | "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" 1019 | }, 1020 | "funding": [ 1021 | { 1022 | "url": "https://github.com/sebastianbergmann", 1023 | "type": "github" 1024 | } 1025 | ], 1026 | "time": "2023-12-22T06:19:30+00:00" 1027 | }, 1028 | { 1029 | "name": "sebastian/diff", 1030 | "version": "4.0.5", 1031 | "source": { 1032 | "type": "git", 1033 | "url": "https://github.com/sebastianbergmann/diff.git", 1034 | "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" 1035 | }, 1036 | "dist": { 1037 | "type": "zip", 1038 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", 1039 | "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", 1040 | "shasum": "" 1041 | }, 1042 | "require": { 1043 | "php": ">=7.3" 1044 | }, 1045 | "require-dev": { 1046 | "phpunit/phpunit": "^9.3", 1047 | "symfony/process": "^4.2 || ^5" 1048 | }, 1049 | "type": "library", 1050 | "extra": { 1051 | "branch-alias": { 1052 | "dev-master": "4.0-dev" 1053 | } 1054 | }, 1055 | "autoload": { 1056 | "classmap": [ 1057 | "src/" 1058 | ] 1059 | }, 1060 | "notification-url": "https://packagist.org/downloads/", 1061 | "license": [ 1062 | "BSD-3-Clause" 1063 | ], 1064 | "authors": [ 1065 | { 1066 | "name": "Sebastian Bergmann", 1067 | "email": "sebastian@phpunit.de" 1068 | }, 1069 | { 1070 | "name": "Kore Nordmann", 1071 | "email": "mail@kore-nordmann.de" 1072 | } 1073 | ], 1074 | "description": "Diff implementation", 1075 | "homepage": "https://github.com/sebastianbergmann/diff", 1076 | "keywords": [ 1077 | "diff", 1078 | "udiff", 1079 | "unidiff", 1080 | "unified diff" 1081 | ], 1082 | "support": { 1083 | "issues": "https://github.com/sebastianbergmann/diff/issues", 1084 | "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" 1085 | }, 1086 | "funding": [ 1087 | { 1088 | "url": "https://github.com/sebastianbergmann", 1089 | "type": "github" 1090 | } 1091 | ], 1092 | "time": "2023-05-07T05:35:17+00:00" 1093 | }, 1094 | { 1095 | "name": "sebastian/environment", 1096 | "version": "5.1.5", 1097 | "source": { 1098 | "type": "git", 1099 | "url": "https://github.com/sebastianbergmann/environment.git", 1100 | "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" 1101 | }, 1102 | "dist": { 1103 | "type": "zip", 1104 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", 1105 | "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", 1106 | "shasum": "" 1107 | }, 1108 | "require": { 1109 | "php": ">=7.3" 1110 | }, 1111 | "require-dev": { 1112 | "phpunit/phpunit": "^9.3" 1113 | }, 1114 | "suggest": { 1115 | "ext-posix": "*" 1116 | }, 1117 | "type": "library", 1118 | "extra": { 1119 | "branch-alias": { 1120 | "dev-master": "5.1-dev" 1121 | } 1122 | }, 1123 | "autoload": { 1124 | "classmap": [ 1125 | "src/" 1126 | ] 1127 | }, 1128 | "notification-url": "https://packagist.org/downloads/", 1129 | "license": [ 1130 | "BSD-3-Clause" 1131 | ], 1132 | "authors": [ 1133 | { 1134 | "name": "Sebastian Bergmann", 1135 | "email": "sebastian@phpunit.de" 1136 | } 1137 | ], 1138 | "description": "Provides functionality to handle HHVM/PHP environments", 1139 | "homepage": "http://www.github.com/sebastianbergmann/environment", 1140 | "keywords": [ 1141 | "Xdebug", 1142 | "environment", 1143 | "hhvm" 1144 | ], 1145 | "support": { 1146 | "issues": "https://github.com/sebastianbergmann/environment/issues", 1147 | "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" 1148 | }, 1149 | "funding": [ 1150 | { 1151 | "url": "https://github.com/sebastianbergmann", 1152 | "type": "github" 1153 | } 1154 | ], 1155 | "time": "2023-02-03T06:03:51+00:00" 1156 | }, 1157 | { 1158 | "name": "sebastian/exporter", 1159 | "version": "4.0.5", 1160 | "source": { 1161 | "type": "git", 1162 | "url": "https://github.com/sebastianbergmann/exporter.git", 1163 | "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" 1164 | }, 1165 | "dist": { 1166 | "type": "zip", 1167 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", 1168 | "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", 1169 | "shasum": "" 1170 | }, 1171 | "require": { 1172 | "php": ">=7.3", 1173 | "sebastian/recursion-context": "^4.0" 1174 | }, 1175 | "require-dev": { 1176 | "ext-mbstring": "*", 1177 | "phpunit/phpunit": "^9.3" 1178 | }, 1179 | "type": "library", 1180 | "extra": { 1181 | "branch-alias": { 1182 | "dev-master": "4.0-dev" 1183 | } 1184 | }, 1185 | "autoload": { 1186 | "classmap": [ 1187 | "src/" 1188 | ] 1189 | }, 1190 | "notification-url": "https://packagist.org/downloads/", 1191 | "license": [ 1192 | "BSD-3-Clause" 1193 | ], 1194 | "authors": [ 1195 | { 1196 | "name": "Sebastian Bergmann", 1197 | "email": "sebastian@phpunit.de" 1198 | }, 1199 | { 1200 | "name": "Jeff Welch", 1201 | "email": "whatthejeff@gmail.com" 1202 | }, 1203 | { 1204 | "name": "Volker Dusch", 1205 | "email": "github@wallbash.com" 1206 | }, 1207 | { 1208 | "name": "Adam Harvey", 1209 | "email": "aharvey@php.net" 1210 | }, 1211 | { 1212 | "name": "Bernhard Schussek", 1213 | "email": "bschussek@gmail.com" 1214 | } 1215 | ], 1216 | "description": "Provides the functionality to export PHP variables for visualization", 1217 | "homepage": "https://www.github.com/sebastianbergmann/exporter", 1218 | "keywords": [ 1219 | "export", 1220 | "exporter" 1221 | ], 1222 | "support": { 1223 | "issues": "https://github.com/sebastianbergmann/exporter/issues", 1224 | "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" 1225 | }, 1226 | "funding": [ 1227 | { 1228 | "url": "https://github.com/sebastianbergmann", 1229 | "type": "github" 1230 | } 1231 | ], 1232 | "time": "2022-09-14T06:03:37+00:00" 1233 | }, 1234 | { 1235 | "name": "sebastian/global-state", 1236 | "version": "5.0.6", 1237 | "source": { 1238 | "type": "git", 1239 | "url": "https://github.com/sebastianbergmann/global-state.git", 1240 | "reference": "bde739e7565280bda77be70044ac1047bc007e34" 1241 | }, 1242 | "dist": { 1243 | "type": "zip", 1244 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", 1245 | "reference": "bde739e7565280bda77be70044ac1047bc007e34", 1246 | "shasum": "" 1247 | }, 1248 | "require": { 1249 | "php": ">=7.3", 1250 | "sebastian/object-reflector": "^2.0", 1251 | "sebastian/recursion-context": "^4.0" 1252 | }, 1253 | "require-dev": { 1254 | "ext-dom": "*", 1255 | "phpunit/phpunit": "^9.3" 1256 | }, 1257 | "suggest": { 1258 | "ext-uopz": "*" 1259 | }, 1260 | "type": "library", 1261 | "extra": { 1262 | "branch-alias": { 1263 | "dev-master": "5.0-dev" 1264 | } 1265 | }, 1266 | "autoload": { 1267 | "classmap": [ 1268 | "src/" 1269 | ] 1270 | }, 1271 | "notification-url": "https://packagist.org/downloads/", 1272 | "license": [ 1273 | "BSD-3-Clause" 1274 | ], 1275 | "authors": [ 1276 | { 1277 | "name": "Sebastian Bergmann", 1278 | "email": "sebastian@phpunit.de" 1279 | } 1280 | ], 1281 | "description": "Snapshotting of global state", 1282 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1283 | "keywords": [ 1284 | "global state" 1285 | ], 1286 | "support": { 1287 | "issues": "https://github.com/sebastianbergmann/global-state/issues", 1288 | "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" 1289 | }, 1290 | "funding": [ 1291 | { 1292 | "url": "https://github.com/sebastianbergmann", 1293 | "type": "github" 1294 | } 1295 | ], 1296 | "time": "2023-08-02T09:26:13+00:00" 1297 | }, 1298 | { 1299 | "name": "sebastian/lines-of-code", 1300 | "version": "1.0.4", 1301 | "source": { 1302 | "type": "git", 1303 | "url": "https://github.com/sebastianbergmann/lines-of-code.git", 1304 | "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" 1305 | }, 1306 | "dist": { 1307 | "type": "zip", 1308 | "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", 1309 | "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", 1310 | "shasum": "" 1311 | }, 1312 | "require": { 1313 | "nikic/php-parser": "^4.18 || ^5.0", 1314 | "php": ">=7.3" 1315 | }, 1316 | "require-dev": { 1317 | "phpunit/phpunit": "^9.3" 1318 | }, 1319 | "type": "library", 1320 | "extra": { 1321 | "branch-alias": { 1322 | "dev-master": "1.0-dev" 1323 | } 1324 | }, 1325 | "autoload": { 1326 | "classmap": [ 1327 | "src/" 1328 | ] 1329 | }, 1330 | "notification-url": "https://packagist.org/downloads/", 1331 | "license": [ 1332 | "BSD-3-Clause" 1333 | ], 1334 | "authors": [ 1335 | { 1336 | "name": "Sebastian Bergmann", 1337 | "email": "sebastian@phpunit.de", 1338 | "role": "lead" 1339 | } 1340 | ], 1341 | "description": "Library for counting the lines of code in PHP source code", 1342 | "homepage": "https://github.com/sebastianbergmann/lines-of-code", 1343 | "support": { 1344 | "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", 1345 | "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" 1346 | }, 1347 | "funding": [ 1348 | { 1349 | "url": "https://github.com/sebastianbergmann", 1350 | "type": "github" 1351 | } 1352 | ], 1353 | "time": "2023-12-22T06:20:34+00:00" 1354 | }, 1355 | { 1356 | "name": "sebastian/object-enumerator", 1357 | "version": "4.0.4", 1358 | "source": { 1359 | "type": "git", 1360 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 1361 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" 1362 | }, 1363 | "dist": { 1364 | "type": "zip", 1365 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", 1366 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", 1367 | "shasum": "" 1368 | }, 1369 | "require": { 1370 | "php": ">=7.3", 1371 | "sebastian/object-reflector": "^2.0", 1372 | "sebastian/recursion-context": "^4.0" 1373 | }, 1374 | "require-dev": { 1375 | "phpunit/phpunit": "^9.3" 1376 | }, 1377 | "type": "library", 1378 | "extra": { 1379 | "branch-alias": { 1380 | "dev-master": "4.0-dev" 1381 | } 1382 | }, 1383 | "autoload": { 1384 | "classmap": [ 1385 | "src/" 1386 | ] 1387 | }, 1388 | "notification-url": "https://packagist.org/downloads/", 1389 | "license": [ 1390 | "BSD-3-Clause" 1391 | ], 1392 | "authors": [ 1393 | { 1394 | "name": "Sebastian Bergmann", 1395 | "email": "sebastian@phpunit.de" 1396 | } 1397 | ], 1398 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 1399 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 1400 | "support": { 1401 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", 1402 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" 1403 | }, 1404 | "funding": [ 1405 | { 1406 | "url": "https://github.com/sebastianbergmann", 1407 | "type": "github" 1408 | } 1409 | ], 1410 | "time": "2020-10-26T13:12:34+00:00" 1411 | }, 1412 | { 1413 | "name": "sebastian/object-reflector", 1414 | "version": "2.0.4", 1415 | "source": { 1416 | "type": "git", 1417 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 1418 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" 1419 | }, 1420 | "dist": { 1421 | "type": "zip", 1422 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", 1423 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", 1424 | "shasum": "" 1425 | }, 1426 | "require": { 1427 | "php": ">=7.3" 1428 | }, 1429 | "require-dev": { 1430 | "phpunit/phpunit": "^9.3" 1431 | }, 1432 | "type": "library", 1433 | "extra": { 1434 | "branch-alias": { 1435 | "dev-master": "2.0-dev" 1436 | } 1437 | }, 1438 | "autoload": { 1439 | "classmap": [ 1440 | "src/" 1441 | ] 1442 | }, 1443 | "notification-url": "https://packagist.org/downloads/", 1444 | "license": [ 1445 | "BSD-3-Clause" 1446 | ], 1447 | "authors": [ 1448 | { 1449 | "name": "Sebastian Bergmann", 1450 | "email": "sebastian@phpunit.de" 1451 | } 1452 | ], 1453 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 1454 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 1455 | "support": { 1456 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues", 1457 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" 1458 | }, 1459 | "funding": [ 1460 | { 1461 | "url": "https://github.com/sebastianbergmann", 1462 | "type": "github" 1463 | } 1464 | ], 1465 | "time": "2020-10-26T13:14:26+00:00" 1466 | }, 1467 | { 1468 | "name": "sebastian/recursion-context", 1469 | "version": "4.0.5", 1470 | "source": { 1471 | "type": "git", 1472 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 1473 | "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" 1474 | }, 1475 | "dist": { 1476 | "type": "zip", 1477 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", 1478 | "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", 1479 | "shasum": "" 1480 | }, 1481 | "require": { 1482 | "php": ">=7.3" 1483 | }, 1484 | "require-dev": { 1485 | "phpunit/phpunit": "^9.3" 1486 | }, 1487 | "type": "library", 1488 | "extra": { 1489 | "branch-alias": { 1490 | "dev-master": "4.0-dev" 1491 | } 1492 | }, 1493 | "autoload": { 1494 | "classmap": [ 1495 | "src/" 1496 | ] 1497 | }, 1498 | "notification-url": "https://packagist.org/downloads/", 1499 | "license": [ 1500 | "BSD-3-Clause" 1501 | ], 1502 | "authors": [ 1503 | { 1504 | "name": "Sebastian Bergmann", 1505 | "email": "sebastian@phpunit.de" 1506 | }, 1507 | { 1508 | "name": "Jeff Welch", 1509 | "email": "whatthejeff@gmail.com" 1510 | }, 1511 | { 1512 | "name": "Adam Harvey", 1513 | "email": "aharvey@php.net" 1514 | } 1515 | ], 1516 | "description": "Provides functionality to recursively process PHP variables", 1517 | "homepage": "https://github.com/sebastianbergmann/recursion-context", 1518 | "support": { 1519 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues", 1520 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" 1521 | }, 1522 | "funding": [ 1523 | { 1524 | "url": "https://github.com/sebastianbergmann", 1525 | "type": "github" 1526 | } 1527 | ], 1528 | "time": "2023-02-03T06:07:39+00:00" 1529 | }, 1530 | { 1531 | "name": "sebastian/resource-operations", 1532 | "version": "3.0.3", 1533 | "source": { 1534 | "type": "git", 1535 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 1536 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" 1537 | }, 1538 | "dist": { 1539 | "type": "zip", 1540 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", 1541 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", 1542 | "shasum": "" 1543 | }, 1544 | "require": { 1545 | "php": ">=7.3" 1546 | }, 1547 | "require-dev": { 1548 | "phpunit/phpunit": "^9.0" 1549 | }, 1550 | "type": "library", 1551 | "extra": { 1552 | "branch-alias": { 1553 | "dev-master": "3.0-dev" 1554 | } 1555 | }, 1556 | "autoload": { 1557 | "classmap": [ 1558 | "src/" 1559 | ] 1560 | }, 1561 | "notification-url": "https://packagist.org/downloads/", 1562 | "license": [ 1563 | "BSD-3-Clause" 1564 | ], 1565 | "authors": [ 1566 | { 1567 | "name": "Sebastian Bergmann", 1568 | "email": "sebastian@phpunit.de" 1569 | } 1570 | ], 1571 | "description": "Provides a list of PHP built-in functions that operate on resources", 1572 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 1573 | "support": { 1574 | "issues": "https://github.com/sebastianbergmann/resource-operations/issues", 1575 | "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" 1576 | }, 1577 | "funding": [ 1578 | { 1579 | "url": "https://github.com/sebastianbergmann", 1580 | "type": "github" 1581 | } 1582 | ], 1583 | "time": "2020-09-28T06:45:17+00:00" 1584 | }, 1585 | { 1586 | "name": "sebastian/type", 1587 | "version": "3.2.1", 1588 | "source": { 1589 | "type": "git", 1590 | "url": "https://github.com/sebastianbergmann/type.git", 1591 | "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" 1592 | }, 1593 | "dist": { 1594 | "type": "zip", 1595 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", 1596 | "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", 1597 | "shasum": "" 1598 | }, 1599 | "require": { 1600 | "php": ">=7.3" 1601 | }, 1602 | "require-dev": { 1603 | "phpunit/phpunit": "^9.5" 1604 | }, 1605 | "type": "library", 1606 | "extra": { 1607 | "branch-alias": { 1608 | "dev-master": "3.2-dev" 1609 | } 1610 | }, 1611 | "autoload": { 1612 | "classmap": [ 1613 | "src/" 1614 | ] 1615 | }, 1616 | "notification-url": "https://packagist.org/downloads/", 1617 | "license": [ 1618 | "BSD-3-Clause" 1619 | ], 1620 | "authors": [ 1621 | { 1622 | "name": "Sebastian Bergmann", 1623 | "email": "sebastian@phpunit.de", 1624 | "role": "lead" 1625 | } 1626 | ], 1627 | "description": "Collection of value objects that represent the types of the PHP type system", 1628 | "homepage": "https://github.com/sebastianbergmann/type", 1629 | "support": { 1630 | "issues": "https://github.com/sebastianbergmann/type/issues", 1631 | "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" 1632 | }, 1633 | "funding": [ 1634 | { 1635 | "url": "https://github.com/sebastianbergmann", 1636 | "type": "github" 1637 | } 1638 | ], 1639 | "time": "2023-02-03T06:13:03+00:00" 1640 | }, 1641 | { 1642 | "name": "sebastian/version", 1643 | "version": "3.0.2", 1644 | "source": { 1645 | "type": "git", 1646 | "url": "https://github.com/sebastianbergmann/version.git", 1647 | "reference": "c6c1022351a901512170118436c764e473f6de8c" 1648 | }, 1649 | "dist": { 1650 | "type": "zip", 1651 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", 1652 | "reference": "c6c1022351a901512170118436c764e473f6de8c", 1653 | "shasum": "" 1654 | }, 1655 | "require": { 1656 | "php": ">=7.3" 1657 | }, 1658 | "type": "library", 1659 | "extra": { 1660 | "branch-alias": { 1661 | "dev-master": "3.0-dev" 1662 | } 1663 | }, 1664 | "autoload": { 1665 | "classmap": [ 1666 | "src/" 1667 | ] 1668 | }, 1669 | "notification-url": "https://packagist.org/downloads/", 1670 | "license": [ 1671 | "BSD-3-Clause" 1672 | ], 1673 | "authors": [ 1674 | { 1675 | "name": "Sebastian Bergmann", 1676 | "email": "sebastian@phpunit.de", 1677 | "role": "lead" 1678 | } 1679 | ], 1680 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 1681 | "homepage": "https://github.com/sebastianbergmann/version", 1682 | "support": { 1683 | "issues": "https://github.com/sebastianbergmann/version/issues", 1684 | "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" 1685 | }, 1686 | "funding": [ 1687 | { 1688 | "url": "https://github.com/sebastianbergmann", 1689 | "type": "github" 1690 | } 1691 | ], 1692 | "time": "2020-09-28T06:39:44+00:00" 1693 | }, 1694 | { 1695 | "name": "theseer/tokenizer", 1696 | "version": "1.2.2", 1697 | "source": { 1698 | "type": "git", 1699 | "url": "https://github.com/theseer/tokenizer.git", 1700 | "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" 1701 | }, 1702 | "dist": { 1703 | "type": "zip", 1704 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", 1705 | "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", 1706 | "shasum": "" 1707 | }, 1708 | "require": { 1709 | "ext-dom": "*", 1710 | "ext-tokenizer": "*", 1711 | "ext-xmlwriter": "*", 1712 | "php": "^7.2 || ^8.0" 1713 | }, 1714 | "type": "library", 1715 | "autoload": { 1716 | "classmap": [ 1717 | "src/" 1718 | ] 1719 | }, 1720 | "notification-url": "https://packagist.org/downloads/", 1721 | "license": [ 1722 | "BSD-3-Clause" 1723 | ], 1724 | "authors": [ 1725 | { 1726 | "name": "Arne Blankerts", 1727 | "email": "arne@blankerts.de", 1728 | "role": "Developer" 1729 | } 1730 | ], 1731 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 1732 | "support": { 1733 | "issues": "https://github.com/theseer/tokenizer/issues", 1734 | "source": "https://github.com/theseer/tokenizer/tree/1.2.2" 1735 | }, 1736 | "funding": [ 1737 | { 1738 | "url": "https://github.com/theseer", 1739 | "type": "github" 1740 | } 1741 | ], 1742 | "time": "2023-11-20T00:12:19+00:00" 1743 | } 1744 | ], 1745 | "aliases": [], 1746 | "minimum-stability": "stable", 1747 | "stability-flags": [], 1748 | "prefer-stable": false, 1749 | "prefer-lowest": false, 1750 | "platform": [], 1751 | "platform-dev": { 1752 | "ext-curl": "*", 1753 | "ext-dom": "*", 1754 | "ext-json": "*", 1755 | "ext-sqlite3": "*" 1756 | }, 1757 | "plugin-api-version": "2.3.0" 1758 | } 1759 | -------------------------------------------------------------------------------- /src/EnvGreeter.php: -------------------------------------------------------------------------------- 1 | greet($name); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Greeter.php: -------------------------------------------------------------------------------- 1 | greetFromEnv("TEST_NAME") 18 | ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/GreeterTest.php: -------------------------------------------------------------------------------- 1 | greet() 12 | ); 13 | } 14 | 15 | public function testGreeterUsesName() { 16 | $greeter = new Greeter(); 17 | 18 | self::assertStringContainsString( 19 | "Hello, Cody", 20 | $greeter->greet("Cody") 21 | ); 22 | self::assertStringContainsString( 23 | "Hello, Sarah", 24 | $greeter->greet("Sarah") 25 | ); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ../../src 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | . 15 | 16 | 17 | 18 | 19 | --------------------------------------------------------------------------------