diff --git a/config/set/symfony/symfony30.yaml b/config/set/symfony/symfony30.yaml
index 631cc1a11a3..6cfb78b9702 100644
--- a/config/set/symfony/symfony30.yaml
+++ b/config/set/symfony/symfony30.yaml
@@ -12,6 +12,7 @@ services:
Rector\Symfony\Rector\MethodCall\FormTypeInstanceToClassConstRector: null
Rector\Symfony\Rector\Form\StringFormTypeToClassRector: null
Rector\Symfony\Rector\MethodCall\CascadeValidationFormBuilderRector: null
+ Rector\Symfony\Rector\ClassMethod\RemoveDefaultGetBlockPrefixRector: null
# forms - collection
Rector\Symfony\Rector\MethodCall\ChangeCollectionTypeOptionTypeFromStringToClassReferenceRector: null
diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md
index f384dc54ddf..e72d243a7e4 100644
--- a/docs/rector_rules_overview.md
+++ b/docs/rector_rules_overview.md
@@ -1,4 +1,4 @@
-# All 523 Rectors Overview
+# All 524 Rectors Overview
- [Projects](#projects)
- [General](#general)
@@ -65,7 +65,7 @@
- [SOLID](#solid) (12)
- [Sensio](#sensio) (3)
- [StrictCodeQuality](#strictcodequality) (1)
-- [Symfony](#symfony) (32)
+- [Symfony](#symfony) (33)
- [SymfonyCodeQuality](#symfonycodequality) (1)
- [SymfonyPHPUnit](#symfonyphpunit) (1)
- [Twig](#twig) (1)
@@ -11148,6 +11148,27 @@ Turns redirect to route to short helper method in Controller in Symfony
+### `RemoveDefaultGetBlockPrefixRector`
+
+- class: [`Rector\Symfony\Rector\ClassMethod\RemoveDefaultGetBlockPrefixRector`](/../master/rules/symfony/src/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php)
+- [test fixtures](/../master/rules/symfony/tests/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector/Fixture)
+
+Rename `getBlockPrefix()` if it returns the default value - class to underscore, e.g. UserFormType = user_form
+
+```diff
+ use Symfony\Component\Form\AbstractType;
+
+ class TaskType extends AbstractType
+ {
+- public function getBlockPrefix()
+- {
+- return 'task';
+- }
+ }
+```
+
+
+
### `ResponseStatusCodeRector`
- class: [`Rector\Symfony\Rector\BinaryOp\ResponseStatusCodeRector`](/../master/rules/symfony/src/Rector/BinaryOp/ResponseStatusCodeRector.php)
diff --git a/rules/symfony/src/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php b/rules/symfony/src/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php
new file mode 100644
index 00000000000..de99a9210ee
--- /dev/null
+++ b/rules/symfony/src/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php
@@ -0,0 +1,120 @@
+isObjectMethodNameMatch($node)) {
+ return null;
+ }
+
+ $returnedExpr = $this->resolveOnlyStmtReturnExpr($node);
+ if ($returnedExpr === null) {
+ return null;
+ }
+
+ $returnedValue = $this->getValue($returnedExpr);
+
+ $classShortName = $node->getAttribute(AttributeKey::CLASS_SHORT_NAME);
+ if (Strings::endsWith($classShortName, 'Type')) {
+ $classShortName = Strings::before($classShortName, 'Type');
+ }
+
+ $underscoredClassShortName = StaticRectorStrings::camelCaseToUnderscore($classShortName);
+ if ($underscoredClassShortName !== $returnedValue) {
+ return null;
+ }
+
+ $this->removeNode($node);
+
+ return null;
+ }
+
+ /**
+ * return <$thisValue>;
+ */
+ private function resolveOnlyStmtReturnExpr(ClassMethod $classMethod): ?Expr
+ {
+ if (count((array) $classMethod->stmts) !== 1) {
+ return null;
+ }
+
+ $onlyStmt = $classMethod->stmts[0];
+ if (! $onlyStmt instanceof Return_) {
+ return null;
+ }
+
+ return $onlyStmt->expr;
+ }
+
+ private function isObjectMethodNameMatch(ClassMethod $classMethod): bool
+ {
+ if (! $this->isInObjectType($classMethod, 'Symfony\Component\Form\AbstractType')) {
+ return false;
+ }
+
+ return $this->isName($classMethod->name, 'getBlockPrefix');
+ }
+}
diff --git a/rules/symfony/tests/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector/Fixture/double_name.php.inc b/rules/symfony/tests/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector/Fixture/double_name.php.inc
new file mode 100644
index 00000000000..f830580efc8
--- /dev/null
+++ b/rules/symfony/tests/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector/Fixture/double_name.php.inc
@@ -0,0 +1,27 @@
+
+-----
+
diff --git a/rules/symfony/tests/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector/Fixture/fixture.php.inc b/rules/symfony/tests/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector/Fixture/fixture.php.inc
new file mode 100644
index 00000000000..77a52555f9a
--- /dev/null
+++ b/rules/symfony/tests/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector/Fixture/fixture.php.inc
@@ -0,0 +1,27 @@
+
+-----
+
diff --git a/rules/symfony/tests/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector/Fixture/skip_different_name.php.inc b/rules/symfony/tests/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector/Fixture/skip_different_name.php.inc
new file mode 100644
index 00000000000..7396d1d5841
--- /dev/null
+++ b/rules/symfony/tests/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector/Fixture/skip_different_name.php.inc
@@ -0,0 +1,13 @@
+doTestFileInfo($fileInfo);
+ }
+
+ public function provideData(): Iterator
+ {
+ return $this->yieldFilesFromDirectory(__DIR__ . '/Fixture');
+ }
+
+ protected function getRectorClass(): string
+ {
+ return RemoveDefaultGetBlockPrefixRector::class;
+ }
+}