diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 56c8b03b6..18e7e9ab6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -11,7 +11,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, windows-latest] - php: ['8.0', '8.1', '8.2', '8.3'] + php: ['8.0', '8.1', '8.2', '8.3', '8.4'] sapi: ['php', 'php-cgi'] fail-fast: false diff --git a/composer.json b/composer.json index 0683f5a1f..2ff2d3824 100644 --- a/composer.json +++ b/composer.json @@ -15,17 +15,17 @@ } ], "require": { - "php": "8.0 - 8.3", + "php": "8.0 - 8.4", "ext-session": "*", "ext-json": "*" }, "require-dev": { - "nette/utils": "^3.0", + "nette/utils": "^3.0 || ^4.0", "nette/di": "^3.0", "nette/http": "^3.0", - "nette/mail": "^3.0", + "nette/mail": "^3.0 || ^4.0", "nette/tester": "^2.2", - "latte/latte": "^2.5", + "latte/latte": "^2.5 || ^3.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "phpstan/phpstan": "^1.0" }, diff --git a/readme.md b/readme.md index 2368c1e9d..bacf2aee9 100644 --- a/readme.md +++ b/readme.md @@ -48,7 +48,7 @@ composer require tracy/tracy Alternatively, you can download the whole package or [tracy.phar](https://github.com/nette/tracy/releases) file. -Tracy is compatible with PHP 8.0 to 8.3. +Tracy is compatible with PHP 8.0 to 8.4.   diff --git a/tests/Tracy/Helpers.improveException.phpt b/tests/Tracy/Helpers.improveException.phpt index 32e78325a..861619dbb 100644 --- a/tests/Tracy/Helpers.improveException.phpt +++ b/tests/Tracy/Helpers.improveException.phpt @@ -227,7 +227,7 @@ test('callable error: ignore syntax mismatch', function () { } Helpers::improveException($e); - Assert::match('{closure}(): Argument #1 ($a) must be of type callable, null given, called in %a%', $e->getMessage()); + Assert::match('{closure%a?%}(): Argument #1 ($a) must be of type callable, null given, called in %a%', $e->getMessage()); }); test('callable error: typo in class name', function () { @@ -237,7 +237,7 @@ test('callable error: typo in class name', function () { } Helpers::improveException($e); - Assert::match("{closure}(): Argument #1 (\$a) must be of type callable, but class 'PhpTokn' does not exist, called in %a%", $e->getMessage()); + Assert::match("{closure%a?%}(): Argument #1 (\$a) must be of type callable, but class 'PhpTokn' does not exist, called in %a%", $e->getMessage()); }); test('callable error: typo in class name', function () { @@ -247,7 +247,7 @@ test('callable error: typo in class name', function () { } Helpers::improveException($e); - Assert::match("{closure}(): Argument #1 (\$a) must be of type callable, but class 'PhpTokn' does not exist, called in %a%", $e->getMessage()); + Assert::match("{closure%a?%}(): Argument #1 (\$a) must be of type callable, but class 'PhpTokn' does not exist, called in %a%", $e->getMessage()); }); test('callable error: typo in method name', function () { @@ -257,7 +257,7 @@ test('callable error: typo in method name', function () { } Helpers::improveException($e); - Assert::match('{closure}(): Argument #1 ($a) must be of type callable, but method PhpToken::tokenze() does not exist (did you mean tokenize?), called in %a%', $e->getMessage()); + Assert::match('{closure%a?%}(): Argument #1 ($a) must be of type callable, but method PhpToken::tokenze() does not exist (did you mean tokenize?), called in %a%', $e->getMessage()); }); test('callable error: typo in method name', function () { @@ -267,7 +267,7 @@ test('callable error: typo in method name', function () { } Helpers::improveException($e); - Assert::match('{closure}(): Argument #1 ($a) must be of type callable, but method PhpToken::tokenze() does not exist (did you mean tokenize?), called in %a%', $e->getMessage()); + Assert::match('{closure%a?%}(): Argument #1 ($a) must be of type callable, but method PhpToken::tokenze() does not exist (did you mean tokenize?), called in %a%', $e->getMessage()); }); test('callable error: typo in function name', function () { @@ -277,5 +277,5 @@ test('callable error: typo in function name', function () { } Helpers::improveException($e); - Assert::match("{closure}(): Argument #1 (\$a) must be of type callable, but function 'trm' does not exist (did you mean trim?), called in %a%", $e->getMessage()); + Assert::match("{closure%a?%}(): Argument #1 (\$a) must be of type callable, but function 'trm' does not exist (did you mean trim?), called in %a%", $e->getMessage()); }); diff --git a/tests/Tracy/expected/Debugger.exception.fiber.html.expect b/tests/Tracy/expected/Debugger.exception.fiber.html.expect index d6d6996c4..dedeefb40 100644 --- a/tests/Tracy/expected/Debugger.exception.fiber.html.expect +++ b/tests/Tracy/expected/Debugger.exception.fiber.html.expect @@ -175,7 +175,7 @@
-{closure} () +{closure%a?%a} ()