diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 28191bd..bfdd659 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -12,8 +12,13 @@ jobs:
strategy:
fail-fast: false
matrix:
- php: ['7.4']
- prefer-lowest: ['', '--prefer-lowest']
+ php: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5']
+ prefer-lowest: ['']
+ # The lowest supported dependencies (e.g. doctrine/dbal ^2.5) predate
+ # PHP 8 support, so only exercise --prefer-lowest on the minimum PHP.
+ include:
+ - php: '7.4'
+ prefer-lowest: '--prefer-lowest'
steps:
- uses: actions/checkout@v4
@@ -21,7 +26,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
- coverage: pcov
+ coverage: none
tools: composer:v2
- name: Get composer cache directory
@@ -47,16 +52,7 @@ jobs:
run: vendor/bin/phpcs -p --warning-severity=0 src/ tests/
- name: Run phpunit
- run: vendor/bin/phpunit --coverage-clover=./tests/report/coverage.clover
-
- - name: Upload coverage to Scrutinizer
- if: matrix.php == '7.4' && matrix.prefer-lowest == '' && github.event_name == 'push'
- continue-on-error: true
- run: |
- if [ -f ./tests/report/coverage.clover ]; then
- wget https://scrutinizer-ci.com/ocular.phar
- php ocular.phar code-coverage:upload --format=php-clover ./tests/report/coverage.clover
- fi
+ run: vendor/bin/phpunit
functional:
name: Functional tests
diff --git a/README.md b/README.md
index f5e0963..2645dd6 100644
--- a/README.md
+++ b/README.md
@@ -2,14 +2,9 @@
[](https://packagist.org/packages/graze/morphism)
[](LICENSE.md)
-[](https://travis-ci.org/graze/morphism)
-[](https://scrutinizer-ci.com/g/graze/morphism/code-structure)
-[](https://scrutinizer-ci.com/g/graze/morphism)
+[](https://github.com/graze/morphism/actions/workflows/ci.yml)
[](https://packagist.org/packages/graze/morphism)
[](https://php.net)
-[](https://microbadger.com/images/graze/morphism)
-
-
This package provides a set of tools for parsing, extracting, and diffing mysqldump
files.
@@ -192,7 +187,6 @@ CREATE TABLE `product_dimensions` (
$ make test
```
-
## Security
If you discover any security related issues, please email security@graze.com instead of using the issue tracker.
diff --git a/composer.json b/composer.json
index fade82c..3a23100 100644
--- a/composer.json
+++ b/composer.json
@@ -29,18 +29,18 @@
}
],
"require": {
- "php": "^7.4",
+ "php": "^7.4 || ^8.0",
"doctrine/dbal": "^2.5",
"symfony/console": "^5",
"symfony/yaml": "^5"
},
"require-dev": {
- "graze/standards": "^2.0",
- "mockery/mockery": "^1.2",
- "phpunit/phpunit": "^8",
- "squizlabs/php_codesniffer": "^3.5.0",
- "symfony/var-dumper": "^4.2"
+ "graze/standards": "^3.0",
+ "mockery/mockery": "^1.6",
+ "phpunit/phpunit": "^9",
+ "squizlabs/php_codesniffer": "^4.0",
+ "symfony/var-dumper": "^4.2 || ^5.0"
},
"autoload": {
"psr-4": {
diff --git a/composer.lock b/composer.lock
index 098bc85..96eaad9 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "ebf03580b2068861621859d337cd6297",
+ "content-hash": "cdde474d4a5f11f0ca3b349d4c16d7f2",
"packages": [
{
"name": "doctrine/cache",
@@ -1233,16 +1233,16 @@
},
{
"name": "symfony/yaml",
- "version": "v5.4.52",
+ "version": "v5.4.53",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "b0b27055f055f0d314c5c68ed0c10f0bbd90aee0"
+ "reference": "ae0bbb46f77ff56591d0a0259c7f458f4b3e1f77"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/b0b27055f055f0d314c5c68ed0c10f0bbd90aee0",
- "reference": "b0b27055f055f0d314c5c68ed0c10f0bbd90aee0",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/ae0bbb46f77ff56591d0a0259c7f458f4b3e1f77",
+ "reference": "ae0bbb46f77ff56591d0a0259c7f458f4b3e1f77",
"shasum": ""
},
"require": {
@@ -1288,7 +1288,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v5.4.52"
+ "source": "https://github.com/symfony/yaml/tree/v5.4.53"
},
"funding": [
{
@@ -1308,7 +1308,7 @@
"type": "tidelift"
}
],
- "time": "2026-05-15T06:40:16+00:00"
+ "time": "2026-05-20T17:13:41+00:00"
}
],
"packages-dev": [
@@ -1384,20 +1384,23 @@
},
{
"name": "graze/standards",
- "version": "v2.0.5",
+ "version": "v3.0.0",
"source": {
"type": "git",
"url": "https://github.com/graze/standards.git",
- "reference": "eac7737b0ca12c31d98987c981ce39448dd789c8"
+ "reference": "df8a5d9f9c2b921610e8337d925afe755b6f92b4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/graze/standards/zipball/eac7737b0ca12c31d98987c981ce39448dd789c8",
- "reference": "eac7737b0ca12c31d98987c981ce39448dd789c8",
+ "url": "https://api.github.com/repos/graze/standards/zipball/df8a5d9f9c2b921610e8337d925afe755b6f92b4",
+ "reference": "df8a5d9f9c2b921610e8337d925afe755b6f92b4",
"shasum": ""
},
+ "require": {
+ "php": ">=7.2"
+ },
"require-dev": {
- "squizlabs/php_codesniffer": "^3.0"
+ "squizlabs/php_codesniffer": "^4.0"
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
@@ -1419,9 +1422,9 @@
],
"support": {
"issues": "https://github.com/graze/standards/issues",
- "source": "https://github.com/graze/standards/tree/v2.0.5"
+ "source": "https://github.com/graze/standards/tree/v3.0.0"
},
- "time": "2020-08-18T15:43:31+00:00"
+ "time": "2026-05-28T10:14:05+00:00"
},
{
"name": "hamcrest/hamcrest-php",
@@ -1617,6 +1620,64 @@
],
"time": "2025-08-01T08:46:24+00:00"
},
+ {
+ "name": "nikic/php-parser",
+ "version": "v5.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82",
+ "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "php": ">=7.4"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0"
+ },
+ "time": "2025-12-06T11:56:16+00:00"
+ },
{
"name": "phar-io/manifest",
"version": "2.0.4",
@@ -1737,40 +1798,44 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "7.0.17",
+ "version": "9.2.32",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "40a4ed114a4aea5afd6df8d0f0c9cd3033097f66"
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/40a4ed114a4aea5afd6df8d0f0c9cd3033097f66",
- "reference": "40a4ed114a4aea5afd6df8d0f0c9cd3033097f66",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-libxml": "*",
"ext-xmlwriter": "*",
- "php": ">=7.2",
- "phpunit/php-file-iterator": "^2.0.2",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-token-stream": "^3.1.3 || ^4.0",
- "sebastian/code-unit-reverse-lookup": "^1.0.1",
- "sebastian/environment": "^4.2.2",
- "sebastian/version": "^2.0.1",
- "theseer/tokenizer": "^1.1.3"
+ "nikic/php-parser": "^4.19.1 || ^5.1.0",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-text-template": "^2.0.4",
+ "sebastian/code-unit-reverse-lookup": "^2.0.3",
+ "sebastian/complexity": "^2.0.3",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/lines-of-code": "^1.0.4",
+ "sebastian/version": "^3.0.2",
+ "theseer/tokenizer": "^1.2.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.2.2"
+ "phpunit/phpunit": "^9.6"
},
"suggest": {
- "ext-xdebug": "^2.7.2"
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "7.0-dev"
+ "dev-main": "9.2.x-dev"
}
},
"autoload": {
@@ -1798,7 +1863,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.17"
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32"
},
"funding": [
{
@@ -1806,32 +1872,32 @@
"type": "github"
}
],
- "time": "2024-03-02T06:09:37+00:00"
+ "time": "2024-08-22T04:23:01+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "2.0.6",
+ "version": "3.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "69deeb8664f611f156a924154985fbd4911eb36b"
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/69deeb8664f611f156a924154985fbd4911eb36b",
- "reference": "69deeb8664f611f156a924154985fbd4911eb36b",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.5"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -1858,7 +1924,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.6"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
},
"funding": [
{
@@ -1866,26 +1932,38 @@
"type": "github"
}
],
- "time": "2024-03-01T13:39:50+00:00"
+ "time": "2021-12-02T12:48:52+00:00"
},
{
- "name": "phpunit/php-text-template",
- "version": "1.2.1",
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
"autoload": {
"classmap": [
"src/"
@@ -1902,41 +1980,47 @@
"role": "lead"
}
],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
"keywords": [
- "template"
+ "process"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1"
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
},
- "time": "2015-06-21T13:50:34+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:58:55+00:00"
},
{
- "name": "phpunit/php-timer",
- "version": "2.1.4",
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb"
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/a691211e94ff39a34811abd521c31bd5b305b0bb",
- "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.5"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -1955,14 +2039,14 @@
"role": "lead"
}
],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
"keywords": [
- "timer"
+ "template"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.4"
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
},
"funding": [
{
@@ -1970,33 +2054,32 @@
"type": "github"
}
],
- "time": "2024-03-01T13:42:41+00:00"
+ "time": "2020-10-26T05:33:50+00:00"
},
{
- "name": "phpunit/php-token-stream",
- "version": "4.0.4",
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3"
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3",
- "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
"shasum": ""
},
"require": {
- "ext-tokenizer": "*",
- "php": "^7.3 || ^8.0"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^9.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -2011,17 +2094,18 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Wrapper around PHP's tokenizer extension.",
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
"keywords": [
- "tokenizer"
+ "timer"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/php-token-stream/issues",
- "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master"
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
},
"funding": [
{
@@ -2029,25 +2113,24 @@
"type": "github"
}
],
- "abandoned": true,
- "time": "2020-08-04T08:28:15+00:00"
+ "time": "2020-10-26T13:16:10+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "8.5.52",
+ "version": "9.6.34",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "1015741814413c156abb0f53d7db7bbd03c6e858"
+ "reference": "b36f02317466907a230d3aa1d34467041271ef4a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1015741814413c156abb0f53d7db7bbd03c6e858",
- "reference": "1015741814413c156abb0f53d7db7bbd03c6e858",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b36f02317466907a230d3aa1d34467041271ef4a",
+ "reference": "b36f02317466907a230d3aa1d34467041271ef4a",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.5.0",
+ "doctrine/instantiator": "^1.5.0 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
@@ -2057,25 +2140,27 @@
"myclabs/deep-copy": "^1.13.4",
"phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1",
- "php": ">=7.2",
- "phpunit/php-code-coverage": "^7.0.17",
- "phpunit/php-file-iterator": "^2.0.6",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-timer": "^2.1.4",
- "sebastian/comparator": "^3.0.7",
- "sebastian/diff": "^3.0.6",
- "sebastian/environment": "^4.2.5",
- "sebastian/exporter": "^3.1.8",
- "sebastian/global-state": "^3.0.6",
- "sebastian/object-enumerator": "^3.0.5",
- "sebastian/resource-operations": "^2.0.3",
- "sebastian/type": "^1.1.5",
- "sebastian/version": "^2.0.1"
+ "php": ">=7.3",
+ "phpunit/php-code-coverage": "^9.2.32",
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-invoker": "^3.1.1",
+ "phpunit/php-text-template": "^2.0.4",
+ "phpunit/php-timer": "^5.0.3",
+ "sebastian/cli-parser": "^1.0.2",
+ "sebastian/code-unit": "^1.0.8",
+ "sebastian/comparator": "^4.0.10",
+ "sebastian/diff": "^4.0.6",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/exporter": "^4.0.8",
+ "sebastian/global-state": "^5.0.8",
+ "sebastian/object-enumerator": "^4.0.4",
+ "sebastian/resource-operations": "^3.0.4",
+ "sebastian/type": "^3.2.1",
+ "sebastian/version": "^3.0.2"
},
"suggest": {
"ext-soap": "To be able to generate mocks based on WSDL files",
- "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage",
- "phpunit/php-invoker": "To allow enforcing time limits"
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
"bin": [
"phpunit"
@@ -2083,10 +2168,13 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "8.5-dev"
+ "dev-master": "9.6-dev"
}
},
"autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
"classmap": [
"src/"
]
@@ -2112,7 +2200,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.52"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.34"
},
"funding": [
{
@@ -2136,32 +2224,144 @@
"type": "tidelift"
}
],
- "time": "2026-01-27T05:20:18+00:00"
+ "time": "2026-01-27T05:45:00+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:27:43+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:08:54+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
- "version": "1.0.3",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54"
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54",
- "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
"shasum": ""
},
"require": {
- "php": ">=5.6"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.5"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -2183,7 +2383,7 @@
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
- "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.3"
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
},
"funding": [
{
@@ -2191,35 +2391,34 @@
"type": "github"
}
],
- "abandoned": true,
- "time": "2024-03-01T13:45:45+00:00"
+ "time": "2020-09-28T05:30:19+00:00"
},
{
"name": "sebastian/comparator",
- "version": "3.0.7",
+ "version": "4.0.10",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "bc7d8ac2fe1cce229bff9b5fd4efe65918a1ff52"
+ "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/bc7d8ac2fe1cce229bff9b5fd4efe65918a1ff52",
- "reference": "bc7d8ac2fe1cce229bff9b5fd4efe65918a1ff52",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e4df00b9b3571187db2831ae9aada2c6efbd715d",
+ "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d",
"shasum": ""
},
"require": {
- "php": ">=7.1",
- "sebastian/diff": "^3.0",
- "sebastian/exporter": "^3.1"
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
},
"require-dev": {
- "phpunit/phpunit": "^8.5"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -2258,7 +2457,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
- "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.7"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.10"
},
"funding": [
{
@@ -2278,33 +2477,90 @@
"type": "tidelift"
}
],
- "time": "2026-01-24T09:20:25+00:00"
+ "time": "2026-01-24T09:22:56+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:19:30+00:00"
},
{
"name": "sebastian/diff",
- "version": "3.0.6",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6"
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/98ff311ca519c3aa73ccd3de053bdb377171d7b6",
- "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^7.5 || ^8.0",
- "symfony/process": "^2 || ^3.3 || ^4"
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -2336,7 +2592,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/3.0.6"
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
},
"funding": [
{
@@ -2344,27 +2600,27 @@
"type": "github"
}
],
- "time": "2024-03-02T06:16:36+00:00"
+ "time": "2024-03-02T06:30:58+00:00"
},
{
"name": "sebastian/environment",
- "version": "4.2.5",
+ "version": "5.1.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "56932f6049a0482853056ffd617c91ffcc754205"
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/56932f6049a0482853056ffd617c91ffcc754205",
- "reference": "56932f6049a0482853056ffd617c91ffcc754205",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^7.5"
+ "phpunit/phpunit": "^9.3"
},
"suggest": {
"ext-posix": "*"
@@ -2372,7 +2628,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.2-dev"
+ "dev-master": "5.1-dev"
}
},
"autoload": {
@@ -2399,7 +2655,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
- "source": "https://github.com/sebastianbergmann/environment/tree/4.2.5"
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
},
"funding": [
{
@@ -2407,34 +2663,34 @@
"type": "github"
}
],
- "time": "2024-03-01T13:49:59+00:00"
+ "time": "2023-02-03T06:03:51+00:00"
},
{
"name": "sebastian/exporter",
- "version": "3.1.8",
+ "version": "4.0.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "64cfeaa341951ceb2019d7b98232399d57bb2296"
+ "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64cfeaa341951ceb2019d7b98232399d57bb2296",
- "reference": "64cfeaa341951ceb2019d7b98232399d57bb2296",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c",
+ "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c",
"shasum": ""
},
"require": {
- "php": ">=7.2",
- "sebastian/recursion-context": "^3.0"
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
},
"require-dev": {
"ext-mbstring": "*",
- "phpunit/phpunit": "^8.5"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1.x-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -2469,14 +2725,14 @@
}
],
"description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
"keywords": [
"export",
"exporter"
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.8"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8"
},
"funding": [
{
@@ -2496,30 +2752,30 @@
"type": "tidelift"
}
],
- "time": "2025-09-24T05:55:14+00:00"
+ "time": "2025-09-24T06:03:27+00:00"
},
{
"name": "sebastian/global-state",
- "version": "3.0.6",
+ "version": "5.0.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "800689427e3e8cf57a8fe38fcd1d4344c9b2f046"
+ "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/800689427e3e8cf57a8fe38fcd1d4344c9b2f046",
- "reference": "800689427e3e8cf57a8fe38fcd1d4344c9b2f046",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6",
+ "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6",
"shasum": ""
},
"require": {
- "php": ">=7.2",
- "sebastian/object-reflector": "^1.1.1",
- "sebastian/recursion-context": "^3.0"
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
},
"require-dev": {
"ext-dom": "*",
- "phpunit/phpunit": "^8.0"
+ "phpunit/phpunit": "^9.3"
},
"suggest": {
"ext-uopz": "*"
@@ -2527,7 +2783,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -2552,7 +2808,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.6"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8"
},
"funding": [
{
@@ -2572,34 +2828,91 @@
"type": "tidelift"
}
],
- "time": "2025-08-10T05:40:12+00:00"
+ "time": "2025-08-10T07:10:35+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:20:34+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "3.0.5",
+ "version": "4.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "ac5b293dba925751b808e02923399fb44ff0d541"
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/ac5b293dba925751b808e02923399fb44ff0d541",
- "reference": "ac5b293dba925751b808e02923399fb44ff0d541",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
"shasum": ""
},
"require": {
- "php": ">=7.0",
- "sebastian/object-reflector": "^1.1.1",
- "sebastian/recursion-context": "^3.0"
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0.x-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -2621,7 +2934,7 @@
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.5"
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
},
"funding": [
{
@@ -2629,32 +2942,32 @@
"type": "github"
}
],
- "time": "2024-03-01T13:54:02+00:00"
+ "time": "2020-10-26T13:12:34+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "1.1.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "1d439c229e61f244ff1f211e5c99737f90c67def"
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/1d439c229e61f244ff1f211e5c99737f90c67def",
- "reference": "1d439c229e61f244ff1f211e5c99737f90c67def",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
"shasum": ""
},
"require": {
- "php": ">=7.0"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -2676,7 +2989,7 @@
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.3"
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
},
"funding": [
{
@@ -2684,32 +2997,32 @@
"type": "github"
}
],
- "time": "2024-03-01T13:56:04+00:00"
+ "time": "2020-10-26T13:14:26+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "3.0.3",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "8fe7e75986a9d24b4cceae847314035df7703a5a"
+ "reference": "539c6691e0623af6dc6f9c20384c120f963465a0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/8fe7e75986a9d24b4cceae847314035df7703a5a",
- "reference": "8fe7e75986a9d24b4cceae847314035df7703a5a",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0",
+ "reference": "539c6691e0623af6dc6f9c20384c120f963465a0",
"shasum": ""
},
"require": {
- "php": ">=7.0"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0.x-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -2736,10 +3049,10 @@
}
],
"description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.3"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6"
},
"funding": [
{
@@ -2759,29 +3072,32 @@
"type": "tidelift"
}
],
- "time": "2025-08-10T05:25:53+00:00"
+ "time": "2025-08-10T06:57:39+00:00"
},
{
"name": "sebastian/resource-operations",
- "version": "2.0.3",
+ "version": "3.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee"
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/72a7f7674d053d548003b16ff5a106e7e0e06eee",
- "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -2802,7 +3118,7 @@
"description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"support": {
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.3"
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
},
"funding": [
{
@@ -2810,32 +3126,32 @@
"type": "github"
}
],
- "time": "2024-03-01T13:59:09+00:00"
+ "time": "2024-03-14T16:00:52+00:00"
},
{
"name": "sebastian/type",
- "version": "1.1.5",
+ "version": "3.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "18f071c3a29892b037d35e6b20ddf3ea39b42874"
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/18f071c3a29892b037d35e6b20ddf3ea39b42874",
- "reference": "18f071c3a29892b037d35e6b20ddf3ea39b42874",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
"shasum": ""
},
"require": {
- "php": ">=7.2"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.2"
+ "phpunit/phpunit": "^9.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1-dev"
+ "dev-master": "3.2-dev"
}
},
"autoload": {
@@ -2858,7 +3174,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/1.1.5"
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
},
"funding": [
{
@@ -2866,29 +3182,29 @@
"type": "github"
}
],
- "time": "2024-03-01T14:04:07+00:00"
+ "time": "2023-02-03T06:13:03+00:00"
},
{
"name": "sebastian/version",
- "version": "2.0.1",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
"shasum": ""
},
"require": {
- "php": ">=5.6"
+ "php": ">=7.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -2911,32 +3227,38 @@
"homepage": "https://github.com/sebastianbergmann/version",
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
- "source": "https://github.com/sebastianbergmann/version/tree/master"
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
},
- "time": "2016-10-03T07:35:21+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
},
{
"name": "squizlabs/php_codesniffer",
- "version": "3.13.5",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
- "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4"
+ "reference": "0525c73950de35ded110cffafb9892946d7771b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4",
- "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0525c73950de35ded110cffafb9892946d7771b5",
+ "reference": "0525c73950de35ded110cffafb9892946d7771b5",
"shasum": ""
},
"require": {
"ext-simplexml": "*",
"ext-tokenizer": "*",
"ext-xmlwriter": "*",
- "php": ">=5.4.0"
+ "php": ">=7.2.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
+ "phpunit/phpunit": "^8.4.0 || ^9.3.4 || ^10.5.32 || 11.3.3 - 11.5.28 || ^11.5.31"
},
"bin": [
"bin/phpcbf",
@@ -2961,7 +3283,7 @@
"homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors"
}
],
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
+ "description": "PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.",
"homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
"keywords": [
"phpcs",
@@ -2992,102 +3314,37 @@
"type": "thanks_dev"
}
],
- "time": "2025-11-04T16:30:35+00:00"
- },
- {
- "name": "symfony/polyfill-php72",
- "version": "v1.31.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce",
- "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "type": "metapackage",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.31.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2025-11-10T16:43:36+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v4.4.47",
+ "version": "v5.4.48",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "1069c7a3fca74578022fab6f81643248d02f8e63"
+ "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63",
- "reference": "1069c7a3fca74578022fab6f81643248d02f8e63",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/42f18f170aa86d612c3559cfb3bd11a375df32c8",
+ "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "php": ">=7.2.5",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php72": "~1.5",
"symfony/polyfill-php80": "^1.16"
},
"conflict": {
- "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
- "symfony/console": "<3.4"
+ "symfony/console": "<4.4"
},
"require-dev": {
"ext-iconv": "*",
- "symfony/console": "^3.4|^4.0|^5.0",
- "symfony/process": "^4.4|^5.0",
- "twig/twig": "^1.43|^2.13|^3.0.4"
+ "symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/uid": "^5.1|^6.0",
+ "twig/twig": "^2.13|^3.0.4"
},
"suggest": {
"ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
@@ -3130,7 +3387,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v4.4.47"
+ "source": "https://github.com/symfony/var-dumper/tree/v5.4.48"
},
"funding": [
{
@@ -3146,7 +3403,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-03T15:15:11+00:00"
+ "time": "2024-11-08T15:21:10+00:00"
},
{
"name": "theseer/tokenizer",
@@ -3205,7 +3462,7 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": "^7.4"
+ "php": "^7.4 || ^8.0"
},
"platform-dev": {},
"platform-overrides": {
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 2f55586..7e0d09d 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -1,4 +1,7 @@
-
+
-
-
+
+
src/
-
-
+
+
diff --git a/src/Parse/Token.php b/src/Parse/Token.php
index a796b99..c483df4 100644
--- a/src/Parse/Token.php
+++ b/src/Parse/Token.php
@@ -105,7 +105,7 @@ public function isEof()
public function eq($type, $text)
{
return ($this->type === $type)
- && strcasecmp($this->text, $text) === 0;
+ && strcasecmp((string) $this->text, (string) $text) === 0;
}
/**
diff --git a/tests/Parse/CollationInfoTest.php b/tests/Parse/CollationInfoTest.php
index 4bdbf37..bb58f78 100644
--- a/tests/Parse/CollationInfoTest.php
+++ b/tests/Parse/CollationInfoTest.php
@@ -59,10 +59,10 @@ public function providerConstructorWithArgs()
* @param string $charset
* @param string $collation
* @dataProvider providerConstructorWithBadArgs
- * @expectedException RuntimeException
*/
public function testConstructorWithBadArgs($charset, $collation)
{
+ $this->expectException(RuntimeException::class);
new CollationInfo($charset, $collation);
}
@@ -106,9 +106,9 @@ public function testIsBinaryCharset()
$this->assertFalse((new CollationInfo('utf8', 'utf8_bin'))->isBinaryCharset());
}
- /** @expectedException LogicException */
public function testInvalidIsBinaryCharset()
{
+ $this->expectException(LogicException::class);
(new CollationInfo())->isBinaryCharset();
}
@@ -123,9 +123,9 @@ public function testIsDefaultCollation()
$this->assertFalse((new CollationInfo('latin1', 'latin1_general_ci'))->isDefaultCollation());
}
- /** @expectedException LogicException */
public function testInvalidSiDefaulfCollation()
{
+ $this->expectException(LogicException::class);
(new CollationInfo())->isDefaultCollation();
}
@@ -140,15 +140,15 @@ public function testSetCharset()
$this->assertSame('utf8', $collation->getCharset());
}
- /** @expectedException Exception */
public function testSetCharsetFail()
{
+ $this->expectException(Exception::class);
(new CollationInfo('latin1'))->setCharset('utf8');
}
- /** @expectedException LogicException */
public function testEmptyCharsetFail()
{
+ $this->expectException(LogicException::class);
(new CollationInfo())->getCharset();
}
@@ -165,9 +165,9 @@ public function testSetCollation()
$this->assertSame('utf8_general_ci', $collation->getCollation());
}
- /** @expectedException Exception */
public function testSetCollationFail()
{
+ $this->expectException(Exception::class);
(new CollationInfo('latin1'))->setCollation('utf8_general_ci');
}
@@ -180,9 +180,9 @@ public function testGetCollation()
$this->assertSame('utf8_bin', $collation->getCollation());
}
- /** @expectedException LogicException */
public function testEmptyCollationFail()
{
+ $this->expectException(LogicException::class);
(new CollationInfo())->getCollation();
}
}
diff --git a/tests/Parse/ColumnDefinitionTest.php b/tests/Parse/ColumnDefinitionTest.php
index a7d34c5..bbb79b1 100644
--- a/tests/Parse/ColumnDefinitionTest.php
+++ b/tests/Parse/ColumnDefinitionTest.php
@@ -255,10 +255,11 @@ public function parseDatatypesProvider()
/**
* @param string $text
* @dataProvider parseInvalidDatatypesProvider
- * @expectedException RuntimeException
*/
public function testParseInvalidDatatypes($text)
{
+ $this->expectException(RuntimeException::class);
+
$stream = $this->makeStream($text);
$column = new ColumnDefinition();
$column->parse($stream);
@@ -318,10 +319,11 @@ public function parseInvalidDatatypesProvider()
/**
* @param string $text
* @dataProvider parseInvalidDefaultValuesProvider
- * @expectedException Exception
*/
public function testParseInvalidDefaultValues($text)
{
+ $this->expectException(Exception::class);
+
$stream = $this->makeStream($text);
$column = new ColumnDefinition();
$column->parse($stream);
diff --git a/tests/Parse/CreateDatabaseTest.php b/tests/Parse/CreateDatabaseTest.php
index d9c85ef..5a8a952 100644
--- a/tests/Parse/CreateDatabaseTest.php
+++ b/tests/Parse/CreateDatabaseTest.php
@@ -95,11 +95,10 @@ public function parseCollationProvider()
];
}
- /**
- * @expectedException RuntimeException
- */
public function testBadParse()
{
+ $this->expectException(RuntimeException::class);
+
$stream = $this->makeStream('foo');
$database = new CreateDatabase(new CollationInfo());
$database->parse($stream);
@@ -138,11 +137,10 @@ public function testAddTable()
$this->assertArrayHasKey($tableName, $database->tables);
}
- /**
- * @expectedException RuntimeException
- */
public function testBadAddTable()
{
+ $this->expectException(RuntimeException::class);
+
$createTable = new CreateTable(new CollationInfo());
$database = new CreateDatabase(new CollationInfo());
$database->addTable($createTable);
@@ -157,7 +155,7 @@ public function testGetDDL(CreateDatabase $database, $sql)
{
$ddl = $database->getDDL();
- $this->assertInternalType('array', $ddl);
+ $this->assertIsArray($ddl);
$this->assertEquals(1, count($ddl));
$this->assertEquals($sql, $ddl[0]);
}
@@ -196,11 +194,10 @@ public function testGetDDLProvider()
return $testCases;
}
- /**
- * @expectedException RuntimeException
- */
public function testBadGetDDL()
{
+ $this->expectException(RuntimeException::class);
+
$database = new CreateDatabase(new CollationInfo());
$database->getDDL();
}
diff --git a/tests/Parse/CreateTableTest.php b/tests/Parse/CreateTableTest.php
index accb9a2..a2e3fd9 100644
--- a/tests/Parse/CreateTableTest.php
+++ b/tests/Parse/CreateTableTest.php
@@ -50,7 +50,7 @@ public function testParse($text, $expected)
$this->fail("expected an $expectedExceptionType exception, but none was thrown");
} else {
$this->assertInstanceOf($expectedExceptionType, $threw, "wrong exception type thrown");
- $this->assertRegExp("/$expectedMessageRegex/", $e->getMessage(), "wrong exception message");
+ $this->assertMatchesRegularExpression("/$expectedMessageRegex/", $e->getMessage(), "wrong exception message");
}
} elseif (is_null($threw)) {
$ddl = $table->getDDL();
diff --git a/tests/Parse/TableOptionsTest.php b/tests/Parse/TableOptionsTest.php
index e1c1b09..f8dafaf 100644
--- a/tests/Parse/TableOptionsTest.php
+++ b/tests/Parse/TableOptionsTest.php
@@ -121,10 +121,11 @@ public function parseProvider()
/**
* @dataProvider badParseProvider
* @param string $text
- * @expectedException RuntimeException
*/
public function testBadParse($text)
{
+ $this->expectException(RuntimeException::class);
+
$stream = $this->makeStream($text);
$options = new TableOptions(new CollationInfo());
diff --git a/tests/Parse/TokenStreamTest.php b/tests/Parse/TokenStreamTest.php
index 939434a..9b8e8c2 100644
--- a/tests/Parse/TokenStreamTest.php
+++ b/tests/Parse/TokenStreamTest.php
@@ -23,9 +23,9 @@ public function testNewFromFile()
$this->assertThat($stream, $this->isInstanceOf(__NAMESPACE__ . '\TokenStream'));
}
- /** @expectedException Exception */
public function testNewFromFileNotFound()
{
+ $this->expectException(Exception::class);
TokenStream::newFromFile(dirname(__FILE__) . "/file_not_found");
}
@@ -117,7 +117,7 @@ public function nextTokenProvider()
[ "{$bq}{$bq}", Token::IDENTIFIER, ''],
[ "{$bq}hello{$bq}", Token::IDENTIFIER, 'hello'],
[ "{$bq}hello{$bq}{$bq}world{$bq}", Token::IDENTIFIER, "hello{$bq}world"], // `` => `
- [ "{$bq}hello{$bs}{$bs}world{$bq}", Token::IDENTIFIER, "hello{$bs}${bs}world"], // \\ => \\
+ [ "{$bq}hello{$bs}{$bs}world{$bq}", Token::IDENTIFIER, "hello{$bs}{$bs}world"], // \\ => \\
[ "{$bq}hello{$bs}nworld{$bq}", Token::IDENTIFIER, "hello{$bs}nworld"], // \n => \n
// hex literals
@@ -170,10 +170,11 @@ public function nextTokenProvider()
/**
* @param string $text
* @dataProvider provideBadLogicNextToken
- * @expectedException LogicException
*/
public function testBadLogicNextToken($text)
{
+ $this->expectException(LogicException::class);
+
$stream = $this->makeStream($text);
$stream->nextToken();
}
@@ -199,10 +200,11 @@ public function provideBadLogicNextToken()
/**
* @param string $text
* @dataProvider provideBadRuntimeNextToken
- * @expectedException RuntimeException
*/
public function testBadRuntimeNextToken($text)
{
+ $this->expectException(RuntimeException::class);
+
$stream = $this->makeStream($text);
$stream->nextToken();
}
@@ -322,9 +324,9 @@ public function testExpectSucc()
$stream->expect(Token::IDENTIFIER, 'create');
}
- /** @expectedException Exception */
public function testExpectFail()
{
+ $this->expectException(Exception::class);
$stream = $this->makeStream('create table t');
$stream->expect(Token::IDENTIFIER, 'drop');
}
@@ -445,7 +447,11 @@ public function testContextualise()
// Use reflection to set the internal offset to the place where error is.
$reflection = new ReflectionClass($stream);
$property = $reflection->getProperty('offset');
- $property->setAccessible(true);
+ if (PHP_VERSION_ID < 80100) {
+ // setAccessible() is required before PHP 8.1; it became a no-op in 8.1
+ // and is deprecated from 8.5 onwards.
+ $property->setAccessible(true);
+ }
$property->setValue($stream, 32);
$message = $stream->contextualise("unknown datatype 'bar'");
diff --git a/tests/Parse/TokenTest.php b/tests/Parse/TokenTest.php
index 959386c..f94b68e 100644
--- a/tests/Parse/TokenTest.php
+++ b/tests/Parse/TokenTest.php
@@ -69,8 +69,8 @@ public function testMakeStringNonEscapes()
$unescaped = Token::fromString(
"ijk{$bs}a" .
"jkl{$bs}f" .
- "klm{$bs}${sq}" .
- "lmn{$bs}${dq}" .
+ "klm{$bs}{$sq}" .
+ "lmn{$bs}{$dq}" .
"mno{$bs}?" .
"nop{$bs}176" .
"opq{$bs}x7e" .
@@ -82,8 +82,8 @@ public function testMakeStringNonEscapes()
Token::STRING,
"ijk" . "a" .
"jkl" . "f" .
- "klm" . "${sq}" .
- "lmn" . "${dq}" .
+ "klm" . "{$sq}" .
+ "lmn" . "{$dq}" .
"mno" . "?" .
"nop" . "176" .
"opq" . "x7e" .
@@ -98,15 +98,15 @@ public function testMakeStringQuotes()
foreach ([
"" => "",
- "{$sq}${sq}" => "{$sq}",
- "abc{$sq}${sq}" => "abc{$sq}",
- "{$sq}${sq}abc" => "{$sq}abc",
+ "{$sq}{$sq}" => "{$sq}",
+ "abc{$sq}{$sq}" => "abc{$sq}",
+ "{$sq}{$sq}abc" => "{$sq}abc",
] as $arg => $result) {
$token = Token::fromString($arg, $sq);
$this->assertTrue($token->eq(Token::STRING, $result));
}
- $token = Token::fromString("{$sq}${sq}", $sq);
+ $token = Token::fromString("{$sq}{$sq}", $sq);
$this->assertTrue($token->eq(Token::STRING, "{$sq}"));
}
@@ -275,13 +275,13 @@ public function providerAsXyz()
/**
* @dataProvider providerAsXyzError
- * @expectedException Exception
* @param string $method
* @param string $type
* @param string $arg
*/
public function testAsXyzError($method, $type, $arg)
{
+ $this->expectException(Exception::class);
(new Token($type, $arg))->$method();
}