Updated Rector to commit 45eef47f27

45eef47f27 [DX] Various config merge, improve RectorConfig methods (#2371)
This commit is contained in:
Tomas Votruba 2022-05-27 13:38:07 +00:00
parent 7e46eb8267
commit 6693d5cd3d
12 changed files with 95 additions and 89 deletions

View File

@ -3,13 +3,49 @@
declare (strict_types=1);
namespace RectorPrefix20220527;
use RectorPrefix20220527\OndraM\CiDetector\CiDetector;
use Rector\Caching\ValueObject\Storage\MemoryCacheStorage;
use Rector\Config\RectorConfig;
use Rector\Core\Bootstrap\ExtensionConfigResolver;
use RectorPrefix20220527\Symplify\EasyParallel\ValueObject\EasyParallelConfig;
use RectorPrefix20220527\Symplify\PackageBuilder\Yaml\ParametersMerger;
return static function (\Rector\Config\RectorConfig $rectorConfig) : void {
$rectorConfig->import(__DIR__ . '/services.php');
$rectorConfig->import(__DIR__ . '/services-rules.php');
$rectorConfig->import(__DIR__ . '/services-packages.php');
$rectorConfig->import(__DIR__ . '/parameters.php');
// make use of https://github.com/symplify/easy-parallel
$rectorConfig->import(\RectorPrefix20220527\Symplify\EasyParallel\ValueObject\EasyParallelConfig::FILE_PATH);
$rectorConfig->paths([]);
$rectorConfig->skip([]);
$rectorConfig->autoloadPaths([]);
$rectorConfig->bootstrapFiles([]);
$rectorConfig->parallel(120, 16, 20);
$rectorConfig->disableImportNames();
$rectorConfig->importShortClasses();
$rectorConfig->fileExtensions(['php']);
$rectorConfig->nestedChainMethodCallLimit(60);
$rectorConfig->cacheDirectory(\sys_get_temp_dir() . '/rector_cached_files');
$services = $rectorConfig->services();
$services->defaults()->public()->autowire()->autoconfigure();
$services->load('Rector\\', __DIR__ . '/../packages')->exclude([
__DIR__ . '/../packages/Config/RectorConfig.php',
__DIR__ . '/../packages/*/{ValueObject,Contract,Exception}',
__DIR__ . '/../packages/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php',
__DIR__ . '/../packages/Testing/PHPUnit',
__DIR__ . '/../packages/BetterPhpDocParser/PhpDoc',
__DIR__ . '/../packages/PHPStanStaticTypeMapper/Enum',
__DIR__ . '/../packages/Caching/Cache.php',
// used in PHPStan
__DIR__ . '/../packages/NodeTypeResolver/Reflection/BetterReflection/RectorBetterReflectionSourceLocatorFactory.php',
__DIR__ . '/../packages/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php',
]);
// parallel
$services->set(\RectorPrefix20220527\Symplify\PackageBuilder\Yaml\ParametersMerger::class);
// use faster in-memory cache in CI.
// CI always starts from scratch, therefore IO intensive caching is not worth it
$ciDetector = new \RectorPrefix20220527\OndraM\CiDetector\CiDetector();
if ($ciDetector->isCiDetected()) {
$rectorConfig->cacheClass(\Rector\Caching\ValueObject\Storage\MemoryCacheStorage::class);
}
$extensionConfigResolver = new \Rector\Core\Bootstrap\ExtensionConfigResolver();
$extensionConfigFiles = $extensionConfigResolver->provide();
foreach ($extensionConfigFiles as $extensionConfigFile) {

View File

@ -1,37 +0,0 @@
<?php
declare (strict_types=1);
namespace RectorPrefix20220527;
use RectorPrefix20220527\OndraM\CiDetector\CiDetector;
use Rector\Caching\ValueObject\Storage\MemoryCacheStorage;
use Rector\Config\RectorConfig;
use Rector\Core\Configuration\Option;
return static function (\Rector\Config\RectorConfig $rectorConfig) : void {
// paths and extensions
$rectorConfig->paths([]);
$parameters = $rectorConfig->parameters();
$parameters->set(\Rector\Core\Configuration\Option::FILE_EXTENSIONS, ['php']);
$rectorConfig->autoloadPaths([]);
// these files will be executed, useful e.g. for constant definitions
$rectorConfig->bootstrapFiles([]);
// parallel
$rectorConfig->disableParallel();
$parameters->set(\Rector\Core\Configuration\Option::PARALLEL_MAX_NUMBER_OF_PROCESSES, 16);
$parameters->set(\Rector\Core\Configuration\Option::PARALLEL_JOB_SIZE, 20);
$parameters->set(\Rector\Core\Configuration\Option::PARALLEL_TIMEOUT_IN_SECONDS, 120);
// FQN class importing
$rectorConfig->disableImportNames();
$rectorConfig->importShortClasses();
$parameters->set(\Rector\Core\Configuration\Option::NESTED_CHAIN_METHOD_CALL_LIMIT, 60);
$rectorConfig->skip([]);
$parameters->set(\Rector\Core\Configuration\Option::PHPSTAN_FOR_RECTOR_PATH, null);
// cache
$parameters->set(\Rector\Core\Configuration\Option::CACHE_DIR, \sys_get_temp_dir() . '/rector_cached_files');
// use faster in-memory cache in CI.
// CI always starts from scratch, therefore IO intensive caching is not worth it
$ciDetector = new \RectorPrefix20220527\OndraM\CiDetector\CiDetector();
if ($ciDetector->isCiDetected()) {
$parameters->set(\Rector\Core\Configuration\Option::CACHE_CLASS, \Rector\Caching\ValueObject\Storage\MemoryCacheStorage::class);
}
};

View File

@ -1,28 +0,0 @@
<?php
declare (strict_types=1);
namespace RectorPrefix20220527;
use Rector\Config\RectorConfig;
use RectorPrefix20220527\Symplify\EasyParallel\ValueObject\EasyParallelConfig;
use RectorPrefix20220527\Symplify\PackageBuilder\Yaml\ParametersMerger;
return static function (\Rector\Config\RectorConfig $rectorConfig) : void {
// make use of https://github.com/symplify/easy-parallel
$rectorConfig->import(\RectorPrefix20220527\Symplify\EasyParallel\ValueObject\EasyParallelConfig::FILE_PATH);
$services = $rectorConfig->services();
$services->defaults()->public()->autowire()->autoconfigure();
$services->load('Rector\\', __DIR__ . '/../packages')->exclude([
__DIR__ . '/../packages/Config/RectorConfig.php',
__DIR__ . '/../packages/*/{ValueObject,Contract,Exception}',
__DIR__ . '/../packages/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php',
__DIR__ . '/../packages/Testing/PHPUnit',
__DIR__ . '/../packages/BetterPhpDocParser/PhpDoc',
__DIR__ . '/../packages/PHPStanStaticTypeMapper/Enum',
__DIR__ . '/../packages/Caching/Cache.php',
// used in PHPStan
__DIR__ . '/../packages/NodeTypeResolver/Reflection/BetterReflection/RectorBetterReflectionSourceLocatorFactory.php',
__DIR__ . '/../packages/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php',
]);
// parallel
$services->set(\RectorPrefix20220527\Symplify\PackageBuilder\Yaml\ParametersMerger::class);
};

View File

@ -3,6 +3,7 @@
declare (strict_types=1);
namespace Rector\Config;
use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface;
use Rector\Core\Configuration\Option;
use Rector\Core\Configuration\ValueObjectInliner;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
@ -161,4 +162,32 @@ final class RectorConfig extends \Symfony\Component\DependencyInjection\Loader\C
$parameters = $this->parameters();
$parameters->set(\Rector\Core\Configuration\Option::SYMFONY_CONTAINER_PHP_PATH_PARAMETER, $filePath);
}
/**
* @param string[] $extensions
*/
public function fileExtensions(array $extensions) : void
{
\RectorPrefix20220527\Webmozart\Assert\Assert::allString($extensions);
$parameters = $this->parameters();
$parameters->set(\Rector\Core\Configuration\Option::FILE_EXTENSIONS, $extensions);
}
public function nestedChainMethodCallLimit(int $limit) : void
{
$parameters = $this->parameters();
$parameters->set(\Rector\Core\Configuration\Option::NESTED_CHAIN_METHOD_CALL_LIMIT, $limit);
}
public function cacheDirectory(string $directoryPath) : void
{
$parameters = $this->parameters();
$parameters->set(\Rector\Core\Configuration\Option::CACHE_DIR, $directoryPath);
}
/**
* @param class-string<CacheStorageInterface> $cacheClass
*/
public function cacheClass(string $cacheClass) : void
{
\RectorPrefix20220527\Webmozart\Assert\Assert::isAOf($cacheClass, \Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface::class);
$parameters = $this->parameters();
$parameters->set(\Rector\Core\Configuration\Option::CACHE_CLASS, $cacheClass);
}
}

View File

@ -33,7 +33,9 @@ final class PHPStanServicesFactory
{
$containerFactory = new \PHPStan\DependencyInjection\ContainerFactory(\getcwd());
$additionalConfigFiles = [];
$additionalConfigFiles[] = $parameterProvider->provideStringParameter(\Rector\Core\Configuration\Option::PHPSTAN_FOR_RECTOR_PATH);
if ($parameterProvider->hasParameter(\Rector\Core\Configuration\Option::PHPSTAN_FOR_RECTOR_PATH)) {
$additionalConfigFiles[] = $parameterProvider->provideStringParameter(\Rector\Core\Configuration\Option::PHPSTAN_FOR_RECTOR_PATH);
}
$additionalConfigFiles[] = __DIR__ . '/../../../config/phpstan/static-reflection.neon';
$additionalConfigFiles[] = __DIR__ . '/../../../config/phpstan/better-infer.neon';
$additionalConfigFiles[] = __DIR__ . '/../../../config/phpstan/parser.neon';

View File

@ -29,7 +29,7 @@ final class UpgradeRectorConfigRector extends \Rector\Core\Rector\AbstractRector
/**
* @var array<string, string>
*/
private const PARAMETER_NAME_TO_METHOD_CALL_MAP = [\Rector\Core\Configuration\Option::PATHS => 'paths', \Rector\Core\Configuration\Option::SKIP => 'skip', \Rector\Core\Configuration\Option::AUTOLOAD_PATHS => 'autoloadPaths', \Rector\Core\Configuration\Option::BOOTSTRAP_FILES => 'bootstrapFiles', \Rector\Core\Configuration\Option::IMPORT_SHORT_CLASSES => 'importShortClasses', \Rector\Core\Configuration\Option::AUTO_IMPORT_NAMES => 'importNames', \Rector\Core\Configuration\Option::PARALLEL => 'parallel', \Rector\Core\Configuration\Option::PHPSTAN_FOR_RECTOR_PATH => 'phpstanConfig', \Rector\Core\Configuration\Option::PHP_VERSION_FEATURES => 'phpVersion'];
private const PARAMETER_NAME_TO_METHOD_CALL_MAP = [\Rector\Core\Configuration\Option::PATHS => 'paths', \Rector\Core\Configuration\Option::SKIP => 'skip', \Rector\Core\Configuration\Option::AUTOLOAD_PATHS => 'autoloadPaths', \Rector\Core\Configuration\Option::BOOTSTRAP_FILES => 'bootstrapFiles', \Rector\Core\Configuration\Option::IMPORT_SHORT_CLASSES => 'importShortClasses', \Rector\Core\Configuration\Option::AUTO_IMPORT_NAMES => 'importNames', \Rector\Core\Configuration\Option::PARALLEL => 'parallel', \Rector\Core\Configuration\Option::PHPSTAN_FOR_RECTOR_PATH => 'phpstanConfig', \Rector\Core\Configuration\Option::PHP_VERSION_FEATURES => 'phpVersion', \Rector\Core\Configuration\Option::CACHE_CLASS => 'cacheClass', \Rector\Core\Configuration\Option::CACHE_DIR => 'cacheDirectory', \Rector\Core\Configuration\Option::NESTED_CHAIN_METHOD_CALL_LIMIT => 'nestedChainMethodCallLimit', \Rector\Core\Configuration\Option::FILE_EXTENSIONS => 'fileExtensions', \Rector\Core\Configuration\Option::SYMFONY_CONTAINER_PHP_PATH_PARAMETER => 'symfonyContainerPhp', \Rector\Core\Configuration\Option::SYMFONY_CONTAINER_XML_PATH_PARAMETER => 'symfonyContainerXml'];
/**
* @var string
*/

View File

@ -16,11 +16,11 @@ final class VersionResolver
/**
* @var string
*/
public const PACKAGE_VERSION = 'a2d6da8b4e5f3058dd95b4db2d173682b250896e';
public const PACKAGE_VERSION = '45eef47f27df7b6ed3422c19db03e0e74fe0417b';
/**
* @var string
*/
public const RELEASE_DATE = '2022-05-27 11:45:03';
public const RELEASE_DATE = '2022-05-27 15:30:05';
/**
* @var string
*/

View File

@ -60,7 +60,7 @@ final class Option
*/
public const SYMFONY_CONTAINER_XML_PATH_PARAMETER = 'symfony_container_xml_path';
/**
* @internal Use @see \Rector\Config\RectorConfig::symfonyContainerPhp()
* @deprecated Use @see \Rector\Config\RectorConfig::symfonyContainerPhp()
* @var string
*/
public const SYMFONY_CONTAINER_PHP_PATH_PARAMETER = 'symfony_container_php_path';
@ -93,19 +93,23 @@ final class Option
*/
public const SKIP = \RectorPrefix20220527\Symplify\Skipper\ValueObject\Option::SKIP;
/**
* @deprecated Use RectorConfig::fileExtensions() instead
* @var string
*/
public const FILE_EXTENSIONS = 'file_extensions';
/**
* @deprecated Use RectorConfig::nestedChainMethodCallLimit() instead
* @var string
*/
public const NESTED_CHAIN_METHOD_CALL_LIMIT = 'nested_chain_method_call_limit';
/**
* @deprecated Use RectorConfig::cacheDirectory() instead
* @var string
*/
public const CACHE_DIR = 'cache_dir';
/**
* Cache backend. Most of the time we cache in files, but in ephemeral environment (e.g. CI), a faster `MemoryCacheStorage` can be usefull.
* @deprecated Use RectorConfig::cacheClass() instead
*
* @var class-string<CacheStorageInterface>
* @internal

2
vendor/autoload.php vendored
View File

@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) {
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitcd4fb762b0a3dd402c04f29837ba6ae5::getLoader();
return ComposerAutoloaderInitec8a7af6b45877f163da24591918fc50::getLoader();

View File

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInitcd4fb762b0a3dd402c04f29837ba6ae5
class ComposerAutoloaderInitec8a7af6b45877f163da24591918fc50
{
private static $loader;
@ -22,19 +22,19 @@ class ComposerAutoloaderInitcd4fb762b0a3dd402c04f29837ba6ae5
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInitcd4fb762b0a3dd402c04f29837ba6ae5', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInitec8a7af6b45877f163da24591918fc50', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInitcd4fb762b0a3dd402c04f29837ba6ae5', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInitec8a7af6b45877f163da24591918fc50', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitcd4fb762b0a3dd402c04f29837ba6ae5::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInitec8a7af6b45877f163da24591918fc50::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
$includeFiles = \Composer\Autoload\ComposerStaticInitcd4fb762b0a3dd402c04f29837ba6ae5::$files;
$includeFiles = \Composer\Autoload\ComposerStaticInitec8a7af6b45877f163da24591918fc50::$files;
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequirecd4fb762b0a3dd402c04f29837ba6ae5($fileIdentifier, $file);
composerRequireec8a7af6b45877f163da24591918fc50($fileIdentifier, $file);
}
return $loader;
@ -46,7 +46,7 @@ class ComposerAutoloaderInitcd4fb762b0a3dd402c04f29837ba6ae5
* @param string $file
* @return void
*/
function composerRequirecd4fb762b0a3dd402c04f29837ba6ae5($fileIdentifier, $file)
function composerRequireec8a7af6b45877f163da24591918fc50($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;

View File

@ -4,7 +4,7 @@
namespace Composer\Autoload;
class ComposerStaticInitcd4fb762b0a3dd402c04f29837ba6ae5
class ComposerStaticInitec8a7af6b45877f163da24591918fc50
{
public static $files = array (
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
@ -3919,9 +3919,9 @@ class ComposerStaticInitcd4fb762b0a3dd402c04f29837ba6ae5
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitcd4fb762b0a3dd402c04f29837ba6ae5::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitcd4fb762b0a3dd402c04f29837ba6ae5::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitcd4fb762b0a3dd402c04f29837ba6ae5::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInitec8a7af6b45877f163da24591918fc50::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitec8a7af6b45877f163da24591918fc50::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitec8a7af6b45877f163da24591918fc50::$classMap;
}, null, ClassLoader::class);
}

View File

@ -9,8 +9,8 @@ $loader = require_once __DIR__.'/autoload.php';
if (!class_exists('AutoloadIncluder', false) && !interface_exists('AutoloadIncluder', false) && !trait_exists('AutoloadIncluder', false)) {
spl_autoload_call('RectorPrefix20220527\AutoloadIncluder');
}
if (!class_exists('ComposerAutoloaderInitcd4fb762b0a3dd402c04f29837ba6ae5', false) && !interface_exists('ComposerAutoloaderInitcd4fb762b0a3dd402c04f29837ba6ae5', false) && !trait_exists('ComposerAutoloaderInitcd4fb762b0a3dd402c04f29837ba6ae5', false)) {
spl_autoload_call('RectorPrefix20220527\ComposerAutoloaderInitcd4fb762b0a3dd402c04f29837ba6ae5');
if (!class_exists('ComposerAutoloaderInitec8a7af6b45877f163da24591918fc50', false) && !interface_exists('ComposerAutoloaderInitec8a7af6b45877f163da24591918fc50', false) && !trait_exists('ComposerAutoloaderInitec8a7af6b45877f163da24591918fc50', false)) {
spl_autoload_call('RectorPrefix20220527\ComposerAutoloaderInitec8a7af6b45877f163da24591918fc50');
}
if (!class_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !interface_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !trait_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false)) {
spl_autoload_call('RectorPrefix20220527\Helmich\TypoScriptParser\Parser\AST\Statement');
@ -59,9 +59,9 @@ if (!function_exists('print_node')) {
return \RectorPrefix20220527\print_node(...func_get_args());
}
}
if (!function_exists('composerRequirecd4fb762b0a3dd402c04f29837ba6ae5')) {
function composerRequirecd4fb762b0a3dd402c04f29837ba6ae5() {
return \RectorPrefix20220527\composerRequirecd4fb762b0a3dd402c04f29837ba6ae5(...func_get_args());
if (!function_exists('composerRequireec8a7af6b45877f163da24591918fc50')) {
function composerRequireec8a7af6b45877f163da24591918fc50() {
return \RectorPrefix20220527\composerRequireec8a7af6b45877f163da24591918fc50(...func_get_args());
}
}
if (!function_exists('scanPath')) {