diff --git a/packages/typo3-fractor/config/typo3-8.php b/packages/typo3-fractor/config/typo3-8.php index 9f72cb54..bc6e484d 100644 --- a/packages/typo3-fractor/config/typo3-8.php +++ b/packages/typo3-fractor/config/typo3-8.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use a9f\Typo3Fractor\TYPO3v8\Fluid\ReplaceCaseDefaultWithDefaultCaseFluidFractor; use a9f\Typo3Fractor\TYPO3v8\TypoScript\RemoveConfigPrefixLocalAnchorsFractor; use a9f\Typo3Fractor\TYPO3v8\TypoScript\RemoveConfigRenderCharsetFractor; use a9f\Typo3Fractor\TYPO3v8\TypoScript\RemoveModNewPageWizOverrideWithExtensionFractor; @@ -13,6 +14,7 @@ ->autoconfigure() ->autowire(); + $services->set(ReplaceCaseDefaultWithDefaultCaseFluidFractor::class); $services->set(RemoveConfigPrefixLocalAnchorsFractor::class); $services->set(RemoveConfigRenderCharsetFractor::class); $services->set(RemoveModNewPageWizOverrideWithExtensionFractor::class); diff --git a/packages/typo3-fractor/docs/typo3-fractor-rules.md b/packages/typo3-fractor/docs/typo3-fractor-rules.md index 6754bd18..b09ad5b3 100644 --- a/packages/typo3-fractor/docs/typo3-fractor-rules.md +++ b/packages/typo3-fractor/docs/typo3-fractor-rules.md @@ -1,4 +1,4 @@ -# 69 Rules Overview +# 70 Rules Overview ## AbstractMessageGetSeverityFluidFractor @@ -1471,6 +1471,22 @@ Rename key mail to email for MailLinkHandler
+## ReplaceCaseDefaultWithDefaultCaseFluidFractor + +Replace f:case with default attribute by f:defaultCase + +- class: [`a9f\Typo3Fractor\TYPO3v8\Fluid\ReplaceCaseDefaultWithDefaultCaseFluidFractor`](../rules/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor.php) + +```diff + + foo +- bar ++ bar + +``` + +
+ ## TranslationFileYamlFractor Use key translationFiles instead of translationFile diff --git a/packages/typo3-fractor/rules-tests/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor/Fixtures/fixture.html.fixture b/packages/typo3-fractor/rules-tests/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor/Fixtures/fixture.html.fixture new file mode 100644 index 00000000..6cce56f7 --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor/Fixtures/fixture.html.fixture @@ -0,0 +1,9 @@ + + foo + bar + +----- + + foo + bar + diff --git a/packages/typo3-fractor/rules-tests/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor/ReplaceCaseDefaultWithDefaultCaseFluidFractorTest.php b/packages/typo3-fractor/rules-tests/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor/ReplaceCaseDefaultWithDefaultCaseFluidFractorTest.php new file mode 100644 index 00000000..f061295d --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor/ReplaceCaseDefaultWithDefaultCaseFluidFractorTest.php @@ -0,0 +1,27 @@ +doTestFile($filePath); + } + + public static function provideData(): \Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixtures', '*.html.fixture'); + } + + public function provideConfigFilePath(): string + { + return __DIR__ . '/config/fractor.php'; + } +} diff --git a/packages/typo3-fractor/rules-tests/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor/config/fractor.php b/packages/typo3-fractor/rules-tests/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor/config/fractor.php new file mode 100644 index 00000000..26ed365a --- /dev/null +++ b/packages/typo3-fractor/rules-tests/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor/config/fractor.php @@ -0,0 +1,9 @@ +withRules([ReplaceCaseDefaultWithDefaultCaseFluidFractor::class]); diff --git a/packages/typo3-fractor/rules/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor.php b/packages/typo3-fractor/rules/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor.php new file mode 100644 index 00000000..5b55ac34 --- /dev/null +++ b/packages/typo3-fractor/rules/TYPO3v8/Fluid/ReplaceCaseDefaultWithDefaultCaseFluidFractor.php @@ -0,0 +1,49 @@ + + foo + bar + +CODE_SAMPLE + , + <<<'CODE_SAMPLE' + + foo + bar + +CODE_SAMPLE + )]); + } + + public function refactor(string $fluid): string + { + // Replace opening + closing tag with content + $fluid = Strings::replace( + $fluid, + '#(.*?)#si', + '$2' + ); + + // Replace self-closing tag + return Strings::replace($fluid, '##si', ''); + } +}