diff --git a/README.md b/README.md
index 982915f86ca..36dc7effb34 100644
--- a/README.md
+++ b/README.md
@@ -72,7 +72,7 @@ vendor/bin/rector process src
## Documentation
* Find [full documentation here](https://getrector.com/documentation/).
-* [Explore Rector Rules](/docs/rector_rules_overview.md)
+* [Explore Rector Rules](https://getrector.com/find-rule)
diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md
index fe087979335..71a923d14be 100644
--- a/docs/rector_rules_overview.md
+++ b/docs/rector_rules_overview.md
@@ -1,5 +1,9 @@
# 382 Rules Overview
+**This overview is deprecated and replaced by more advanced web search. There you can search and filter by nodes, copy-paste configs for configurable rules and more.**
+
+Use https://getrector.com/find-rule instead!
+
## Categories
diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php
index 8f27d00f6e8..16b32a5ac50 100644
--- a/src/Application/VersionResolver.php
+++ b/src/Application/VersionResolver.php
@@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
- public const PACKAGE_VERSION = '59585ae75aafa8c5e2666b047a84f13ab35fb59f';
+ public const PACKAGE_VERSION = '67238d841a46b5fecc9ef204ffef4ba773e82cb9';
/**
* @api
* @var string
*/
- public const RELEASE_DATE = '2024-08-07 08:05:18';
+ public const RELEASE_DATE = '2024-08-08 13:51:11';
/**
* @var int
*/
diff --git a/vendor/autoload.php b/vendor/autoload.php
index db7e4c78d7b..7dd5b3f0bb6 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -22,4 +22,4 @@
require_once __DIR__ . '/composer/autoload_real.php';
-return ComposerAutoloaderInit4bcaef4da4b0314c67dae59e30837b25::getLoader();
+return ComposerAutoloaderInit969cf4fb8686733ba64d08544d342ca0::getLoader();
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index 449f2fcaf85..cc09b4b55be 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInit4bcaef4da4b0314c67dae59e30837b25
+class ComposerAutoloaderInit969cf4fb8686733ba64d08544d342ca0
{
private static $loader;
@@ -22,17 +22,17 @@ public static function getLoader()
return self::$loader;
}
- spl_autoload_register(array('ComposerAutoloaderInit4bcaef4da4b0314c67dae59e30837b25', 'loadClassLoader'), true, true);
+ spl_autoload_register(array('ComposerAutoloaderInit969cf4fb8686733ba64d08544d342ca0', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
- spl_autoload_unregister(array('ComposerAutoloaderInit4bcaef4da4b0314c67dae59e30837b25', 'loadClassLoader'));
+ spl_autoload_unregister(array('ComposerAutoloaderInit969cf4fb8686733ba64d08544d342ca0', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
- call_user_func(\Composer\Autoload\ComposerStaticInit4bcaef4da4b0314c67dae59e30837b25::getInitializer($loader));
+ call_user_func(\Composer\Autoload\ComposerStaticInit969cf4fb8686733ba64d08544d342ca0::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
- $filesToLoad = \Composer\Autoload\ComposerStaticInit4bcaef4da4b0314c67dae59e30837b25::$files;
+ $filesToLoad = \Composer\Autoload\ComposerStaticInit969cf4fb8686733ba64d08544d342ca0::$files;
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index eaee0cb6846..258f981c7f2 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
namespace Composer\Autoload;
-class ComposerStaticInit4bcaef4da4b0314c67dae59e30837b25
+class ComposerStaticInit969cf4fb8686733ba64d08544d342ca0
{
public static $files = array (
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
@@ -2797,9 +2797,9 @@ class ComposerStaticInit4bcaef4da4b0314c67dae59e30837b25
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
- $loader->prefixLengthsPsr4 = ComposerStaticInit4bcaef4da4b0314c67dae59e30837b25::$prefixLengthsPsr4;
- $loader->prefixDirsPsr4 = ComposerStaticInit4bcaef4da4b0314c67dae59e30837b25::$prefixDirsPsr4;
- $loader->classMap = ComposerStaticInit4bcaef4da4b0314c67dae59e30837b25::$classMap;
+ $loader->prefixLengthsPsr4 = ComposerStaticInit969cf4fb8686733ba64d08544d342ca0::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInit969cf4fb8686733ba64d08544d342ca0::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInit969cf4fb8686733ba64d08544d342ca0::$classMap;
}, null, ClassLoader::class);
}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index d43d4664d04..5a1e26538f7 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -620,21 +620,21 @@
},
{
"name": "nette\/utils",
- "version": "v4.0.4",
- "version_normalized": "4.0.4.0",
+ "version": "v4.0.5",
+ "version_normalized": "4.0.5.0",
"source": {
"type": "git",
"url": "https:\/\/github.com\/nette\/utils.git",
- "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218"
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96"
},
"dist": {
"type": "zip",
- "url": "https:\/\/api.github.com\/repos\/nette\/utils\/zipball\/d3ad0aa3b9f934602cb3e3902ebccf10be34d218",
- "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218",
+ "url": "https:\/\/api.github.com\/repos\/nette\/utils\/zipball\/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
"shasum": ""
},
"require": {
- "php": ">=8.0 <8.4"
+ "php": "8.0 - 8.4"
},
"conflict": {
"nette\/finder": "<3",
@@ -654,7 +654,7 @@
"ext-mbstring": "to use Strings::lower() etc...",
"ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
},
- "time": "2024-01-17T16:50:36+00:00",
+ "time": "2024-08-07T15:39:19+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -703,7 +703,7 @@
],
"support": {
"issues": "https:\/\/github.com\/nette\/utils\/issues",
- "source": "https:\/\/github.com\/nette\/utils\/tree\/v4.0.4"
+ "source": "https:\/\/github.com\/nette\/utils\/tree\/v4.0.5"
},
"install-path": "..\/nette\/utils"
},
@@ -1688,12 +1688,12 @@
"source": {
"type": "git",
"url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git",
- "reference": "3ba7adbca3491a977b81147d93eb78084ed8e454"
+ "reference": "11ac7b9060990b62f972a42330cceab294ee097e"
},
"dist": {
"type": "zip",
- "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/3ba7adbca3491a977b81147d93eb78084ed8e454",
- "reference": "3ba7adbca3491a977b81147d93eb78084ed8e454",
+ "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/11ac7b9060990b62f972a42330cceab294ee097e",
+ "reference": "11ac7b9060990b62f972a42330cceab294ee097e",
"shasum": ""
},
"require": {
@@ -1712,13 +1712,13 @@
"symplify\/easy-coding-standard": "^12.3",
"symplify\/phpstan-extensions": "^11.4",
"symplify\/phpstan-rules": "^13.0",
- "symplify\/rule-doc-generator": "^12.2",
+ "symplify\/rule-doc-generator": "^12.2.5",
"symplify\/vendor-patches": "^11.3",
"tomasvotruba\/class-leak": "^0.2.15",
"tomasvotruba\/unused-public": "^0.3",
"tracy\/tracy": "^2.10"
},
- "time": "2024-07-25T15:38:30+00:00",
+ "time": "2024-08-08T13:34:44+00:00",
"default-branch": true,
"type": "rector-extension",
"extra": {
@@ -1810,12 +1810,12 @@
"source": {
"type": "git",
"url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git",
- "reference": "acfcef8cfbceefee966253ef5f1b2ec57bc10e22"
+ "reference": "2bacfc618ca1987deab1e70f87720805a171a1a8"
},
"dist": {
"type": "zip",
- "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/acfcef8cfbceefee966253ef5f1b2ec57bc10e22",
- "reference": "acfcef8cfbceefee966253ef5f1b2ec57bc10e22",
+ "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/2bacfc618ca1987deab1e70f87720805a171a1a8",
+ "reference": "2bacfc618ca1987deab1e70f87720805a171a1a8",
"shasum": ""
},
"require": {
@@ -1834,12 +1834,12 @@
"symplify\/easy-coding-standard": "^12.3",
"symplify\/phpstan-extensions": "^11.2",
"symplify\/phpstan-rules": "^13.0",
- "symplify\/rule-doc-generator": "^12.0",
+ "symplify\/rule-doc-generator": "^12.2.5",
"symplify\/vendor-patches": "^11.2",
"tomasvotruba\/class-leak": "^0.2",
"tracy\/tracy": "^2.10"
},
- "time": "2024-07-31T14:43:42+00:00",
+ "time": "2024-08-08T13:39:23+00:00",
"default-branch": true,
"type": "rector-extension",
"extra": {
@@ -1875,12 +1875,12 @@
"source": {
"type": "git",
"url": "https:\/\/github.com\/rectorphp\/rector-symfony.git",
- "reference": "01e3fe74284092db2c4b6cec28a0ae723d419f31"
+ "reference": "ece927272de55206ad2832bb7fe3993c814fae01"
},
"dist": {
"type": "zip",
- "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/01e3fe74284092db2c4b6cec28a0ae723d419f31",
- "reference": "01e3fe74284092db2c4b6cec28a0ae723d419f31",
+ "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/ece927272de55206ad2832bb7fe3993c814fae01",
+ "reference": "ece927272de55206ad2832bb7fe3993c814fae01",
"shasum": ""
},
"require": {
@@ -1904,13 +1904,13 @@
"symplify\/easy-coding-standard": "^12.3",
"symplify\/phpstan-extensions": "^11.4",
"symplify\/phpstan-rules": "^13.0",
- "symplify\/rule-doc-generator": "^12.2.2",
+ "symplify\/rule-doc-generator": "^12.2.5",
"symplify\/vendor-patches": "^11.3",
"tomasvotruba\/class-leak": "^0.2",
"tomasvotruba\/unused-public": "^0.3.10",
"tracy\/tracy": "^2.10"
},
- "time": "2024-08-05T15:01:30+00:00",
+ "time": "2024-08-08T13:37:21+00:00",
"default-branch": true,
"type": "rector-extension",
"extra": {
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
index b8a05b22133..8bbbbab4adb 100644
--- a/vendor/composer/installed.php
+++ b/vendor/composer/installed.php
@@ -2,4 +2,4 @@
namespace RectorPrefix202408;
-return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.2.0', 'version' => '3.2.0.0', 'reference' => 'ea4ab6f9580a4fd221e0418f2c357cdd39102a90', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.2', 'version' => '3.4.2.0', 'reference' => 'c51258e759afdb17f1fd1fe83bc12baaef6309d6', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.10', 'version' => '2.0.10.0', 'reference' => '5817d0659c5b50c9b950feb9af7b9668e2c436bc', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => 'f92996c4d5c1a696a6a970e20f7c4216200fcc42', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v11.20.0', 'version' => '11.20.0.0', 'reference' => 'f47be671981a4438257c4fbfc3ad257f4e3e929a', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v11.20.0', 'version' => '11.20.0.0', 'reference' => '34ead9385e0eab7e947807d77da66faf9bdf95ff', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.0.4', 'version' => '4.0.4.0', 'reference' => 'd3ad0aa3b9f934602cb3e3902ebccf10be34d218', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.19.1', 'version' => '4.19.1.0', 'reference' => '4e1b88d21c69391150ace211e9eaf05810858d0b', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.29.1', 'version' => '1.29.1.0', 'reference' => 'fcaefacf2d5c417e928405b71b400d4ce10daaf4', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '^1.11.9')), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.13.0', 'version' => '1.13.0.0', 'reference' => 'eb8ae001b5a455665c89c1df97f6fb682f8fb0f5', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.5.0', 'version' => '1.5.0.0', 'reference' => 'bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.2.0', 'version' => '3.2.0.0', 'reference' => '8a164643313c71354582dc850b42b33fa12a4b63', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.16.0', 'version' => '1.16.0.0', 'reference' => '23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '3ba7adbca3491a977b81147d93eb78084ed8e454', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'c053b9795a81bb9fd5b8d59e05c7556f19267893', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'acfcef8cfbceefee966253ef5f1b2ec57bc10e22', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '01e3fe74284092db2c4b6cec28a0ae723d419f31', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.1.1', 'version' => '5.1.1.0', 'reference' => 'c41e007b4b62af48218231d6c2275e4c9b975b2e', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.10', 'version' => '6.4.10.0', 'reference' => '504974cbe43d05f83b201d6498c206f16fc0cdbc', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.5.0', 'version' => '3.5.0.0', 'reference' => '0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v6.4.9', 'version' => '6.4.9.0', 'reference' => 'b51ef8059159330b74a4d52f68e671033c0fe463', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.4.10', 'version' => '6.4.10.0', 'reference' => 'af29198d87112bebdd397bd7735fbd115997824c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.30.0', 'version' => '1.30.0.0', 'reference' => 'fd22ab50000ef01661e2a31d850ebaa297f8e03c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.4.8', 'version' => '6.4.8.0', 'reference' => '8d92dd79149f29e89ee0f480254db595f6a6a2c5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.5.0', 'version' => '3.5.0.0', 'reference' => 'bd1d9e59a81d8fa4acdcea3f617c581f7475a80f', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/yaml' => array('pretty_version' => 'v7.1.1', 'version' => '7.1.1.0', 'reference' => 'fa34c77015aa6720469db7003567b9f772492bf2', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/yaml', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false)));
+return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.2.0', 'version' => '3.2.0.0', 'reference' => 'ea4ab6f9580a4fd221e0418f2c357cdd39102a90', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.2', 'version' => '3.4.2.0', 'reference' => 'c51258e759afdb17f1fd1fe83bc12baaef6309d6', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.5', 'version' => '3.0.5.0', 'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.10', 'version' => '2.0.10.0', 'reference' => '5817d0659c5b50c9b950feb9af7b9668e2c436bc', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => 'f92996c4d5c1a696a6a970e20f7c4216200fcc42', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v11.20.0', 'version' => '11.20.0.0', 'reference' => 'f47be671981a4438257c4fbfc3ad257f4e3e929a', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v11.20.0', 'version' => '11.20.0.0', 'reference' => '34ead9385e0eab7e947807d77da66faf9bdf95ff', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.0.5', 'version' => '4.0.5.0', 'reference' => '736c567e257dbe0fcf6ce81b4d6dbe05c6899f96', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.19.1', 'version' => '4.19.1.0', 'reference' => '4e1b88d21c69391150ace211e9eaf05810858d0b', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.2.0', 'version' => '4.2.0.0', 'reference' => '8b0223b5ed235fd377c75fdd1bfcad05c0f168b8', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.29.1', 'version' => '1.29.1.0', 'reference' => 'fcaefacf2d5c417e928405b71b400d4ce10daaf4', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '^1.11.9')), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.13.0', 'version' => '1.13.0.0', 'reference' => 'eb8ae001b5a455665c89c1df97f6fb682f8fb0f5', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.5.0', 'version' => '1.5.0.0', 'reference' => 'bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v3.2.0', 'version' => '3.2.0.0', 'reference' => '8a164643313c71354582dc850b42b33fa12a4b63', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.16.0', 'version' => '1.16.0.0', 'reference' => '23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1e5b0acb8fe55143b5b426817155190eb6f5b18d', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '11ac7b9060990b62f972a42330cceab294ee097e', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'c053b9795a81bb9fd5b8d59e05c7556f19267893', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '2bacfc618ca1987deab1e70f87720805a171a1a8', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'ece927272de55206ad2832bb7fe3993c814fae01', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.1.1', 'version' => '5.1.1.0', 'reference' => 'c41e007b4b62af48218231d6c2275e4c9b975b2e', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.10', 'version' => '6.4.10.0', 'reference' => '504974cbe43d05f83b201d6498c206f16fc0cdbc', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.5.0', 'version' => '3.5.0.0', 'reference' => '0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v6.4.9', 'version' => '6.4.9.0', 'reference' => 'b51ef8059159330b74a4d52f68e671033c0fe463', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.4.10', 'version' => '6.4.10.0', 'reference' => 'af29198d87112bebdd397bd7735fbd115997824c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.30.0', 'version' => '1.30.0.0', 'reference' => 'fd22ab50000ef01661e2a31d850ebaa297f8e03c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.4.8', 'version' => '6.4.8.0', 'reference' => '8d92dd79149f29e89ee0f480254db595f6a6a2c5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.5.0', 'version' => '3.5.0.0', 'reference' => 'bd1d9e59a81d8fa4acdcea3f617c581f7475a80f', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/yaml' => array('pretty_version' => 'v7.1.1', 'version' => '7.1.1.0', 'reference' => 'fa34c77015aa6720469db7003567b9f772492bf2', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/yaml', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.2.0', 'version' => '11.2.0.0', 'reference' => '479cfcfd46047f80624aba931d9789e50475b5c6', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false)));
diff --git a/vendor/nette/utils/composer.json b/vendor/nette/utils/composer.json
index c37b96c58d6..9c81acc20e0 100644
--- a/vendor/nette/utils/composer.json
+++ b/vendor/nette/utils/composer.json
@@ -34,7 +34,7 @@
}
],
"require": {
- "php": ">=8.0 <8.4"
+ "php": "8.0 - 8.4"
},
"require-dev": {
"nette\/tester": "^2.5",
diff --git a/vendor/nette/utils/readme.md b/vendor/nette/utils/readme.md
index 530915f8f82..0038f534f41 100644
--- a/vendor/nette/utils/readme.md
+++ b/vendor/nette/utils/readme.md
@@ -1,5 +1,4 @@
-Nette Utility Classes
-=====================
+[![Nette Utils](https://github.com/nette/utils/assets/194960/c33fdb74-0652-4cad-ac6e-c1ce0d29e32a)](https://doc.nette.org/en/utils)
[![Downloads this Month](https://img.shields.io/packagist/dm/nette/utils.svg)](https://packagist.org/packages/nette/utils)
[![Tests](https://github.com/nette/utils/workflows/Tests/badge.svg?branch=master)](https://github.com/nette/utils/actions)
@@ -11,25 +10,27 @@ Nette Utility Classes
Introduction
------------
-In package nette/utils you will find a set of [useful classes](https://doc.nette.org/utils) for everyday use:
-
-- [Arrays](https://doc.nette.org/utils/arrays) - manipulate arrays
-- [Callback](https://doc.nette.org/utils/callback) - PHP callbacks
-- [Date and Time](https://doc.nette.org/utils/datetime) - modify times and dates
-- [Filesystem](https://doc.nette.org/utils/filesystem) - copying, renaming, …
-- [Finder](https://doc.nette.org/utils/finder) - finds files and directories
-- [Helper Functions](https://doc.nette.org/utils/helpers)
-- [HTML elements](https://doc.nette.org/utils/html-elements) - generate HTML
-- [Images](https://doc.nette.org/utils/images) - crop, resize, rotate images
-- [JSON](https://doc.nette.org/utils/json) - encoding and decoding
-- [Generating Random Strings](https://doc.nette.org/utils/random)
-- [Paginator](https://doc.nette.org/utils/paginator) - pagination math
-- [PHP Reflection](https://doc.nette.org/utils/reflection)
-- [Strings](https://doc.nette.org/utils/strings) - useful text functions
-- [SmartObject](https://doc.nette.org/utils/smartobject) - PHP object enhancements
-- [Validation](https://doc.nette.org/utils/validators) - validate inputs
-- [Type](https://doc.nette.org/utils/type) - PHP data type
-
+In package nette/utils you will find a set of useful classes for everyday use:
+
+✅ [Arrays](https://doc.nette.org/utils/arrays)
+✅ [Callback](https://doc.nette.org/utils/callback) - PHP callbacks
+✅ [Filesystem](https://doc.nette.org/utils/filesystem) - copying, renaming, …
+✅ [Finder](https://doc.nette.org/utils/finder) - finds files and directories
+✅ [Floats](https://doc.nette.org/utils/floats) - floating point numbers
+✅ [Helper Functions](https://doc.nette.org/utils/helpers)
+✅ [HTML elements](https://doc.nette.org/utils/html-elements) - generate HTML
+✅ [Images](https://doc.nette.org/utils/images) - crop, resize, rotate images
+✅ [Iterables](https://doc.nette.org/utils/iterables)
+✅ [JSON](https://doc.nette.org/utils/json) - encoding and decoding
+✅ [Generating Random Strings](https://doc.nette.org/utils/random)
+✅ [Paginator](https://doc.nette.org/utils/paginator) - pagination math
+✅ [PHP Reflection](https://doc.nette.org/utils/reflection)
+✅ [Strings](https://doc.nette.org/utils/strings) - useful text functions
+✅ [SmartObject](https://doc.nette.org/utils/smartobject) - PHP object enhancements
+✅ [Type](https://doc.nette.org/utils/type) - PHP data type
+✅ [Validation](https://doc.nette.org/utils/validators) - validate inputs
+
+
Installation
------------
@@ -40,11 +41,9 @@ The recommended way to install is via Composer:
composer require nette/utils
```
-- Nette Utils 4.0 is compatible with PHP 8.0 to 8.3
-- Nette Utils 3.2 is compatible with PHP 7.2 to 8.3
-- Nette Utils 3.1 is compatible with PHP 7.1 to 8.0
-- Nette Utils 3.0 is compatible with PHP 7.1 to 8.0
-- Nette Utils 2.5 is compatible with PHP 5.6 to 8.0
+Nette Utils 4.0 is compatible with PHP 8.0 to 8.4.
+
+
[Support Me](https://github.com/sponsors/dg)
--------------------------------------------
diff --git a/vendor/nette/utils/src/Iterators/CachingIterator.php b/vendor/nette/utils/src/Iterators/CachingIterator.php
index 28404b94ff4..d8dd9acd049 100644
--- a/vendor/nette/utils/src/Iterators/CachingIterator.php
+++ b/vendor/nette/utils/src/Iterators/CachingIterator.php
@@ -27,22 +27,13 @@ class CachingIterator extends \CachingIterator implements \Countable
* @var int
*/
private $counter = 0;
- public function __construct($iterator)
+ /**
+ * @param iterable|\stdClass $iterable
+ */
+ public function __construct($iterable)
{
- if (\is_array($iterator) || $iterator instanceof \stdClass) {
- $iterator = new \ArrayIterator($iterator);
- } elseif ($iterator instanceof \IteratorAggregate) {
- do {
- $iterator = $iterator->getIterator();
- } while ($iterator instanceof \IteratorAggregate);
- \assert($iterator instanceof \Iterator);
- } elseif ($iterator instanceof \Iterator) {
- } elseif ($iterator instanceof \Traversable) {
- $iterator = new \IteratorIterator($iterator);
- } else {
- throw new Nette\InvalidArgumentException(\sprintf('Invalid argument passed to %s; array or Traversable expected, %s given.', self::class, \get_debug_type($iterator)));
- }
- parent::__construct($iterator, 0);
+ $iterable = $iterable instanceof \stdClass ? new \ArrayIterator($iterable) : Nette\Utils\Iterables::toIterator($iterable);
+ parent::__construct($iterable, 0);
}
/**
* Is the current element the first one?
diff --git a/vendor/nette/utils/src/Iterators/Mapper.php b/vendor/nette/utils/src/Iterators/Mapper.php
index c99e40f74ed..2aefa8c45bc 100644
--- a/vendor/nette/utils/src/Iterators/Mapper.php
+++ b/vendor/nette/utils/src/Iterators/Mapper.php
@@ -8,7 +8,7 @@
namespace RectorPrefix202408\Nette\Iterators;
/**
- * Applies the callback to the elements of the inner iterator.
+ * @deprecated use Nette\Utils\Iterables::map()
*/
class Mapper extends \IteratorIterator
{
diff --git a/vendor/nette/utils/src/Utils/Arrays.php b/vendor/nette/utils/src/Utils/Arrays.php
index 2c071fc4c0e..d4dd90fe2f4 100644
--- a/vendor/nette/utils/src/Utils/Arrays.php
+++ b/vendor/nette/utils/src/Utils/Arrays.php
@@ -103,10 +103,11 @@ public static function contains(array $array, $value) : bool
}
/**
* Returns the first item (matching the specified predicate if given). If there is no such item, it returns result of invoking $else or null.
- * The $predicate has the signature `function (mixed $value, int|string $key, array $array): bool`.
- * @template T
- * @param array $array
- * @return ?T
+ * @template K of int|string
+ * @template V
+ * @param array $array
+ * @param ?callable(V, K, array): bool $predicate
+ * @return ?V
*/
public static function first(array $array, ?callable $predicate = null, ?callable $else = null)
{
@@ -115,10 +116,11 @@ public static function first(array $array, ?callable $predicate = null, ?callabl
}
/**
* Returns the last item (matching the specified predicate if given). If there is no such item, it returns result of invoking $else or null.
- * The $predicate has the signature `function (mixed $value, int|string $key, array $array): bool`.
- * @template T
- * @param array $array
- * @return ?T
+ * @template K of int|string
+ * @template V
+ * @param array $array
+ * @param ?callable(V, K, array): bool $predicate
+ * @return ?V
*/
public static function last(array $array, ?callable $predicate = null, ?callable $else = null)
{
@@ -127,8 +129,11 @@ public static function last(array $array, ?callable $predicate = null, ?callable
}
/**
* Returns the key of first item (matching the specified predicate if given) or null if there is no such item.
- * The $predicate has the signature `function (mixed $value, int|string $key, array $array): bool`.
- * @return int|string|null
+ * @template K of int|string
+ * @template V
+ * @param array $array
+ * @param ?callable(V, K, array): bool $predicate
+ * @return ?K
*/
public static function firstKey(array $array, ?callable $predicate = null)
{
@@ -145,8 +150,11 @@ public static function firstKey(array $array, ?callable $predicate = null)
}
/**
* Returns the key of last item (matching the specified predicate if given) or null if there is no such item.
- * The $predicate has the signature `function (mixed $value, int|string $key, array $array): bool`.
- * @return int|string|null
+ * @template K of int|string
+ * @template V
+ * @param array $array
+ * @param ?callable(V, K, array): bool $predicate
+ * @return ?K
*/
public static function lastKey(array $array, ?callable $predicate = null)
{
@@ -328,12 +336,11 @@ public static function pick(array &$array, $key, $default = null)
}
}
/**
- * Tests whether at least one element in the array passes the test implemented by the provided function,
- * which has the signature `function ($value, $key, array $array): bool`.
- * @template K
+ * Tests whether at least one element in the array passes the test implemented by the provided function.
+ * @template K of int|string
* @template V
- * @param iterable $array
- * @param callable(V, K, ($array is array ? array : iterable)): bool $predicate
+ * @param array $array
+ * @param callable(V, K, array): bool $predicate
*/
public static function some(iterable $array, callable $predicate) : bool
{
@@ -345,12 +352,11 @@ public static function some(iterable $array, callable $predicate) : bool
return \false;
}
/**
- * Tests whether all elements in the array pass the test implemented by the provided function,
- * which has the signature `function ($value, $key, array $array): bool`.
- * @template K
+ * Tests whether all elements in the array pass the test implemented by the provided function.
+ * @template K of int|string
* @template V
- * @param iterable $array
- * @param callable(V, K, ($array is array ? array : iterable)): bool $predicate
+ * @param array $array
+ * @param callable(V, K, array): bool $predicate
*/
public static function every(iterable $array, callable $predicate) : bool
{
@@ -363,11 +369,10 @@ public static function every(iterable $array, callable $predicate) : bool
}
/**
* Returns a new array containing all key-value pairs matching the given $predicate.
- * The callback has the signature `function (mixed $value, int|string $key, array $array): bool`.
- * @template K of array-key
+ * @template K of int|string
* @template V
- * @param array $array
- * @param callable(V, K, array): bool $predicate
+ * @param array $array
+ * @param callable(V, K, array): bool $predicate
* @return array
*/
public static function filter(array $array, callable $predicate) : array
@@ -382,12 +387,11 @@ public static function filter(array $array, callable $predicate) : array
}
/**
* Returns an array containing the original keys and results of applying the given transform function to each element.
- * The function has signature `function ($value, $key, array $array): mixed`.
- * @template K of array-key
+ * @template K of int|string
* @template V
* @template R
- * @param iterable $array
- * @param callable(V, K, ($array is array ? array : iterable)): R $transformer
+ * @param array $array
+ * @param callable(V, K, array): R $transformer
* @return array
*/
public static function map(iterable $array, callable $transformer) : array
@@ -398,6 +402,28 @@ public static function map(iterable $array, callable $transformer) : array
}
return $res;
}
+ /**
+ * Returns an array containing new keys and values generated by applying the given transform function to each element.
+ * If the function returns null, the element is skipped.
+ * @template K of int|string
+ * @template V
+ * @template ResK of int|string
+ * @template ResV
+ * @param array $array
+ * @param callable(V, K, array): ?array{ResK, ResV} $transformer
+ * @return array
+ */
+ public static function mapWithKeys(array $array, callable $transformer) : array
+ {
+ $res = [];
+ foreach ($array as $k => $v) {
+ $pair = $transformer($v, $k, $array);
+ if ($pair) {
+ $res[$pair[0]] = $pair[1];
+ }
+ }
+ return $res;
+ }
/**
* Invokes all callbacks and returns array of results.
* @param callable[] $callbacks
diff --git a/vendor/nette/utils/src/Utils/Callback.php b/vendor/nette/utils/src/Utils/Callback.php
index b7091342c87..5efabbb038b 100644
--- a/vendor/nette/utils/src/Utils/Callback.php
+++ b/vendor/nette/utils/src/Utils/Callback.php
@@ -77,7 +77,7 @@ public static function toReflection($callable)
$callable = self::unwrap($callable);
}
if (is_string($callable) && \strpos($callable, '::') !== \false) {
- return new ReflectionMethod($callable);
+ return new ReflectionMethod(...\explode('::', $callable, 2));
} elseif (is_array($callable)) {
return new ReflectionMethod($callable[0], $callable[1]);
} elseif (is_object($callable) && !$callable instanceof \Closure) {
diff --git a/vendor/nette/utils/src/Utils/Image.php b/vendor/nette/utils/src/Utils/Image.php
index 51cb3be8296..3b277a0e136 100644
--- a/vendor/nette/utils/src/Utils/Image.php
+++ b/vendor/nette/utils/src/Utils/Image.php
@@ -133,9 +133,7 @@ public static function rgb(int $red, int $green, int $blue, int $transparency =
*/
public static function fromFile(string $file, ?int &$type = null)
{
- if (!\extension_loaded('gd')) {
- throw new Nette\NotSupportedException('PHP extension GD is not loaded.');
- }
+ self::ensureExtension();
$type = self::detectTypeFromFile($file);
if (!$type) {
throw new UnknownImageFileException(\is_file($file) ? "Unknown type of file '{$file}'." : "File '{$file}' not found.");
@@ -150,9 +148,7 @@ public static function fromFile(string $file, ?int &$type = null)
*/
public static function fromString(string $s, ?int &$type = null)
{
- if (!\extension_loaded('gd')) {
- throw new Nette\NotSupportedException('PHP extension GD is not loaded.');
- }
+ self::ensureExtension();
$type = self::detectTypeFromString($s);
if (!$type) {
throw new UnknownImageFileException('Unknown type of image.');
@@ -185,9 +181,7 @@ private static function invokeSafe(string $func, string $arg, string $message, s
*/
public static function fromBlank(int $width, int $height, $color = null)
{
- if (!\extension_loaded('gd')) {
- throw new Nette\NotSupportedException('PHP extension GD is not loaded.');
- }
+ self::ensureExtension();
if ($width < 1 || $height < 1) {
throw new Nette\InvalidArgumentException('Image width and height must be greater than zero.');
}
@@ -257,6 +251,7 @@ public static function typeToMimeType(int $type) : string
*/
public static function isTypeSupported(int $type) : bool
{
+ self::ensureExtension();
switch ($type) {
case ImageType::JPEG:
return \IMG_JPG;
@@ -277,6 +272,7 @@ public static function isTypeSupported(int $type) : bool
/** @return ImageType[] */
public static function getSupportedTypes() : array
{
+ self::ensureExtension();
$flag = \imagetypes();
return \array_filter([
$flag & \IMG_GIF ? ImageType::GIF : null,
@@ -526,6 +522,7 @@ public function place(self $image, $left = 0, $top = 0, int $opacity = 100)
*/
public static function calculateTextBox(string $text, string $fontFile, float $size, float $angle = 0, array $options = []) : array
{
+ self::ensureExtension();
$box = \imagettfbbox($size, $angle, $fontFile, $text, $options);
return ['left' => $minX = \min([$box[0], $box[2], $box[4], $box[6]]), 'top' => $minY = \min([$box[1], $box[3], $box[5], $box[7]]), 'width' => \max([$box[0], $box[2], $box[4], $box[6]]) - $minX + 1, 'height' => \max([$box[1], $box[3], $box[5], $box[7]]) - $minY + 1];
}
@@ -684,4 +681,10 @@ public function resolveColor($color) : int
$color = $color instanceof ImageColor ? $color->toRGBA() : \array_values($color);
return \imagecolorallocatealpha($this->image, ...$color) ?: \imagecolorresolvealpha($this->image, ...$color);
}
+ private static function ensureExtension() : void
+ {
+ if (!\extension_loaded('gd')) {
+ throw new Nette\NotSupportedException('PHP extension GD is not loaded.');
+ }
+ }
}
diff --git a/vendor/nette/utils/src/Utils/Iterables.php b/vendor/nette/utils/src/Utils/Iterables.php
index b1f4bda25a6..1b4ab2a8d47 100644
--- a/vendor/nette/utils/src/Utils/Iterables.php
+++ b/vendor/nette/utils/src/Utils/Iterables.php
@@ -42,10 +42,11 @@ public static function containsKey(iterable $iterable, $key) : bool
}
/**
* Returns the first item (matching the specified predicate if given). If there is no such item, it returns result of invoking $else or null.
- * The $predicate has the signature `function (mixed $value, mixed $key, iterable $iterable): bool`.
- * @template T
- * @param iterable $iterable
- * @return ?T
+ * @template K
+ * @template V
+ * @param iterable $iterable
+ * @param ?callable(V, K, iterable): bool $predicate
+ * @return ?V
*/
public static function first(iterable $iterable, ?callable $predicate = null, ?callable $else = null)
{
@@ -58,10 +59,11 @@ public static function first(iterable $iterable, ?callable $predicate = null, ?c
}
/**
* Returns the key of first item (matching the specified predicate if given). If there is no such item, it returns result of invoking $else or null.
- * The $predicate has the signature `function (mixed $value, mixed $key, iterable $iterable): bool`.
- * @template T
- * @param iterable $iterable
- * @return ?T
+ * @template K
+ * @template V
+ * @param iterable $iterable
+ * @param ?callable(V, K, iterable): bool $predicate
+ * @return ?K
*/
public static function firstKey(iterable $iterable, ?callable $predicate = null, ?callable $else = null)
{
@@ -73,11 +75,10 @@ public static function firstKey(iterable $iterable, ?callable $predicate = null,
return $else ? $else() : null;
}
/**
- * Tests whether at least one element in the iterator passes the test implemented by the
- * provided callback with signature `function (mixed $value, mixed $key, iterable $iterable): bool`.
+ * Tests whether at least one element in the iterator passes the test implemented by the provided function.
* @template K
* @template V
- * @param iterable $iterable
+ * @param iterable $iterable
* @param callable(V, K, iterable): bool $predicate
*/
public static function some(iterable $iterable, callable $predicate) : bool
@@ -90,11 +91,10 @@ public static function some(iterable $iterable, callable $predicate) : bool
return \false;
}
/**
- * Tests whether all elements in the iterator pass the test implemented by the provided function,
- * which has the signature `function (mixed $value, mixed $key, iterable $iterable): bool`.
+ * Tests whether all elements in the iterator pass the test implemented by the provided function.
* @template K
* @template V
- * @param iterable $iterable
+ * @param iterable $iterable
* @param callable(V, K, iterable): bool $predicate
*/
public static function every(iterable $iterable, callable $predicate) : bool
@@ -108,11 +108,10 @@ public static function every(iterable $iterable, callable $predicate) : bool
}
/**
* Iterator that filters elements according to a given $predicate. Maintains original keys.
- * The callback has the signature `function (mixed $value, mixed $key, iterable $iterable): bool`.
* @template K
* @template V
- * @param iterable $iterable
- * @param callable(V, K, iterable): bool $predicate
+ * @param iterable $iterable
+ * @param callable(V, K, iterable): bool $predicate
* @return \Generator
*/
public static function filter(iterable $iterable, callable $predicate) : \Generator
@@ -125,12 +124,11 @@ public static function filter(iterable $iterable, callable $predicate) : \Genera
}
/**
* Iterator that transforms values by calling $transformer. Maintains original keys.
- * The callback has the signature `function (mixed $value, mixed $key, iterable $iterable): bool`.
* @template K
* @template V
* @template R
- * @param iterable $iterable
- * @param callable(V, K, iterable): R $transformer
+ * @param iterable $iterable
+ * @param callable(V, K, iterable): R $transformer
* @return \Generator
*/
public static function map(iterable $iterable, callable $transformer) : \Generator
@@ -139,4 +137,89 @@ public static function map(iterable $iterable, callable $transformer) : \Generat
(yield $k => $transformer($v, $k, $iterable));
}
}
+ /**
+ * Iterator that transforms keys and values by calling $transformer. If it returns null, the element is skipped.
+ * @template K
+ * @template V
+ * @template ResV
+ * @template ResK
+ * @param iterable $iterable
+ * @param callable(V, K, iterable): ?array{ResV, ResK} $transformer
+ * @return \Generator
+ */
+ public static function mapWithKeys(iterable $iterable, callable $transformer) : \Generator
+ {
+ foreach ($iterable as $k => $v) {
+ $pair = $transformer($v, $k, $iterable);
+ if ($pair) {
+ (yield $pair[0] => $pair[1]);
+ }
+ }
+ }
+ /**
+ * Wraps around iterator and caches its keys and values during iteration.
+ * This allows the data to be re-iterated multiple times.
+ * @template K
+ * @template V
+ * @param iterable $iterable
+ * @return \IteratorAggregate
+ */
+ public static function memoize(iterable $iterable) : iterable
+ {
+ return new class(self::toIterator($iterable)) implements \IteratorAggregate
+ {
+ /**
+ * @var \Iterator
+ */
+ private $iterator;
+ /**
+ * @var mixed[]
+ */
+ private $cache = [];
+ public function __construct(\Iterator $iterator, array $cache = [])
+ {
+ $this->iterator = $iterator;
+ $this->cache = $cache;
+ }
+ public function getIterator() : \Generator
+ {
+ if (!$this->cache) {
+ $this->iterator->rewind();
+ }
+ $i = 0;
+ while (\true) {
+ if (isset($this->cache[$i])) {
+ [$k, $v] = $this->cache[$i];
+ } elseif ($this->iterator->valid()) {
+ $k = $this->iterator->key();
+ $v = $this->iterator->current();
+ $this->iterator->next();
+ $this->cache[$i] = [$k, $v];
+ } else {
+ break;
+ }
+ (yield $k => $v);
+ $i++;
+ }
+ }
+ };
+ }
+ /**
+ * Creates an iterator from anything that is iterable.
+ * @template K
+ * @template V
+ * @param iterable $iterable
+ * @return \Iterator
+ */
+ public static function toIterator(iterable $iterable) : \Iterator
+ {
+ switch (\true) {
+ case $iterable instanceof \Iterator:
+ return $iterable;
+ case $iterable instanceof \IteratorAggregate:
+ return self::toIterator($iterable->getIterator());
+ case \is_array($iterable):
+ return new \ArrayIterator($iterable);
+ }
+ }
}
diff --git a/vendor/nette/utils/src/Utils/Reflection.php b/vendor/nette/utils/src/Utils/Reflection.php
index 523f88b6872..771f899012c 100644
--- a/vendor/nette/utils/src/Utils/Reflection.php
+++ b/vendor/nette/utils/src/Utils/Reflection.php
@@ -75,7 +75,7 @@ public static function getMethodDeclaringMethod(\ReflectionMethod $method) : \Re
return $method;
}
$hash = [$method->getFileName(), $method->getStartLine(), $method->getEndLine()];
- if (($alias = $decl->getTraitAliases()[$method->name] ?? null) && ($m = new \ReflectionMethod($alias)) && $hash === [$m->getFileName(), $m->getStartLine(), $m->getEndLine()]) {
+ if (($alias = $decl->getTraitAliases()[$method->name] ?? null) && ($m = new \ReflectionMethod(...\explode('::', $alias, 2))) && $hash === [$m->getFileName(), $m->getStartLine(), $m->getEndLine()]) {
return self::getMethodDeclaringMethod($m);
}
foreach ($decl->getTraits() as $trait) {
@@ -91,7 +91,7 @@ public static function getMethodDeclaringMethod(\ReflectionMethod $method) : \Re
public static function areCommentsAvailable() : bool
{
static $res;
- return $res ?? ($res = (bool) (new \ReflectionMethod(__METHOD__))->getDocComment());
+ return $res ?? ($res = (bool) (new \ReflectionMethod(self::class, __FUNCTION__))->getDocComment());
}
public static function toString(\Reflector $ref) : string
{
@@ -100,7 +100,7 @@ public static function toString(\Reflector $ref) : string
} elseif ($ref instanceof \ReflectionMethod) {
return $ref->getDeclaringClass()->name . '::' . $ref->name . '()';
} elseif ($ref instanceof \ReflectionFunction) {
- return $ref->name . '()';
+ return \PHP_VERSION_ID >= 80200 && $ref->isAnonymous() ? '{closure}()' : $ref->name . '()';
} elseif ($ref instanceof \ReflectionProperty) {
return self::getPropertyDeclaringClass($ref)->name . '::$' . $ref->name;
} elseif ($ref instanceof \ReflectionParameter) {
diff --git a/vendor/nette/utils/src/Utils/Strings.php b/vendor/nette/utils/src/Utils/Strings.php
index 3d6dd7ea1ff..5758965547c 100644
--- a/vendor/nette/utils/src/Utils/Strings.php
+++ b/vendor/nette/utils/src/Utils/Strings.php
@@ -486,6 +486,7 @@ public static function match(
/**
* Searches the string for all occurrences matching the regular expression and
* returns an array of arrays containing the found expression and each subexpression.
+ * @return ($lazy is true ? \Generator : array[])
* @param bool|int $captureOffset
*/
public static function matchAll(
@@ -498,17 +499,35 @@ public static function matchAll(
int $offset = 0,
bool $unmatchedAsNull = \false,
bool $patternOrder = \false,
- bool $utf8 = \false
- ) : array
+ bool $utf8 = \false,
+ bool $lazy = \false
+ )
{
- $flags = \is_int($captureOffset) ? $captureOffset : ($captureOffset ? \PREG_OFFSET_CAPTURE : 0) | ($unmatchedAsNull ? \PREG_UNMATCHED_AS_NULL : 0) | ($patternOrder ? \PREG_PATTERN_ORDER : 0);
if ($utf8) {
$offset = strlen(self::substring($subject, 0, $offset));
$pattern .= 'u';
}
+ if ($lazy) {
+ $flags = \PREG_OFFSET_CAPTURE | ($unmatchedAsNull ? \PREG_UNMATCHED_AS_NULL : 0);
+ return (function () use($utf8, $captureOffset, $flags, $subject, $pattern, $offset) {
+ $counter = 0;
+ while ($offset <= strlen($subject) - ($counter ? 1 : 0) && self::pcre('preg_match', [$pattern, $subject, &$m, $flags, $offset])) {
+ $offset = $m[0][1] + \max(1, strlen($m[0][0]));
+ if (!$captureOffset) {
+ $m = \array_map(function ($item) {
+ return $item[0];
+ }, $m);
+ } elseif ($utf8) {
+ $m = self::bytesToChars($subject, [$m])[0];
+ }
+ (yield $counter++ => $m);
+ }
+ })();
+ }
if ($offset > strlen($subject)) {
return [];
}
+ $flags = \is_int($captureOffset) ? $captureOffset : ($captureOffset ? \PREG_OFFSET_CAPTURE : 0) | ($unmatchedAsNull ? \PREG_UNMATCHED_AS_NULL : 0) | ($patternOrder ? \PREG_PATTERN_ORDER : 0);
self::pcre('preg_match_all', [$pattern, $subject, &$m, $flags & \PREG_PATTERN_ORDER ? $flags : $flags | \PREG_SET_ORDER, $offset]);
return $utf8 && $captureOffset ? self::bytesToChars($subject, $m) : $m;
}
diff --git a/vendor/rector/extension-installer/src/GeneratedConfig.php b/vendor/rector/extension-installer/src/GeneratedConfig.php
index b7615a5319d..91d8923cee5 100644
--- a/vendor/rector/extension-installer/src/GeneratedConfig.php
+++ b/vendor/rector/extension-installer/src/GeneratedConfig.php
@@ -9,7 +9,7 @@
*/
final class GeneratedConfig
{
- public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 3ba7adb'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main c053b97'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main acfcef8'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 01e3fe7'));
+ public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 11ac7b9'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main c053b97'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 2bacfc6'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main ece9272'));
private function __construct()
{
}
diff --git a/vendor/rector/rector-doctrine/README.md b/vendor/rector/rector-doctrine/README.md
index b844e632b2c..ba34bf4f9f7 100644
--- a/vendor/rector/rector-doctrine/README.md
+++ b/vendor/rector/rector-doctrine/README.md
@@ -1,6 +1,6 @@
# Rector Rules for Doctrine
-See available [Doctrine rules](/docs/rector_rules_overview.md)
+See available [Doctrine rules](https://getrector.com/find-rule?query=doctrine+rules)
## Install
diff --git a/vendor/rector/rector-doctrine/composer.json b/vendor/rector/rector-doctrine/composer.json
index eb7701015e9..e720d6b5919 100644
--- a/vendor/rector/rector-doctrine/composer.json
+++ b/vendor/rector/rector-doctrine/composer.json
@@ -19,7 +19,7 @@
"symplify\/easy-coding-standard": "^12.3",
"symplify\/phpstan-extensions": "^11.4",
"symplify\/phpstan-rules": "^13.0",
- "symplify\/rule-doc-generator": "^12.2",
+ "symplify\/rule-doc-generator": "^12.2.5",
"symplify\/vendor-patches": "^11.3",
"tomasvotruba\/class-leak": "^0.2.15",
"tomasvotruba\/unused-public": "^0.3",
@@ -51,10 +51,7 @@
"phpstan": "vendor\/bin\/phpstan analyse --ansi --error-format symplify",
"rector": "vendor\/bin\/rector --ansi",
"check-cs": "vendor\/bin\/ecs check --ansi",
- "fix-cs": "vendor\/bin\/ecs check --fix --ansi",
- "docs": [
- "vendor\/bin\/rule-doc-generator generate src rules --output-file docs\/rector_rules_overview.md --ansi"
- ]
+ "fix-cs": "vendor\/bin\/ecs check --fix --ansi"
},
"extra": {
"enable-patching": true
diff --git a/vendor/rector/rector-doctrine/docs/rector_rules_overview.md b/vendor/rector/rector-doctrine/docs/rector_rules_overview.md
index d5b7a3e4169..d78e20f77c7 100644
--- a/vendor/rector/rector-doctrine/docs/rector_rules_overview.md
+++ b/vendor/rector/rector-doctrine/docs/rector_rules_overview.md
@@ -1,5 +1,11 @@
# 18 Rules Overview
+**This overview is deprecated and replaced by more advanced web search. There you can search and filter by nodes, copy-paste configs for configurable rules and more.**
+
+Use https://getrector.com/find-rule?query=doctrine+rules instead!
+
+---
+
## AddReturnDocBlockToCollectionPropertyGetterByToManyAnnotationRector
Adds `@return` PHPDoc type to Collection property getter by *ToMany annotation/attribute
diff --git a/vendor/rector/rector-phpunit/README.md b/vendor/rector/rector-phpunit/README.md
index 0a8aa1b4d91..9969a772d98 100644
--- a/vendor/rector/rector-phpunit/README.md
+++ b/vendor/rector/rector-phpunit/README.md
@@ -1,6 +1,6 @@
# Rector Rules for PHPUnit
-See available [PHPUnit rules](/docs/rector_rules_overview.md)
+See available [PHPUnit rules](https://getrector.com/find-rule?query=phpunit+rules)
## Install
diff --git a/vendor/rector/rector-phpunit/composer.json b/vendor/rector/rector-phpunit/composer.json
index 739566dcb65..2f1db523320 100644
--- a/vendor/rector/rector-phpunit/composer.json
+++ b/vendor/rector/rector-phpunit/composer.json
@@ -13,7 +13,7 @@
"symplify\/phpstan-rules": "^13.0",
"symplify\/phpstan-extensions": "^11.2",
"symplify\/easy-coding-standard": "^12.3",
- "symplify\/rule-doc-generator": "^12.0",
+ "symplify\/rule-doc-generator": "^12.2.5",
"phpstan\/extension-installer": "^1.4",
"phpstan\/phpstan-webmozart-assert": "^1.2",
"symplify\/vendor-patches": "^11.2",
@@ -53,8 +53,7 @@
"check-cs": "vendor\/bin\/ecs check --ansi",
"class-leak": "vendor\/bin\/class-leak check config src rules --skip-suffix \"Rector\"",
"fix-cs": "vendor\/bin\/ecs check --fix --ansi",
- "rector": "vendor\/bin\/rector process --ansi",
- "docs": "vendor\/bin\/rule-doc-generator generate src rules --output-file docs\/rector_rules_overview.md --ansi"
+ "rector": "vendor\/bin\/rector process --ansi"
},
"extra": {
"enable-patching": true,
diff --git a/vendor/rector/rector-phpunit/docs/rector_rules_overview.md b/vendor/rector/rector-phpunit/docs/rector_rules_overview.md
index 860013602ea..7a7c5c8caa4 100644
--- a/vendor/rector/rector-phpunit/docs/rector_rules_overview.md
+++ b/vendor/rector/rector-phpunit/docs/rector_rules_overview.md
@@ -1,5 +1,11 @@
# 55 Rules Overview
+**This overview is deprecated and replaced by more advanced web search. There you can search and filter by nodes, copy-paste configs for configurable rules and more.**
+
+Use https://getrector.com/find-rule?query=phpunit+rules instead!
+
+---
+
## AddCoversClassAttributeRector
Adds `#[CoversClass(...)]` attribute to test files guessing source class name.
diff --git a/vendor/rector/rector-symfony/README.md b/vendor/rector/rector-symfony/README.md
index 400e9cce4fe..bac702cd501 100644
--- a/vendor/rector/rector-symfony/README.md
+++ b/vendor/rector/rector-symfony/README.md
@@ -1,6 +1,6 @@
# Rector Rules for Symfony
-See available [Symfony rules](/docs/rector_rules_overview.md)
+See available [Symfony rules](https://getrector.com/find-rule?query=symfony+rules)
## Install
diff --git a/vendor/rector/rector-symfony/composer.json b/vendor/rector/rector-symfony/composer.json
index a56c2580a92..b041e630ee2 100644
--- a/vendor/rector/rector-symfony/composer.json
+++ b/vendor/rector/rector-symfony/composer.json
@@ -24,7 +24,7 @@
"symplify\/easy-coding-standard": "^12.3",
"symplify\/phpstan-extensions": "^11.4",
"symplify\/phpstan-rules": "^13.0",
- "symplify\/rule-doc-generator": "^12.2.2",
+ "symplify\/rule-doc-generator": "^12.2.5",
"symplify\/vendor-patches": "^11.3",
"tomasvotruba\/class-leak": "^0.2",
"tomasvotruba\/unused-public": "^0.3.10",
@@ -52,8 +52,7 @@
"scripts": {
"phpstan": "vendor\/bin\/phpstan analyse --ansi --error-format symplify",
"check-cs": "vendor\/bin\/ecs check --ansi",
- "fix-cs": "vendor\/bin\/ecs check --fix --ansi",
- "docs": "vendor\/bin\/rule-doc-generator generate src rules --output-file docs\/rector_rules_overview.md --ansi"
+ "fix-cs": "vendor\/bin\/ecs check --fix --ansi"
},
"extra": {
"enable-patching": true
diff --git a/vendor/rector/rector-symfony/docs/rector_rules_overview.md b/vendor/rector/rector-symfony/docs/rector_rules_overview.md
index a8d419e04f9..505300b8de0 100644
--- a/vendor/rector/rector-symfony/docs/rector_rules_overview.md
+++ b/vendor/rector/rector-symfony/docs/rector_rules_overview.md
@@ -1,5 +1,11 @@
# 85 Rules Overview
+**This overview is deprecated and replaced by more advanced web search. There you can search and filter by nodes, copy-paste configs for configurable rules and more.**
+
+Use https://getrector.com/find-rule?query=symfony+rules instead!
+
+---
+
## ActionSuffixRemoverRector
Removes Action suffixes from methods in Symfony Controllers
diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php
index d6373ed5ef5..612ce7570cf 100644
--- a/vendor/scoper-autoload.php
+++ b/vendor/scoper-autoload.php
@@ -14,7 +14,7 @@
// Restore the backup and ensure the excluded files are properly marked as loaded
$GLOBALS['__composer_autoload_files'] = \array_merge(
$existingComposerAutoloadFiles,
- \array_fill_keys(['0e6d7bf4a5811bfa5cf40c5ccd6fae6a', '5928a00fa978807cf85d90ec3f4b0147'], true)
+ \array_fill_keys(['5928a00fa978807cf85d90ec3f4b0147', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a'], true)
);
return $loader;
@@ -30,7 +30,7 @@ function humbug_phpscoper_expose_class($exposed, $prefixed) {
}
}
humbug_phpscoper_expose_class('AutoloadIncluder', 'RectorPrefix202408\AutoloadIncluder');
-humbug_phpscoper_expose_class('ComposerAutoloaderInit4bcaef4da4b0314c67dae59e30837b25', 'RectorPrefix202408\ComposerAutoloaderInit4bcaef4da4b0314c67dae59e30837b25');
+humbug_phpscoper_expose_class('ComposerAutoloaderInit969cf4fb8686733ba64d08544d342ca0', 'RectorPrefix202408\ComposerAutoloaderInit969cf4fb8686733ba64d08544d342ca0');
humbug_phpscoper_expose_class('Product', 'RectorPrefix202408\Product');
// Function aliases. For more information see: