Updated Rector to commit bca0356f43

bca0356f43 [TypeDeclaration][Php8] Enable ReturnTypeFromStrictTypedCallRector (#183)
This commit is contained in:
Tomas Votruba 2021-06-08 22:40:14 +00:00
parent f45f2bf59a
commit b1d9c22566
31 changed files with 377 additions and 53 deletions

View File

@ -16,11 +16,11 @@ final class VersionResolver
/**
* @var string
*/
public const PACKAGE_VERSION = 'd91667cd18cf3bb1b567a6c09ac15b26b6ac016a';
public const PACKAGE_VERSION = 'bca0356f43bd91f867c999724a1aea8965163c4a';
/**
* @var string
*/
public const RELEASE_DATE = '2021-06-08 12:55:26';
public const RELEASE_DATE = '2021-06-09 00:27:07';
public static function resolvePackageVersion() : string
{
$process = new \RectorPrefix20210608\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__);

2
vendor/autoload.php vendored
View File

@ -4,4 +4,4 @@
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitd86b37bb77e23b700ff350c244dc4fcf::getLoader();
return ComposerAutoloaderInit046c81e84e0a47c5886401db4ffb9e1b::getLoader();

View File

@ -3279,6 +3279,7 @@ return array(
'Ssch\\TYPO3Rector\\FileProcessor\\TypoScript\\Visitors\\OldConditionToExpressionLanguageVisitor' => $vendorDir . '/ssch/typo3-rector/src/FileProcessor/TypoScript/Visitors/OldConditionToExpressionLanguageVisitor.php',
'Ssch\\TYPO3Rector\\FileProcessor\\Yaml\\Form\\FormYamlProcessor' => $vendorDir . '/ssch/typo3-rector/src/FileProcessor/Yaml/Form/FormYamlProcessor.php',
'Ssch\\TYPO3Rector\\FileProcessor\\Yaml\\Form\\Rector\\EmailFinisherRector' => $vendorDir . '/ssch/typo3-rector/src/FileProcessor/Yaml/Form/Rector/EmailFinisherRector.php',
'Ssch\\TYPO3Rector\\FileProcessor\\Yaml\\Form\\Rector\\TranslationFileRector' => $vendorDir . '/ssch/typo3-rector/src/FileProcessor/Yaml/Form/Rector/TranslationFileRector.php',
'Ssch\\TYPO3Rector\\Helper\\ArrayUtility' => $vendorDir . '/ssch/typo3-rector/src/Helper/ArrayUtility.php',
'Ssch\\TYPO3Rector\\Helper\\Database\\Refactorings\\ConnectionCallFactory' => $vendorDir . '/ssch/typo3-rector/src/Helper/Database/Refactorings/ConnectionCallFactory.php',
'Ssch\\TYPO3Rector\\Helper\\Database\\Refactorings\\DatabaseConnectionExecInsertQueryRefactoring' => $vendorDir . '/ssch/typo3-rector/src/Helper/Database/Refactorings/DatabaseConnectionExecInsertQueryRefactoring.php',
@ -3462,6 +3463,7 @@ return array(
'Ssch\\TYPO3Rector\\Rector\\v9\\v3\\RemoveColPosParameterRector' => $vendorDir . '/ssch/typo3-rector/src/Rector/v9/v3/RemoveColPosParameterRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v3\\UseMethodGetPageShortcutDirectlyFromSysPageRector' => $vendorDir . '/ssch/typo3-rector/src/Rector/v9/v3/UseMethodGetPageShortcutDirectlyFromSysPageRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v3\\ValidateAnnotationRector' => $vendorDir . '/ssch/typo3-rector/src/Rector/v9/v3/ValidateAnnotationRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v4\\AdditionalFieldProviderRector' => $vendorDir . '/ssch/typo3-rector/src/Rector/v9/v4/AdditionalFieldProviderRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v4\\BackendUtilityShortcutExistsRector' => $vendorDir . '/ssch/typo3-rector/src/Rector/v9/v4/BackendUtilityShortcutExistsRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v4\\CallEnableFieldsFromPageRepositoryRector' => $vendorDir . '/ssch/typo3-rector/src/Rector/v9/v4/CallEnableFieldsFromPageRepositoryRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v4\\ConstantsToEnvironmentApiCallRector' => $vendorDir . '/ssch/typo3-rector/src/Rector/v9/v4/ConstantsToEnvironmentApiCallRector.php',

View File

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInitd86b37bb77e23b700ff350c244dc4fcf
class ComposerAutoloaderInit046c81e84e0a47c5886401db4ffb9e1b
{
private static $loader;
@ -22,15 +22,15 @@ class ComposerAutoloaderInitd86b37bb77e23b700ff350c244dc4fcf
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInitd86b37bb77e23b700ff350c244dc4fcf', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit046c81e84e0a47c5886401db4ffb9e1b', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInitd86b37bb77e23b700ff350c244dc4fcf', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit046c81e84e0a47c5886401db4ffb9e1b', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitd86b37bb77e23b700ff350c244dc4fcf::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit046c81e84e0a47c5886401db4ffb9e1b::getInitializer($loader));
} else {
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
@ -42,19 +42,19 @@ class ComposerAutoloaderInitd86b37bb77e23b700ff350c244dc4fcf
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInitd86b37bb77e23b700ff350c244dc4fcf::$files;
$includeFiles = Composer\Autoload\ComposerStaticInit046c81e84e0a47c5886401db4ffb9e1b::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequired86b37bb77e23b700ff350c244dc4fcf($fileIdentifier, $file);
composerRequire046c81e84e0a47c5886401db4ffb9e1b($fileIdentifier, $file);
}
return $loader;
}
}
function composerRequired86b37bb77e23b700ff350c244dc4fcf($fileIdentifier, $file)
function composerRequire046c81e84e0a47c5886401db4ffb9e1b($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;

View File

@ -4,7 +4,7 @@
namespace Composer\Autoload;
class ComposerStaticInitd86b37bb77e23b700ff350c244dc4fcf
class ComposerStaticInit046c81e84e0a47c5886401db4ffb9e1b
{
public static $files = array (
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
@ -3634,6 +3634,7 @@ class ComposerStaticInitd86b37bb77e23b700ff350c244dc4fcf
'Ssch\\TYPO3Rector\\FileProcessor\\TypoScript\\Visitors\\OldConditionToExpressionLanguageVisitor' => __DIR__ . '/..' . '/ssch/typo3-rector/src/FileProcessor/TypoScript/Visitors/OldConditionToExpressionLanguageVisitor.php',
'Ssch\\TYPO3Rector\\FileProcessor\\Yaml\\Form\\FormYamlProcessor' => __DIR__ . '/..' . '/ssch/typo3-rector/src/FileProcessor/Yaml/Form/FormYamlProcessor.php',
'Ssch\\TYPO3Rector\\FileProcessor\\Yaml\\Form\\Rector\\EmailFinisherRector' => __DIR__ . '/..' . '/ssch/typo3-rector/src/FileProcessor/Yaml/Form/Rector/EmailFinisherRector.php',
'Ssch\\TYPO3Rector\\FileProcessor\\Yaml\\Form\\Rector\\TranslationFileRector' => __DIR__ . '/..' . '/ssch/typo3-rector/src/FileProcessor/Yaml/Form/Rector/TranslationFileRector.php',
'Ssch\\TYPO3Rector\\Helper\\ArrayUtility' => __DIR__ . '/..' . '/ssch/typo3-rector/src/Helper/ArrayUtility.php',
'Ssch\\TYPO3Rector\\Helper\\Database\\Refactorings\\ConnectionCallFactory' => __DIR__ . '/..' . '/ssch/typo3-rector/src/Helper/Database/Refactorings/ConnectionCallFactory.php',
'Ssch\\TYPO3Rector\\Helper\\Database\\Refactorings\\DatabaseConnectionExecInsertQueryRefactoring' => __DIR__ . '/..' . '/ssch/typo3-rector/src/Helper/Database/Refactorings/DatabaseConnectionExecInsertQueryRefactoring.php',
@ -3817,6 +3818,7 @@ class ComposerStaticInitd86b37bb77e23b700ff350c244dc4fcf
'Ssch\\TYPO3Rector\\Rector\\v9\\v3\\RemoveColPosParameterRector' => __DIR__ . '/..' . '/ssch/typo3-rector/src/Rector/v9/v3/RemoveColPosParameterRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v3\\UseMethodGetPageShortcutDirectlyFromSysPageRector' => __DIR__ . '/..' . '/ssch/typo3-rector/src/Rector/v9/v3/UseMethodGetPageShortcutDirectlyFromSysPageRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v3\\ValidateAnnotationRector' => __DIR__ . '/..' . '/ssch/typo3-rector/src/Rector/v9/v3/ValidateAnnotationRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v4\\AdditionalFieldProviderRector' => __DIR__ . '/..' . '/ssch/typo3-rector/src/Rector/v9/v4/AdditionalFieldProviderRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v4\\BackendUtilityShortcutExistsRector' => __DIR__ . '/..' . '/ssch/typo3-rector/src/Rector/v9/v4/BackendUtilityShortcutExistsRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v4\\CallEnableFieldsFromPageRepositoryRector' => __DIR__ . '/..' . '/ssch/typo3-rector/src/Rector/v9/v4/CallEnableFieldsFromPageRepositoryRector.php',
'Ssch\\TYPO3Rector\\Rector\\v9\\v4\\ConstantsToEnvironmentApiCallRector' => __DIR__ . '/..' . '/ssch/typo3-rector/src/Rector/v9/v4/ConstantsToEnvironmentApiCallRector.php',
@ -3877,9 +3879,9 @@ class ComposerStaticInitd86b37bb77e23b700ff350c244dc4fcf
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitd86b37bb77e23b700ff350c244dc4fcf::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitd86b37bb77e23b700ff350c244dc4fcf::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitd86b37bb77e23b700ff350c244dc4fcf::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit046c81e84e0a47c5886401db4ffb9e1b::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit046c81e84e0a47c5886401db4ffb9e1b::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit046c81e84e0a47c5886401db4ffb9e1b::$classMap;
}, null, ClassLoader::class);
}

View File

@ -1758,17 +1758,17 @@
},
{
"name": "ssch\/typo3-rector",
"version": "v0.11.14",
"version_normalized": "0.11.14.0",
"version": "v0.11.15",
"version_normalized": "0.11.15.0",
"source": {
"type": "git",
"url": "https:\/\/github.com\/sabbelasichon\/typo3-rector.git",
"reference": "0dce7c7bee1214ac1d5e67b18521a8b3c5bbc6ce"
"reference": "abd6bcb08fdaf9884487725df4a192fcd6c67960"
},
"dist": {
"type": "zip",
"url": "https:\/\/api.github.com\/repos\/sabbelasichon\/typo3-rector\/zipball\/0dce7c7bee1214ac1d5e67b18521a8b3c5bbc6ce",
"reference": "0dce7c7bee1214ac1d5e67b18521a8b3c5bbc6ce",
"url": "https:\/\/api.github.com\/repos\/sabbelasichon\/typo3-rector\/zipball\/abd6bcb08fdaf9884487725df4a192fcd6c67960",
"reference": "abd6bcb08fdaf9884487725df4a192fcd6c67960",
"shasum": ""
},
"require": {
@ -1793,7 +1793,7 @@
"symplify\/rule-doc-generator": "^9.3",
"tracy\/tracy": "^2.8"
},
"time": "2021-06-02T14:31:36+00:00",
"time": "2021-06-08T16:16:11+00:00",
"type": "rector-extension",
"extra": {
"rector": {
@ -1822,7 +1822,7 @@
"description": "Instant fixes for your TYPO3 code by using Rector.",
"support": {
"issues": "https:\/\/github.com\/sabbelasichon\/typo3-rector\/issues",
"source": "https:\/\/github.com\/sabbelasichon\/typo3-rector\/tree\/v0.11.14"
"source": "https:\/\/github.com\/sabbelasichon\/typo3-rector\/tree\/v0.11.15"
},
"funding": [
{

File diff suppressed because one or more lines are too long

View File

@ -9,7 +9,7 @@ namespace Rector\RectorInstaller;
*/
final class GeneratedConfig
{
public const EXTENSIONS = array('rector/rector-cakephp' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-cakephp', 'relative_install_path' => '../../rector-cakephp', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.2'), 'rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.3'), 'rector/rector-laravel' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-laravel', 'relative_install_path' => '../../rector-laravel', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.1'), 'rector/rector-nette' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-nette', 'relative_install_path' => '../../rector-nette', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.4'), 'rector/rector-nette-to-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-nette-to-symfony', 'relative_install_path' => '../../rector-nette-to-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.3'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.5'), 'ssch/typo3-rector' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/ssch/typo3-rector', 'relative_install_path' => '../../../ssch/typo3-rector', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'v0.11.14'));
public const EXTENSIONS = array('rector/rector-cakephp' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-cakephp', 'relative_install_path' => '../../rector-cakephp', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.2'), 'rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.3'), 'rector/rector-laravel' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-laravel', 'relative_install_path' => '../../rector-laravel', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.1'), 'rector/rector-nette' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-nette', 'relative_install_path' => '../../rector-nette', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.4'), 'rector/rector-nette-to-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-nette-to-symfony', 'relative_install_path' => '../../rector-nette-to-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.3'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.5'), 'ssch/typo3-rector' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/ssch/typo3-rector', 'relative_install_path' => '../../../ssch/typo3-rector', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'v0.11.15'));
private function __construct()
{
}

View File

@ -21,8 +21,8 @@ if (!class_exists('SomeTestCase', false) && !interface_exists('SomeTestCase', fa
if (!class_exists('CheckoutEntityFactory', false) && !interface_exists('CheckoutEntityFactory', false) && !trait_exists('CheckoutEntityFactory', false)) {
spl_autoload_call('RectorPrefix20210608\CheckoutEntityFactory');
}
if (!class_exists('ComposerAutoloaderInitd86b37bb77e23b700ff350c244dc4fcf', false) && !interface_exists('ComposerAutoloaderInitd86b37bb77e23b700ff350c244dc4fcf', false) && !trait_exists('ComposerAutoloaderInitd86b37bb77e23b700ff350c244dc4fcf', false)) {
spl_autoload_call('RectorPrefix20210608\ComposerAutoloaderInitd86b37bb77e23b700ff350c244dc4fcf');
if (!class_exists('ComposerAutoloaderInit046c81e84e0a47c5886401db4ffb9e1b', false) && !interface_exists('ComposerAutoloaderInit046c81e84e0a47c5886401db4ffb9e1b', false) && !trait_exists('ComposerAutoloaderInit046c81e84e0a47c5886401db4ffb9e1b', false)) {
spl_autoload_call('RectorPrefix20210608\ComposerAutoloaderInit046c81e84e0a47c5886401db4ffb9e1b');
}
if (!class_exists('Doctrine\Inflector\Inflector', false) && !interface_exists('Doctrine\Inflector\Inflector', false) && !trait_exists('Doctrine\Inflector\Inflector', false)) {
spl_autoload_call('RectorPrefix20210608\Doctrine\Inflector\Inflector');
@ -3323,9 +3323,9 @@ if (!function_exists('print_node')) {
return \RectorPrefix20210608\print_node(...func_get_args());
}
}
if (!function_exists('composerRequired86b37bb77e23b700ff350c244dc4fcf')) {
function composerRequired86b37bb77e23b700ff350c244dc4fcf() {
return \RectorPrefix20210608\composerRequired86b37bb77e23b700ff350c244dc4fcf(...func_get_args());
if (!function_exists('composerRequire046c81e84e0a47c5886401db4ffb9e1b')) {
function composerRequire046c81e84e0a47c5886401db4ffb9e1b() {
return \RectorPrefix20210608\composerRequire046c81e84e0a47c5886401db4ffb9e1b(...func_get_args());
}
}
if (!function_exists('parseArgs')) {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,6 +3,7 @@
declare (strict_types=1);
namespace RectorPrefix20210608;
use Ssch\TYPO3Rector\Rector\v9\v4\AdditionalFieldProviderRector;
use Ssch\TYPO3Rector\Rector\v9\v4\BackendUtilityShortcutExistsRector;
use Ssch\TYPO3Rector\Rector\v9\v4\CallEnableFieldsFromPageRepositoryRector;
use Ssch\TYPO3Rector\Rector\v9\v4\ConstantsToEnvironmentApiCallRector;
@ -49,4 +50,5 @@ return static function (\Symfony\Component\DependencyInjection\Loader\Configurat
$services->set(\Ssch\TYPO3Rector\Rector\v9\v4\UseSignalAfterExtensionInstallInsteadOfHasInstalledExtensionsRector::class);
$services->set(\Ssch\TYPO3Rector\Rector\v9\v4\UseClassSchemaInsteadReflectionServiceMethodsRector::class);
$services->set(\Ssch\TYPO3Rector\Rector\v9\v4\RemoveMethodsFromEidUtilityAndTsfeRector::class);
$services->set(\Ssch\TYPO3Rector\Rector\v9\v4\AdditionalFieldProviderRector::class);
};

View File

@ -1,4 +1,4 @@
# 203 Rules Overview
# 205 Rules Overview
## AddArgumentToSymfonyCommandRector
@ -117,6 +117,37 @@ Add type to column config if not exists
<br>
## AdditionalFieldProviderRector
Refactor AdditionalFieldProvider classes
- class: [`Ssch\TYPO3Rector\Rector\v9\v4\AdditionalFieldProviderRector`](../src/Rector/v9/v4/AdditionalFieldProviderRector.php)
```diff
-use TYPO3\CMS\Scheduler\AdditionalFieldProviderInterface;
+use TYPO3\CMS\Scheduler\AbstractAdditionalFieldProvider;
use TYPO3\CMS\Scheduler\Controller\SchedulerModuleController;
-class FileCleanupTaskAdditionalFields implements AdditionalFieldProviderInterface
+
+class FileCleanupTaskAdditionalFields extends AbstractAdditionalFieldProvider
{
public function getAdditionalFields (array &$taskInfo, $task, SchedulerModuleController $parentObject)
{
-
if (!isset($taskInfo[$this->fieldAgeInDays])) {
- if ($parentObject->CMD == 'edit') {
+ if ((string) $parentObject->getCurrentAction() == 'edit') {
$taskInfo[$this->fieldAgeInDays] = (int)$task->ageInDays;
} else {
$taskInfo[$this->fieldAgeInDays] = '';
}
}
}
}
```
<br>
## ApacheSolrDocumentToSolariumDocumentRector
Apache_Solr_Document to solarium based document
@ -3549,6 +3580,30 @@ Use class TimeTracker instead of NullTimeTracker
<br>
## TranslationFileRector
Use key translationFiles instead of translationFile
- class: [`Ssch\TYPO3Rector\FileProcessor\Yaml\Form\Rector\TranslationFileRector`](../src/FileProcessor/Yaml/Form/Rector/TranslationFileRector.php)
```diff
TYPO3:
CMS:
Form:
prototypes:
standard:
formElementsDefinition:
Form:
renderingOptions:
translation:
- translationFile:
- 10: 'EXT:form/Resources/Private/Language/locallang.xlf'
+ translationFiles:
20: 'EXT:myextension/Resources/Private/Language/locallang.xlf'
```
<br>
## TypeHandlingServiceToTypeHandlingUtilityRector
Use TypeHandlingUtility instead of TypeHandlingService

View File

@ -149,6 +149,6 @@ CODE_SAMPLE
$fieldName = $paths[3];
/** @var ScalarValue $scalar */
$scalar = $statement->value;
self::$persistenceArray[$className]['properties'][$scalar->value]['fieldname'] = $fieldName;
self::$persistenceArray[$className]['properties'][$scalar->value]['fieldName'] = $fieldName;
}
}

View File

@ -50,7 +50,7 @@ final class FormYamlProcessor implements \Rector\Core\Contract\Processor\FilePro
public function supports(\Rector\Core\ValueObject\Application\File $file) : bool
{
$smartFileInfo = $file->getSmartFileInfo();
return \RectorPrefix20210608\Nette\Utils\Strings::endsWith($smartFileInfo->getFilename(), 'form.yaml');
return \RectorPrefix20210608\Nette\Utils\Strings::endsWith($smartFileInfo->getFilename(), 'yaml');
}
public function getSupportedFileExtensions() : array
{

View File

@ -0,0 +1,88 @@
<?php
declare (strict_types=1);
namespace Ssch\TYPO3Rector\FileProcessor\Yaml\Form\Rector;
use RectorPrefix20210608\Nette\Utils\Strings;
use Ssch\TYPO3Rector\Contract\FileProcessor\Yaml\Form\FormYamlRectorInterface;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
* @changelog https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/10.0/Breaking-87009-UseMultipleTranslationFilesByDefaultInEXTform.html
*/
final class TranslationFileRector implements \Ssch\TYPO3Rector\Contract\FileProcessor\Yaml\Form\FormYamlRectorInterface
{
/**
* @var string
*/
private const TRANSLATION_FILE_KEY = 'translationFile';
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
{
return new \Symplify\RuleDocGenerator\ValueObject\RuleDefinition('Use key translationFiles instead of translationFile', [new \Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample(<<<'CODE_SAMPLE'
TYPO3:
CMS:
Form:
prototypes:
standard:
formElementsDefinition:
Form:
renderingOptions:
translation:
translationFile:
10: 'EXT:form/Resources/Private/Language/locallang.xlf'
20: 'EXT:myextension/Resources/Private/Language/locallang.xlf'
CODE_SAMPLE
, <<<'CODE_SAMPLE'
TYPO3:
CMS:
Form:
prototypes:
standard:
formElementsDefinition:
Form:
renderingOptions:
translation:
translationFiles:
20: 'EXT:myextension/Resources/Private/Language/locallang.xlf'
CODE_SAMPLE
)]);
}
public function refactor(array $yaml) : array
{
return $this->refactorTranslationFile($yaml);
}
/**
* @param mixed[] $yaml
*
* @return mixed[]
*/
private function refactorTranslationFile(array &$yaml) : array
{
foreach ($yaml as &$section) {
if (\is_array($section)) {
if (\array_key_exists(self::TRANSLATION_FILE_KEY, $section) && \is_array($section[self::TRANSLATION_FILE_KEY])) {
$section['translationFiles'] = $this->buildNewTranslations($section[self::TRANSLATION_FILE_KEY]);
unset($section[self::TRANSLATION_FILE_KEY]);
}
$this->refactorTranslationFile($section);
}
}
unset($section);
return $yaml;
}
/**
* @param array<int, string> $oldTranslations
*
* @return array<int, string>
*/
private function buildNewTranslations(array $oldTranslations) : array
{
$newTranslations = [];
foreach ($oldTranslations as $oldTranslationFileKey => $oldTranslationFile) {
if (!\RectorPrefix20210608\Nette\Utils\Strings::startsWith($oldTranslationFile, 'EXT:form')) {
$newTranslations[$oldTranslationFileKey] = $oldTranslationFile;
}
}
return $newTranslations;
}
}

View File

@ -28,6 +28,7 @@ use PHPStan\Type\VerbosityLevel;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
use Rector\Core\PhpParser\Node\NodeFactory;
use Rector\Core\PhpParser\Node\Value\ValueResolver;
use Rector\NodeNameResolver\NodeNameResolver;
use Rector\NodeTypeResolver\Node\AttributeKey;
use Rector\PHPStanStaticTypeMapper\ValueObject\TypeKind;
@ -69,7 +70,11 @@ final class InitializeArgumentsClassMethodFactory
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;
public function __construct(\Rector\Core\PhpParser\Node\NodeFactory $nodeFactory, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\StaticTypeMapper\StaticTypeMapper $staticTypeMapper, \Rector\TypeDeclaration\TypeInferer\ParamTypeInferer $paramTypeInferer, \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \PHPStan\Reflection\ReflectionProvider $reflectionProvider)
/**
* @var \Rector\Core\PhpParser\Node\Value\ValueResolver
*/
private $valueResolver;
public function __construct(\Rector\Core\PhpParser\Node\NodeFactory $nodeFactory, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\StaticTypeMapper\StaticTypeMapper $staticTypeMapper, \Rector\TypeDeclaration\TypeInferer\ParamTypeInferer $paramTypeInferer, \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \PHPStan\Reflection\ReflectionProvider $reflectionProvider, \Rector\Core\PhpParser\Node\Value\ValueResolver $valueResolver)
{
$this->nodeFactory = $nodeFactory;
$this->nodeNameResolver = $nodeNameResolver;
@ -77,6 +82,7 @@ final class InitializeArgumentsClassMethodFactory
$this->paramTypeInferer = $paramTypeInferer;
$this->phpDocInfoFactory = $phpDocInfoFactory;
$this->reflectionProvider = $reflectionProvider;
$this->valueResolver = $valueResolver;
}
public function decorateClass(\PhpParser\Node\Stmt\Class_ $class) : void
{
@ -126,8 +132,9 @@ final class InitializeArgumentsClassMethodFactory
$args = [$paramName, $docString, $this->getDescription($paramTagValueNode)];
if ($param->default instanceof \PhpParser\Node\Expr) {
$args[] = new \PhpParser\Node\Expr\ConstFetch(new \PhpParser\Node\Name('false'));
if (\property_exists($param->default, 'value')) {
$args[] = $param->default->value;
$defaultValue = $this->valueResolver->getValue($param->default);
if (null !== $defaultValue) {
$args[] = $defaultValue;
}
} else {
$args[] = new \PhpParser\Node\Expr\ConstFetch(new \PhpParser\Node\Name('true'));

View File

@ -0,0 +1,131 @@
<?php
declare (strict_types=1);
namespace Ssch\TYPO3Rector\Rector\v9\v4;
use PhpParser\Node;
use PhpParser\Node\Expr\Cast\String_;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Expr\PropertyFetch;
use PhpParser\Node\Name\FullyQualified;
use PhpParser\Node\Stmt\Class_;
use PHPStan\Type\ObjectType;
use Rector\Core\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
* @changelog https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/9.4/Deprecation-84387-DeprecatedMethodAndPropertyInSchedulerModuleController.html
* @see \Ssch\TYPO3Rector\Tests\Rector\v9\v4\AdditionalFieldProviderRector\AdditionalFieldProviderRectorTest
*/
final class AdditionalFieldProviderRector extends \Rector\Core\Rector\AbstractRector
{
/**
* @return array<class-string<Node>>
*/
public function getNodeTypes() : array
{
return [\PhpParser\Node\Stmt\Class_::class, \PhpParser\Node\Expr\MethodCall::class, \PhpParser\Node\Expr\PropertyFetch::class];
}
/**
* @param Class_|PropertyFetch|MethodCall $node
*/
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
{
if ($node instanceof \PhpParser\Node\Stmt\Class_) {
return $this->refactorClass($node);
}
if ($node instanceof \PhpParser\Node\Expr\PropertyFetch) {
return $this->refactorPropertyFetch($node);
}
return $this->refactorMethodCall($node);
}
/**
* @codeCoverageIgnore
*/
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
{
return new \Symplify\RuleDocGenerator\ValueObject\RuleDefinition('Refactor AdditionalFieldProvider classes', [new \Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample(<<<'CODE_SAMPLE'
use TYPO3\CMS\Scheduler\AdditionalFieldProviderInterface;
use TYPO3\CMS\Scheduler\Controller\SchedulerModuleController;
class FileCleanupTaskAdditionalFields implements AdditionalFieldProviderInterface
{
public function getAdditionalFields (array &$taskInfo, $task, SchedulerModuleController $parentObject)
{
if (!isset($taskInfo[$this->fieldAgeInDays])) {
if ($parentObject->CMD == 'edit') {
$taskInfo[$this->fieldAgeInDays] = (int)$task->ageInDays;
} else {
$taskInfo[$this->fieldAgeInDays] = '';
}
}
}
}
CODE_SAMPLE
, <<<'CODE_SAMPLE'
use TYPO3\CMS\Scheduler\AbstractAdditionalFieldProvider;
use TYPO3\CMS\Scheduler\Controller\SchedulerModuleController;
class FileCleanupTaskAdditionalFields extends AbstractAdditionalFieldProvider
{
public function getAdditionalFields (array &$taskInfo, $task, SchedulerModuleController $parentObject)
{
if (!isset($taskInfo[$this->fieldAgeInDays])) {
if ((string) $parentObject->getCurrentAction() == 'edit') {
$taskInfo[$this->fieldAgeInDays] = (int)$task->ageInDays;
} else {
$taskInfo[$this->fieldAgeInDays] = '';
}
}
}
}
CODE_SAMPLE
)]);
}
private function shouldSkip(\PhpParser\Node\Stmt\Class_ $node) : bool
{
foreach ($node->implements as $implement) {
if ($this->isName($implement, 'TYPO3\\CMS\\Scheduler\\AdditionalFieldProviderInterface')) {
return \false;
}
}
return \true;
}
private function refactorClass(\PhpParser\Node\Stmt\Class_ $node) : ?\PhpParser\Node
{
if ($this->shouldSkip($node)) {
return null;
}
$node->extends = new \PhpParser\Node\Name\FullyQualified('TYPO3\\CMS\\Scheduler\\AbstractAdditionalFieldProvider');
$implements = [];
foreach ($node->implements as $implement) {
if (!$this->isName($implement, 'TYPO3\\CMS\\Scheduler\\AdditionalFieldProviderInterface')) {
$implements[] = $implement;
}
}
$node->implements = $implements;
return $node;
}
private function refactorPropertyFetch(\PhpParser\Node\Expr\PropertyFetch $node) : ?\PhpParser\Node
{
if (!$this->isObjectType($node->var, new \PHPStan\Type\ObjectType('TYPO3\\CMS\\Scheduler\\Controller\\SchedulerModuleController'))) {
return null;
}
if (!$this->isName($node->name, 'CMD')) {
return null;
}
$methodCall = $this->nodeFactory->createMethodCall($node->var, 'getCurrentAction');
return new \PhpParser\Node\Expr\Cast\String_($methodCall);
}
private function refactorMethodCall(\PhpParser\Node\Expr\MethodCall $node) : ?\PhpParser\Node
{
if (!$this->nodeTypeResolver->isMethodStaticCallOrClassMethodObjectType($node, new \PHPStan\Type\ObjectType('TYPO3\\CMS\\Scheduler\\Controller\\SchedulerModuleController'))) {
return null;
}
if (!$this->isName($node->name, 'addMessage')) {
return null;
}
return $this->nodeFactory->createMethodCall('this', 'addMessage', $node->args);
}
}

View File

@ -16,15 +16,15 @@ final class TemplateFinder
}
public function getCommand() : \Symplify\SmartFileSystem\SmartFileInfo
{
return $this->createSmartFileInfo('Commands/Command.tpl.php');
return $this->createSmartFileInfo('Commands/Command.tpl');
}
public function getCommandsConfiguration() : \Symplify\SmartFileSystem\SmartFileInfo
{
return $this->createSmartFileInfo('Commands/Commands.tpl.php');
return $this->createSmartFileInfo('Commands/Commands.tpl');
}
public function getExtbasePersistenceConfiguration() : \Symplify\SmartFileSystem\SmartFileInfo
{
return $this->createSmartFileInfo('Extbase/Persistence.tpl.php');
return $this->createSmartFileInfo('Extbase/Persistence.tpl');
}
private function createSmartFileInfo(string $template) : \Symplify\SmartFileSystem\SmartFileInfo
{

View File

@ -0,0 +1,11 @@
<?php
declare (strict_types=1);
namespace RectorPrefix20210608\TYPO3\CMS\Scheduler;
if (\class_exists('TYPO3\\CMS\\Scheduler\\AbstractAdditionalFieldProvider')) {
return;
}
abstract class AbstractAdditionalFieldProvider
{
}

View File

@ -0,0 +1,13 @@
<?php
declare (strict_types=1);
namespace RectorPrefix20210608\TYPO3\CMS\Scheduler;
use RectorPrefix20210608\TYPO3\CMS\Scheduler\Controller\SchedulerModuleController;
if (\interface_exists('TYPO3\\CMS\\Scheduler\\AdditionalFieldProviderInterface')) {
return;
}
interface AdditionalFieldProviderInterface
{
public function getAdditionalFields(array &$taskInfo, $task, \RectorPrefix20210608\TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $schedulerModule);
}

View File

@ -0,0 +1,11 @@
<?php
declare (strict_types=1);
namespace RectorPrefix20210608\TYPO3\CMS\Scheduler\Controller;
if (\class_exists('TYPO3\\CMS\\Scheduler\\Controller\\SchedulerModuleController')) {
return;
}
final class SchedulerModuleController
{
}

View File

@ -0,0 +1,6 @@
<?php
return [
];

View File

@ -1,5 +0,0 @@
<?php
namespace RectorPrefix20210608;
return [];

View File

@ -0,0 +1,5 @@
<?php
declare(strict_types = 1);
return __PERSISTENCE_ARRAY__;

View File

@ -1,6 +0,0 @@
<?php
declare (strict_types=1);
namespace RectorPrefix20210608;
return \__PERSISTENCE_ARRAY__;