diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml
index efe26384..96519fd7 100644
--- a/.github/workflows/integrate.yaml
+++ b/.github/workflows/integrate.yaml
@@ -19,7 +19,7 @@ jobs:
strategy:
matrix:
php-version:
- - "8.0"
+ - "7.4"
dependencies:
- "locked"
@@ -80,7 +80,7 @@ jobs:
strategy:
matrix:
php-version:
- - "8.0"
+ - "7.4"
dependencies:
- "locked"
@@ -149,7 +149,7 @@ jobs:
strategy:
matrix:
php-version:
- - "8.0"
+ - "7.4"
dependencies:
- "locked"
@@ -205,7 +205,7 @@ jobs:
strategy:
matrix:
php-version:
- - "8.0"
+ - "7.4"
dependencies:
- "locked"
@@ -257,7 +257,7 @@ jobs:
strategy:
matrix:
php-version:
- - "8.0"
+ - "7.4"
dependencies:
- "locked"
@@ -316,7 +316,7 @@ jobs:
strategy:
matrix:
php-version:
- - "8.0"
+ - "7.4"
dependencies:
- "locked"
@@ -366,7 +366,7 @@ jobs:
strategy:
matrix:
php-version:
- - "8.0"
+ - "7.4"
dependencies:
- "locked"
@@ -417,6 +417,7 @@ jobs:
fail-fast: false
matrix:
php-version:
+ - "7.4"
- "8.0"
- "8.1"
- "8.2"
diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml
index 054bada8..e1626524 100644
--- a/.github/workflows/renew.yaml
+++ b/.github/workflows/renew.yaml
@@ -17,7 +17,7 @@ jobs:
strategy:
matrix:
php-version:
- - "8.0"
+ - "7.4"
dependencies:
- "locked"
diff --git a/.phive/phars.xml b/.phive/phars.xml
index f71d3ada..aefe788e 100644
--- a/.phive/phars.xml
+++ b/.phive/phars.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php
index 96bfc36c..1df0b7af 100644
--- a/.php-cs-fixer.php
+++ b/.php-cs-fixer.php
@@ -26,7 +26,7 @@
$license->save();
-$ruleSet = PhpCsFixer\Config\RuleSet\Php80::create()->withHeader($license->header());
+$ruleSet = PhpCsFixer\Config\RuleSet\Php74::create()->withHeader($license->header());
$config = PhpCsFixer\Config\Factory::fromRuleSet($ruleSet);
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2129ea89..21a9d3a4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ For a full diff see [`1.6.0...main`][1.6.0...main].
### Added
- Added support for PHP 8.0 ([#926]), by [@localheinz]
+- Added support for PHP 7.4 ([#929]), by [@localheinz]
## [`1.6.0`][1.6.0]
@@ -185,6 +186,7 @@ For a full diff see [`0.4.0...0.5.0`][0.4.0...0.5.0].
[#702]: https://github.com/ergebnis/classy/pull/702
[#795]: https://github.com/ergebnis/classy/pull/795
[#926]: https://github.com/ergebnis/classy/pull/926
+[#929]: https://github.com/ergebnis/classy/pull/929
[@ergebnis]: https://github.com/ergebnis
[@localheinz]: https://github.com/localheinz
diff --git a/composer-require-checker.json b/composer-require-checker.json
index a738a89a..8596ebb8 100644
--- a/composer-require-checker.json
+++ b/composer-require-checker.json
@@ -1,5 +1,11 @@
{
"symbol-whitelist": [
- "T_ENUM"
+ "array",
+ "int",
+ "self",
+ "string",
+ "T_ENUM",
+ "T_NAME_QUALIFIED",
+ "true"
]
}
diff --git a/composer.json b/composer.json
index e2907843..d9857e00 100644
--- a/composer.json
+++ b/composer.json
@@ -24,7 +24,7 @@
"source": "https://github.com/ergebnis/classy"
},
"require": {
- "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
+ "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
"ext-tokenizer": "*"
},
"require-dev": {
@@ -33,7 +33,7 @@
"ergebnis/php-cs-fixer-config": "^6.31.0",
"ergebnis/phpunit-slow-test-detector": "^2.15.0",
"fakerphp/faker": "^1.23.1",
- "infection/infection": "~0.26.16",
+ "infection/infection": "~0.26.6",
"phpunit/phpunit": "^9.6.19",
"psalm/plugin-phpunit": "~0.19.0",
"rector/rector": "^1.1.0",
@@ -62,7 +62,7 @@
"abandoned": "report"
},
"platform": {
- "php": "8.0.30"
+ "php": "7.4.33"
},
"preferred-install": "dist",
"sort-packages": true
diff --git a/composer.lock b/composer.lock
index b98148a8..c01b301c 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": "bbe3195abddc5b7b400901add7e133ea",
+ "content-hash": "5de42436143393349399122a85f23795",
"packages": [],
"packages-dev": [
{
@@ -231,97 +231,6 @@
],
"time": "2022-12-23T10:58:28+00:00"
},
- {
- "name": "colinodell/json5",
- "version": "v2.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/colinodell/json5.git",
- "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/colinodell/json5/zipball/15b063f8cb5e6deb15f0cd39123264ec0d19c710",
- "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "ext-mbstring": "*",
- "php": "^7.1.3|^8.0"
- },
- "conflict": {
- "scrutinizer/ocular": "1.7.*"
- },
- "require-dev": {
- "mikehaertl/php-shellcommand": "^1.2.5",
- "phpstan/phpstan": "^1.4",
- "scrutinizer/ocular": "^1.6",
- "squizlabs/php_codesniffer": "^2.3 || ^3.0",
- "symfony/finder": "^4.4|^5.4|^6.0",
- "symfony/phpunit-bridge": "^5.4|^6.0"
- },
- "bin": [
- "bin/json5"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.0-dev"
- }
- },
- "autoload": {
- "files": [
- "src/global.php"
- ],
- "psr-4": {
- "ColinODell\\Json5\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Colin O'Dell",
- "email": "colinodell@gmail.com",
- "homepage": "https://www.colinodell.com",
- "role": "Developer"
- }
- ],
- "description": "UTF-8 compatible JSON5 parser for PHP",
- "homepage": "https://github.com/colinodell/json5",
- "keywords": [
- "JSON5",
- "json",
- "json5_decode",
- "json_decode"
- ],
- "support": {
- "issues": "https://github.com/colinodell/json5/issues",
- "source": "https://github.com/colinodell/json5/tree/v2.3.0"
- },
- "funding": [
- {
- "url": "https://www.colinodell.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://www.paypal.me/colinpodell/10.00",
- "type": "custom"
- },
- {
- "url": "https://github.com/colinodell",
- "type": "github"
- },
- {
- "url": "https://www.patreon.com/colinodell",
- "type": "patreon"
- }
- ],
- "time": "2022-12-27T16:44:40+00:00"
- },
{
"name": "composer/package-versions-deprecated",
"version": "1.11.99.5",
@@ -1990,45 +1899,45 @@
},
{
"name": "infection/infection",
- "version": "0.26.16",
+ "version": "0.26.6",
"source": {
"type": "git",
"url": "https://github.com/infection/infection.git",
- "reference": "d646aafe530ba21b8479694cd151570c93c72312"
+ "reference": "de9b6b92f00ff1cb39decddf95797a4ebec3a1ee"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/infection/infection/zipball/d646aafe530ba21b8479694cd151570c93c72312",
- "reference": "d646aafe530ba21b8479694cd151570c93c72312",
+ "url": "https://api.github.com/repos/infection/infection/zipball/de9b6b92f00ff1cb39decddf95797a4ebec3a1ee",
+ "reference": "de9b6b92f00ff1cb39decddf95797a4ebec3a1ee",
"shasum": ""
},
"require": {
- "colinodell/json5": "^2.2",
"composer-runtime-api": "^2.0",
"composer/xdebug-handler": "^2.0 || ^3.0",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
- "ext-mbstring": "*",
"infection/abstract-testframework-adapter": "^0.5.0",
"infection/extension-installer": "^0.1.0",
"infection/include-interceptor": "^0.2.5",
"justinrainbow/json-schema": "^5.2.10",
"nikic/php-parser": "^4.13.2",
"ondram/ci-detector": "^4.1.0",
- "php": "^8.0",
+ "php": "^7.4.7 || ^8.0",
"sanmai/later": "^0.1.1",
"sanmai/pipeline": "^5.1 || ^6",
"sebastian/diff": "^3.0.2 || ^4.0",
- "symfony/console": "^5.4 || ^6.0",
- "symfony/filesystem": "^5.4 || ^6.0",
- "symfony/finder": "^5.4 || ^6.0",
- "symfony/process": "^5.4 || ^6.0",
- "thecodingmachine/safe": "^2.1.2",
- "webmozart/assert": "^1.3"
+ "seld/jsonlint": "^1.7",
+ "symfony/console": "^3.4.29 || ^4.1.19 || ^5.0 || ^6.0",
+ "symfony/filesystem": "^3.4.29 || ^4.1.19 || ^5.0 || ^6.0",
+ "symfony/finder": "^3.4.29 || ^4.1.19 || ^5.0 || ^6.0",
+ "symfony/process": "^3.4.29 || ^4.1.19 || ^5.0 || ^6.0",
+ "thecodingmachine/safe": "^1.1.3",
+ "webmozart/assert": "^1.3",
+ "webmozart/path-util": "^2.3"
},
"conflict": {
- "dg/bypass-finals": "<1.4.1",
+ "dg/bypass-finals": "*",
"phpunit/php-code-coverage": ">9 <9.1.4"
},
"require-dev": {
@@ -2037,14 +1946,14 @@
"helmich/phpunit-json-assert": "^3.0",
"phpspec/prophecy-phpunit": "^2.0",
"phpstan/extension-installer": "^1.1.0",
- "phpstan/phpstan": "^1.3.0",
+ "phpstan/phpstan": "^1.2.0",
"phpstan/phpstan-phpunit": "^1.0.0",
"phpstan/phpstan-strict-rules": "^1.1.0",
"phpstan/phpstan-webmozart-assert": "^1.0.2",
- "phpunit/phpunit": "^9.5.5",
- "symfony/phpunit-bridge": "^5.4 || ^6.0",
- "symfony/yaml": "^5.4 || ^6.0",
- "thecodingmachine/phpstan-safe-rule": "^1.2.0"
+ "phpunit/phpunit": "^9.3.11",
+ "symfony/phpunit-bridge": "^4.4.18 || ^5.1.10",
+ "symfony/yaml": "^5.0",
+ "thecodingmachine/phpstan-safe-rule": "^1.1.0"
},
"bin": [
"bin/infection"
@@ -2100,7 +2009,7 @@
],
"support": {
"issues": "https://github.com/infection/infection/issues",
- "source": "https://github.com/infection/infection/tree/0.26.16"
+ "source": "https://github.com/infection/infection/tree/0.26.6"
},
"funding": [
{
@@ -2112,7 +2021,7 @@
"type": "open_collective"
}
],
- "time": "2022-10-22T10:07:33+00:00"
+ "time": "2022-03-07T11:40:30+00:00"
},
{
"name": "justinrainbow/json-schema",
@@ -3417,27 +3326,22 @@
},
{
"name": "psr/container",
- "version": "2.0.2",
+ "version": "1.1.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+ "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
- "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
+ "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
"shasum": ""
},
"require": {
"php": ">=7.4.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
@@ -3464,9 +3368,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/2.0.2"
+ "source": "https://github.com/php-fig/container/tree/1.1.2"
},
- "time": "2021-11-05T16:47:00+00:00"
+ "time": "2021-11-05T16:50:12+00:00"
},
{
"name": "psr/event-dispatcher",
@@ -3520,30 +3424,30 @@
},
{
"name": "psr/log",
- "version": "3.0.0",
+ "version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
- "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
"shasum": ""
},
"require": {
- "php": ">=8.0.0"
+ "php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.x-dev"
+ "dev-master": "1.1.x-dev"
}
},
"autoload": {
"psr-4": {
- "Psr\\Log\\": "src"
+ "Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -3564,9 +3468,9 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/3.0.0"
+ "source": "https://github.com/php-fig/log/tree/1.1.4"
},
- "time": "2021-07-14T16:46:02+00:00"
+ "time": "2021-05-03T11:20:27+00:00"
},
{
"name": "react/cache",
@@ -5249,35 +5153,95 @@
],
"time": "2020-09-28T06:39:44+00:00"
},
+ {
+ "name": "seld/jsonlint",
+ "version": "1.10.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/jsonlint.git",
+ "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9bb7db07b5d66d90f6ebf542f09fc67d800e5259",
+ "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.5",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13"
+ },
+ "bin": [
+ "bin/jsonlint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Seld\\JsonLint\\": "src/Seld/JsonLint/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "JSON Linter",
+ "keywords": [
+ "json",
+ "linter",
+ "parser",
+ "validator"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/jsonlint/issues",
+ "source": "https://github.com/Seldaek/jsonlint/tree/1.10.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-07T12:57:50+00:00"
+ },
{
"name": "spatie/array-to-xml",
- "version": "3.3.0",
+ "version": "2.17.1",
"source": {
"type": "git",
"url": "https://github.com/spatie/array-to-xml.git",
- "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876"
+ "reference": "5cbec9c6ab17e320c58a259f0cebe88bde4a7c46"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/f56b220fe2db1ade4c88098d83413ebdfc3bf876",
- "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876",
+ "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/5cbec9c6ab17e320c58a259f0cebe88bde4a7c46",
+ "reference": "5cbec9c6ab17e320c58a259f0cebe88bde4a7c46",
"shasum": ""
},
"require": {
"ext-dom": "*",
- "php": "^8.0"
+ "php": "^7.4|^8.0"
},
"require-dev": {
"mockery/mockery": "^1.2",
"pestphp/pest": "^1.21",
+ "phpunit/phpunit": "^9.0",
"spatie/pest-plugin-snapshots": "^1.1"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Spatie\\ArrayToXml\\": "src"
@@ -5303,7 +5267,7 @@
"xml"
],
"support": {
- "source": "https://github.com/spatie/array-to-xml/tree/3.3.0"
+ "source": "https://github.com/spatie/array-to-xml/tree/2.17.1"
},
"funding": [
{
@@ -5315,46 +5279,50 @@
"type": "github"
}
],
- "time": "2024-05-01T10:20:27+00:00"
+ "time": "2022-12-26T08:22:07+00:00"
},
{
"name": "symfony/console",
- "version": "v6.0.19",
+ "version": "v5.4.40",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed"
+ "reference": "aa73115c0c24220b523625bfcfa655d7d73662dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed",
- "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed",
+ "url": "https://api.github.com/repos/symfony/console/zipball/aa73115c0c24220b523625bfcfa655d7d73662dd",
+ "reference": "aa73115c0c24220b523625bfcfa655d7d73662dd",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16",
"symfony/service-contracts": "^1.1|^2|^3",
- "symfony/string": "^5.4|^6.0"
+ "symfony/string": "^5.1|^6.0"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
- "symfony/dotenv": "<5.4",
- "symfony/event-dispatcher": "<5.4",
- "symfony/lock": "<5.4",
- "symfony/process": "<5.4"
+ "psr/log": ">=3",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/dotenv": "<5.1",
+ "symfony/event-dispatcher": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/process": "<4.4"
},
"provide": {
- "psr/log-implementation": "1.0|2.0|3.0"
+ "psr/log-implementation": "1.0|2.0"
},
"require-dev": {
- "psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/lock": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "psr/log": "^1|^2",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
+ "symfony/lock": "^4.4|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
},
"suggest": {
"psr/log": "For using the console logger",
@@ -5389,12 +5357,12 @@
"homepage": "https://symfony.com",
"keywords": [
"cli",
- "command line",
+ "command-line",
"console",
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.0.19"
+ "source": "https://github.com/symfony/console/tree/v5.4.40"
},
"funding": [
{
@@ -5410,29 +5378,29 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-05-31T14:33:22+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.0.2",
+ "version": "v2.5.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c"
+ "reference": "80d075412b557d41002320b96a096ca65aa2c98d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
- "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d",
+ "reference": "80d075412b557d41002320b96a096ca65aa2c98d",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -5461,7 +5429,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3"
},
"funding": [
{
@@ -5477,42 +5445,44 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:55:41+00:00"
+ "time": "2023-01-24T14:02:46+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.0.19",
+ "version": "v5.4.40",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a"
+ "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
- "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a54e2a8a114065f31020d6a89ede83e34c3b27a4",
+ "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
- "symfony/event-dispatcher-contracts": "^2|^3"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher-contracts": "^2|^3",
+ "symfony/polyfill-php80": "^1.16"
},
"conflict": {
- "symfony/dependency-injection": "<5.4"
+ "symfony/dependency-injection": "<4.4"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "2.0|3.0"
+ "symfony/event-dispatcher-implementation": "2.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
"symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^5.4|^6.0"
+ "symfony/stopwatch": "^4.4|^5.0|^6.0"
},
"suggest": {
"symfony/dependency-injection": "",
@@ -5544,7 +5514,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.19"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.40"
},
"funding": [
{
@@ -5560,24 +5530,24 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-05-31T14:33:22+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.0.2",
+ "version": "v2.5.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "7bc61cc2db649b4637d331240c5346dcc7708051"
+ "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051",
- "reference": "7bc61cc2db649b4637d331240c5346dcc7708051",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/540f4c73e87fd0c71ca44a6aa305d024ac68cb73",
+ "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=7.2.5",
"psr/event-dispatcher": "^1"
},
"suggest": {
@@ -5586,7 +5556,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -5623,7 +5593,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.3"
},
"funding": [
{
@@ -5639,26 +5609,30 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:55:41+00:00"
+ "time": "2024-01-23T13:51:25+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v6.0.19",
+ "version": "v5.4.40",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214"
+ "reference": "26dd9912df6940810ea00f8f53ad48d6a3424995"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/3d49eec03fda1f0fc19b7349fbbe55ebc1004214",
- "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/26dd9912df6940810ea00f8f53ad48d6a3424995",
+ "reference": "26dd9912df6940810ea00f8f53ad48d6a3424995",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=7.2.5",
"symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.8"
+ "symfony/polyfill-mbstring": "~1.8",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "symfony/process": "^5.4|^6.4"
},
"type": "library",
"autoload": {
@@ -5686,7 +5660,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v6.0.19"
+ "source": "https://github.com/symfony/filesystem/tree/v5.4.40"
},
"funding": [
{
@@ -5702,24 +5676,26 @@
"type": "tidelift"
}
],
- "time": "2023-01-20T17:44:14+00:00"
+ "time": "2024-05-31T14:33:22+00:00"
},
{
"name": "symfony/finder",
- "version": "v6.0.19",
+ "version": "v5.4.40",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11"
+ "reference": "f51cff4687547641c7d8180d74932ab40b2205ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/5cc9cac6586fc0c28cd173780ca696e419fefa11",
- "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/f51cff4687547641c7d8180d74932ab40b2205ce",
+ "reference": "f51cff4687547641c7d8180d74932ab40b2205ce",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
"autoload": {
@@ -5747,7 +5723,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.0.19"
+ "source": "https://github.com/symfony/finder/tree/v5.4.40"
},
"funding": [
{
@@ -5763,25 +5739,27 @@
"type": "tidelift"
}
],
- "time": "2023-01-20T17:44:14+00:00"
+ "time": "2024-05-31T14:33:22+00:00"
},
{
"name": "symfony/options-resolver",
- "version": "v6.0.19",
+ "version": "v5.4.40",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "6a180d1c45e0d9797470ca9eb46215692de00fa3"
+ "reference": "bd1afbde6613a8d6b956115e0e14b196191fd0c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/6a180d1c45e0d9797470ca9eb46215692de00fa3",
- "reference": "6a180d1c45e0d9797470ca9eb46215692de00fa3",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/bd1afbde6613a8d6b956115e0e14b196191fd0c4",
+ "reference": "bd1afbde6613a8d6b956115e0e14b196191fd0c4",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php73": "~1.0",
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
"autoload": {
@@ -5814,7 +5792,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v6.0.19"
+ "source": "https://github.com/symfony/options-resolver/tree/v5.4.40"
},
"funding": [
{
@@ -5830,7 +5808,7 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-05-31T14:33:22+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -6150,6 +6128,82 @@
],
"time": "2024-01-29T20:11:03+00:00"
},
+ {
+ "name": "symfony/polyfill-php73",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "21bd091060673a1177ae842c0ef8fe30893114d2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/21bd091060673a1177ae842c0ef8fe30893114d2",
+ "reference": "21bd091060673a1177ae842c0ef8fe30893114d2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "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.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.29.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-01-29T20:11:03+00:00"
+ },
{
"name": "symfony/polyfill-php80",
"version": "v1.29.0",
@@ -6308,20 +6362,21 @@
},
{
"name": "symfony/process",
- "version": "v6.0.19",
+ "version": "v5.4.40",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "2114fd60f26a296cc403a7939ab91478475a33d4"
+ "reference": "deedcb3bb4669cae2148bc920eafd2b16dc7c046"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/2114fd60f26a296cc403a7939ab91478475a33d4",
- "reference": "2114fd60f26a296cc403a7939ab91478475a33d4",
+ "url": "https://api.github.com/repos/symfony/process/zipball/deedcb3bb4669cae2148bc920eafd2b16dc7c046",
+ "reference": "deedcb3bb4669cae2148bc920eafd2b16dc7c046",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
"autoload": {
@@ -6349,7 +6404,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.0.19"
+ "source": "https://github.com/symfony/process/tree/v5.4.40"
},
"funding": [
{
@@ -6365,25 +6420,26 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-05-31T14:33:22+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.0.2",
+ "version": "v2.5.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66"
+ "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66",
- "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3",
+ "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
- "psr/container": "^2.0"
+ "php": ">=7.2.5",
+ "psr/container": "^1.1",
+ "symfony/deprecation-contracts": "^2.1|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
@@ -6394,7 +6450,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -6431,7 +6487,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/service-contracts/tree/v2.5.3"
},
"funding": [
{
@@ -6447,24 +6503,24 @@
"type": "tidelift"
}
],
- "time": "2022-05-30T19:17:58+00:00"
+ "time": "2023-04-21T15:04:16+00:00"
},
{
"name": "symfony/stopwatch",
- "version": "v6.0.19",
+ "version": "v5.4.40",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "011e781839dd1d2eb8119f65ac516a530f60226d"
+ "reference": "0e9daf3b7c805c747638b2cc48f1649e594f9625"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/011e781839dd1d2eb8119f65ac516a530f60226d",
- "reference": "011e781839dd1d2eb8119f65ac516a530f60226d",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0e9daf3b7c805c747638b2cc48f1649e594f9625",
+ "reference": "0e9daf3b7c805c747638b2cc48f1649e594f9625",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=7.2.5",
"symfony/service-contracts": "^1|^2|^3"
},
"type": "library",
@@ -6493,7 +6549,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v6.0.19"
+ "source": "https://github.com/symfony/stopwatch/tree/v5.4.40"
},
"funding": [
{
@@ -6509,37 +6565,38 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-05-31T14:33:22+00:00"
},
{
"name": "symfony/string",
- "version": "v6.0.19",
+ "version": "v5.4.40",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a"
+ "reference": "142877285aa974a6f7685e292ab5ba9aae86b143"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a",
- "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a",
+ "url": "https://api.github.com/repos/symfony/string/zipball/142877285aa974a6f7685e292ab5ba9aae86b143",
+ "reference": "142877285aa974a6f7685e292ab5ba9aae86b143",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=7.2.5",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0"
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "~1.15"
},
"conflict": {
- "symfony/translation-contracts": "<2.0"
+ "symfony/translation-contracts": ">=3.0"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/translation-contracts": "^2.0|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
},
"type": "library",
"autoload": {
@@ -6578,7 +6635,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.0.19"
+ "source": "https://github.com/symfony/string/tree/v5.4.40"
},
"funding": [
{
@@ -6594,50 +6651,43 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-05-31T14:33:22+00:00"
},
{
"name": "thecodingmachine/safe",
- "version": "v2.5.0",
+ "version": "v1.3.3",
"source": {
"type": "git",
"url": "https://github.com/thecodingmachine/safe.git",
- "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0"
+ "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
- "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
+ "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/a8ab0876305a4cdaef31b2350fcb9811b5608dbc",
+ "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc",
"shasum": ""
},
"require": {
- "php": "^8.0"
+ "php": ">=7.2"
},
"require-dev": {
- "phpstan/phpstan": "^1.5",
- "phpunit/phpunit": "^9.5",
+ "phpstan/phpstan": "^0.12",
"squizlabs/php_codesniffer": "^3.2",
- "thecodingmachine/phpstan-strict-rules": "^1.0"
+ "thecodingmachine/phpstan-strict-rules": "^0.12"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2.x-dev"
+ "dev-master": "0.1-dev"
}
},
"autoload": {
"files": [
"deprecated/apc.php",
- "deprecated/array.php",
- "deprecated/datetime.php",
"deprecated/libevent.php",
- "deprecated/misc.php",
- "deprecated/password.php",
"deprecated/mssql.php",
"deprecated/stats.php",
- "deprecated/strings.php",
"lib/special_cases.php",
- "deprecated/mysqli.php",
"generated/apache.php",
"generated/apcu.php",
"generated/array.php",
@@ -6658,7 +6708,6 @@
"generated/fpm.php",
"generated/ftp.php",
"generated/funchand.php",
- "generated/gettext.php",
"generated/gmp.php",
"generated/gnupg.php",
"generated/hash.php",
@@ -6668,6 +6717,7 @@
"generated/image.php",
"generated/imap.php",
"generated/info.php",
+ "generated/ingres-ii.php",
"generated/inotify.php",
"generated/json.php",
"generated/ldap.php",
@@ -6676,14 +6726,20 @@
"generated/mailparse.php",
"generated/mbstring.php",
"generated/misc.php",
+ "generated/msql.php",
"generated/mysql.php",
+ "generated/mysqli.php",
+ "generated/mysqlndMs.php",
+ "generated/mysqlndQc.php",
"generated/network.php",
"generated/oci8.php",
"generated/opcache.php",
"generated/openssl.php",
"generated/outcontrol.php",
+ "generated/password.php",
"generated/pcntl.php",
"generated/pcre.php",
+ "generated/pdf.php",
"generated/pgsql.php",
"generated/posix.php",
"generated/ps.php",
@@ -6694,6 +6750,7 @@
"generated/sem.php",
"generated/session.php",
"generated/shmop.php",
+ "generated/simplexml.php",
"generated/sockets.php",
"generated/sodium.php",
"generated/solr.php",
@@ -6716,13 +6773,13 @@
"generated/zip.php",
"generated/zlib.php"
],
- "classmap": [
- "lib/DateTime.php",
- "lib/DateTimeImmutable.php",
- "lib/Exceptions/",
- "deprecated/Exceptions/",
- "generated/Exceptions/"
- ]
+ "psr-4": {
+ "Safe\\": [
+ "lib/",
+ "deprecated/",
+ "generated/"
+ ]
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -6731,9 +6788,9 @@
"description": "PHP core functions that throw exceptions instead of returning FALSE on error",
"support": {
"issues": "https://github.com/thecodingmachine/safe/issues",
- "source": "https://github.com/thecodingmachine/safe/tree/v2.5.0"
+ "source": "https://github.com/thecodingmachine/safe/tree/v1.3.3"
},
- "time": "2023-04-05T11:54:14+00:00"
+ "time": "2020-10-28T17:51:34+00:00"
},
{
"name": "theseer/tokenizer",
@@ -6952,6 +7009,57 @@
"source": "https://github.com/webmozarts/assert/tree/1.11.0"
},
"time": "2022-06-03T18:03:27+00:00"
+ },
+ {
+ "name": "webmozart/path-util",
+ "version": "2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozart/path-util.git",
+ "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
+ "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "webmozart/assert": "~1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.6",
+ "sebastian/version": "^1.0.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\PathUtil\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.",
+ "support": {
+ "issues": "https://github.com/webmozart/path-util/issues",
+ "source": "https://github.com/webmozart/path-util/tree/2.3.0"
+ },
+ "abandoned": "symfony/filesystem",
+ "time": "2015-12-17T08:42:14+00:00"
}
],
"aliases": [],
@@ -6960,12 +7068,12 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
+ "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
"ext-tokenizer": "*"
},
"platform-dev": [],
"platform-overrides": {
- "php": "8.0.30"
+ "php": "7.4.33"
},
"plugin-api-version": "2.6.0"
}
diff --git a/infection.json b/infection.json
index 0dc11350..0e9863c6 100644
--- a/infection.json
+++ b/infection.json
@@ -3,8 +3,8 @@
"logs": {
"text": ".build/infection/infection-log.txt"
},
- "minCoveredMsi": 87,
- "minMsi": 85,
+ "minCoveredMsi": 86,
+ "minMsi": 83,
"phpUnit": {
"configDir": "test\/Unit"
},
diff --git a/rector.php b/rector.php
index 4ce221cd..5c368d77 100644
--- a/rector.php
+++ b/rector.php
@@ -26,7 +26,7 @@
__DIR__ . '/test/Util/',
]);
- $rectorConfig->phpVersion(ValueObject\PhpVersion::PHP_80);
+ $rectorConfig->phpVersion(ValueObject\PhpVersion::PHP_74);
$rectorConfig->sets([
PHPUnit\Set\PHPUnitSetList::PHPUNIT_90,
diff --git a/src/Constructs.php b/src/Constructs.php
index 77b393e6..421ab35b 100644
--- a/src/Constructs.php
+++ b/src/Constructs.php
@@ -40,9 +40,22 @@ public static function fromSource(string $source): array
$namespaceSegmentOrNamespaceTokens = [
\T_STRING,
- \T_NAME_QUALIFIED,
];
+ /**
+ * @see https://wiki.php.net/rfc/namespaced_names_as_token
+ */
+ if (
+ \PHP_VERSION_ID >= 80000
+ && \defined('T_NAME_QUALIFIED')
+ ) {
+ /** @var list $namespaceSegmentOrNamespaceTokens */
+ $namespaceSegmentOrNamespaceTokens = [
+ \T_STRING,
+ \T_NAME_QUALIFIED,
+ ];
+ }
+
$classyTokens = [
\T_CLASS,
\T_INTERFACE,
@@ -211,7 +224,7 @@ public static function fromDirectory(string $directory): array
private static function significantAfter(
int $index,
array $sequence,
- int $count,
+ int $count
): int {
for ($current = $index + 1; $current < $count; ++$current) {
$token = $sequence[$current];
@@ -233,7 +246,7 @@ private static function significantAfter(
*/
private static function significantBefore(
int $index,
- array $sequence,
+ array $sequence
): int {
for ($current = $index - 1; -1 < $current; --$current) {
$token = $sequence[$current];
diff --git a/src/Exception/ParseError.php b/src/Exception/ParseError.php
index 20e94fbb..93e3ef39 100644
--- a/src/Exception/ParseError.php
+++ b/src/Exception/ParseError.php
@@ -26,7 +26,7 @@ public static function fromParseError(\ParseError $exception): self
public static function fromFileNameAndParseError(
string $fileName,
- \ParseError $exception,
+ \ParseError $exception
): self {
return new self(
\sprintf(
diff --git a/test/DataProvider/Php74.php b/test/DataProvider/Php74.php
new file mode 100644
index 00000000..8a3b9950
--- /dev/null
+++ b/test/DataProvider/Php74.php
@@ -0,0 +1,107 @@
+
+ */
+ public static function classyConstructs(): \Generator
+ {
+ $scenarios = [
+ Test\Util\Scenario::create(
+ 'php74-within-namespace',
+ __DIR__ . '/../Fixture/Classy/Php74/WithinNamespace/source.php',
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinNamespace\Bar::class),
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinNamespace\Baz::class),
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinNamespace\Foo::class),
+ ),
+ Test\Util\Scenario::create(
+ 'php74-within-namespace-with-braces',
+ __DIR__ . '/../Fixture/Classy/Php74/WithinNamespaceWithBraces/source.php',
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinNamespaceWithBraces\Bar::class),
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinNamespaceWithBraces\Baz::class),
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinNamespaceWithBraces\Foo::class),
+ ),
+ Test\Util\Scenario::create(
+ 'php74-within-multiple-namespaces-with-braces',
+ __DIR__ . '/../Fixture/Classy/Php74/WithinMultipleNamespaces/source.php',
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinMultipleNamespaces\Bar\Bar::class),
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinMultipleNamespaces\Bar\Baz::class),
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinMultipleNamespaces\Bar\Foo::class),
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinMultipleNamespaces\Foo\Bar::class),
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinMultipleNamespaces\Foo\Baz::class),
+ Construct::fromName(Test\Fixture\Classy\Php74\WithinMultipleNamespaces\Foo\Foo::class),
+ ),
+ Test\Util\Scenario::create(
+ 'php74-within-namespace-with-single-segment',
+ __DIR__ . '/../Fixture/Classy/Php74/WithinNamespaceWithSingleSegment/source.php',
+ Construct::fromName('Ergebnis\\Bar'),
+ Construct::fromName('Ergebnis\\Baz'),
+ Construct::fromName('Ergebnis\\Foo'),
+ ),
+ Test\Util\Scenario::create(
+ 'php74-with-methods-named-after-keywords',
+ __DIR__ . '/../Fixture/Classy/Php74/WithMethodsNamedAfterKeywords/source.php',
+ Construct::fromName(Test\Fixture\Classy\Php74\WithMethodsNamedAfterKeywords\Foo::class),
+ ),
+ /**
+ * @see https://github.com/zendframework/zend-file/pull/41
+ */
+ Test\Util\Scenario::create(
+ 'php74-with-methods-named-after-keywords-and-return-type',
+ __DIR__ . '/../Fixture/Classy/Php74/WithMethodsNamedAfterKeywordsAndReturnType/source.php',
+ Construct::fromName(Test\Fixture\Classy\Php74\WithMethodsNamedAfterKeywordsAndReturnType\Foo::class),
+ ),
+ Test\Util\Scenario::create(
+ 'php74-without-namespace',
+ __DIR__ . '/../Fixture/Classy/Php74/WithoutNamespace/source.php',
+ Construct::fromName('Bar'),
+ Construct::fromName('Baz'),
+ Construct::fromName('Foo'),
+ ),
+ Test\Util\Scenario::create(
+ 'php74-without-namespace-and-multi-line-comments',
+ __DIR__ . '/../Fixture/Classy/Php74/WithoutNamespaceAndMultiLineComments/source.php',
+ Construct::fromName('Bar'),
+ Construct::fromName('Baz'),
+ Construct::fromName('Foo'),
+ ),
+ Test\Util\Scenario::create(
+ 'php74-without-namespace-and-shell-line-comments',
+ __DIR__ . '/../Fixture/Classy/Php74/WithoutNamespaceAndShellStyleComments/source.php',
+ Construct::fromName('Bar'),
+ Construct::fromName('Baz'),
+ Construct::fromName('Foo'),
+ ),
+ Test\Util\Scenario::create(
+ 'php74-without-namespace-and-single-line-comments',
+ __DIR__ . '/../Fixture/Classy/Php74/WithoutNamespaceAndSingleLineComments/source.php',
+ Construct::fromName('Bar'),
+ Construct::fromName('Baz'),
+ Construct::fromName('Foo'),
+ ),
+ ];
+
+ foreach ($scenarios as $scenario) {
+ yield $scenario->description() => [
+ $scenario,
+ ];
+ }
+ }
+}
diff --git a/test/Fixture/Classy/Php74/WithMethodsNamedAfterKeywords/source.php b/test/Fixture/Classy/Php74/WithMethodsNamedAfterKeywords/source.php
new file mode 100644
index 00000000..87254de9
--- /dev/null
+++ b/test/Fixture/Classy/Php74/WithMethodsNamedAfterKeywords/source.php
@@ -0,0 +1,18 @@
+source());
+
+ $expected = \array_map(static function (Construct $construct): Construct {
+ return Construct::fromName($construct->name());
+ }, $scenario->constructsSortedByName());
+
+ self::assertIsList($constructs);
+ self::assertEquals($expected, $constructs);
+ }
+
/**
* @dataProvider \Ergebnis\Classy\Test\DataProvider\Php80::classyConstructs()
*
@@ -161,6 +178,19 @@ public function testFromDirectoryReturnsEmptyArrayWhenNoClassyConstructsHaveBeen
self::assertSame([], $constructs);
}
+ /**
+ * @dataProvider \Ergebnis\Classy\Test\DataProvider\Php74::classyConstructs()
+ *
+ * @requires PHP 7.4
+ */
+ public function testFromDirectoryReturnsListOfClassyConstructsOnPhp74(Test\Util\Scenario $scenario): void
+ {
+ $constructs = Constructs::fromDirectory($scenario->directory());
+
+ self::assertIsList($constructs);
+ self::assertEquals($scenario->constructsSortedByName(), $constructs);
+ }
+
/**
* @dataProvider \Ergebnis\Classy\Test\DataProvider\Php80::classyConstructs()
*
diff --git a/test/Util/Scenario.php b/test/Util/Scenario.php
index 3a109430..96ed063a 100644
--- a/test/Util/Scenario.php
+++ b/test/Util/Scenario.php
@@ -30,7 +30,7 @@ private function __construct(
string $description,
string $fileName,
string $source,
- Classy\Construct ...$constructs,
+ Classy\Construct ...$constructs
) {
$this->description = $description;
$this->fileName = $fileName;
@@ -44,7 +44,7 @@ private function __construct(
public static function create(
string $description,
string $fileName,
- Classy\Construct ...$constructs,
+ Classy\Construct ...$constructs
): self {
if (!\is_file($fileName)) {
throw new \InvalidArgumentException(\sprintf(