From f5ca2ff2c28725535084a7efa27772e4a992c375 Mon Sep 17 00:00:00 2001 From: Mark Scherer Date: Wed, 22 Jul 2026 20:36:23 +0200 Subject: [PATCH] Fix stale console helper namespace in cakephp60 set Console helpers moved from Cake\Command\Helper to Cake\Console\Helper in 5.4, and the old namespace is gone in 6.0. - Add the class rename to the set, so apps coming from 5.3 or older get their references updated. - Register the underscore property and method maps under the new namespace. They were only keyed on the old one, so they never matched for anyone who had already moved. The old keys stay in place for apps upgrading straight from 5.3, where the classes still resolve to the pre 5.4 location. --- config/rector/sets/cakephp60.php | 14 ++++++++++++++ .../src/ConsoleHelperExample.php | 16 ++++++++++++++++ .../src/ConsoleHelperExample.php | 16 ++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 tests/test_apps/original/RectorCommand-testApply60/src/ConsoleHelperExample.php create mode 100644 tests/test_apps/upgraded/RectorCommand-testApply60/src/ConsoleHelperExample.php diff --git a/config/rector/sets/cakephp60.php b/config/rector/sets/cakephp60.php index c06ff51..12bad49 100644 --- a/config/rector/sets/cakephp60.php +++ b/config/rector/sets/cakephp60.php @@ -60,6 +60,11 @@ $rectorConfig->ruleWithConfiguration(RenameClassRector::class, [ 'Cake\Database\DriverFeatureEnum' => 'Cake\Database\Enum\DriverFeature', 'Cake\Http\Cookie\SameSiteEnum' => 'Cake\Http\Cookie\Enum\SameSite', + // Console helpers moved namespace in 5.4, the Cake\Command\Helper namespace is gone in 6.0 + 'Cake\Command\Helper\BannerHelper' => 'Cake\Console\Helper\BannerHelper', + 'Cake\Command\Helper\ProgressHelper' => 'Cake\Console\Helper\ProgressHelper', + 'Cake\Command\Helper\TableHelper' => 'Cake\Console\Helper\TableHelper', + 'Cake\Command\Helper\TreeHelper' => 'Cake\Console\Helper\TreeHelper', ]); // Related method rename for SameSite enum @@ -97,6 +102,7 @@ 'Cake\Collection\Iterator\ZipIterator' => ['_callback', '_iterators'], ], 'Command' => [ + // Pre 5.4 location, kept for apps upgrading straight from 5.3 or older 'Cake\Command\Helper\ProgressHelper' => ['_progress', '_total', '_width'], 'Cake\Command\I18nExtractCommand' => [ '_paths', '_files', '_merge', '_file', '_storage', '_tokens', '_translations', @@ -105,6 +111,7 @@ 'Cake\Command\ServerCommand' => ['_host', '_port', '_documentRoot', '_iniPath'], ], 'Console' => [ + 'Cake\Console\Helper\ProgressHelper' => ['_progress', '_total', '_width'], 'Cake\Console\TestSuite\ConsoleIntegrationTestTrait' => ['_exitCode', '_out', '_err', '_in'], 'Cake\Console\TestSuite\StubConsoleOutput' => ['_out'], 'Cake\Console\ConsoleInput' => ['_input', '_canReadline'], @@ -523,6 +530,7 @@ 'Cake\Collection\Iterator\TreePrinter' => ['_fetchCurrent'], ], 'Command' => [ + // Pre 5.4 location, kept for apps upgrading straight from 5.3 or older 'Cake\Command\Helper\TreeHelper' => [ '_calculateWidths', '_cellWidth', '_rowSeparator', '_render', '_addStyle', ], @@ -541,6 +549,12 @@ ], ], 'Console' => [ + 'Cake\Console\Helper\TreeHelper' => [ + '_calculateWidths', '_cellWidth', '_rowSeparator', '_render', '_addStyle', + ], + 'Cake\Console\Helper\TableHelper' => [ + '_calculateWidths', '_cellWidth', '_rowSeparator', '_render', '_addStyle', + ], 'Cake\Console\HelpFormatter' => ['_generateUsage', '_getMaxLength'], 'Cake\Console\ConsoleIo' => ['_getInput'], 'Cake\Console\ConsoleOutput' => ['_replaceTags'], diff --git a/tests/test_apps/original/RectorCommand-testApply60/src/ConsoleHelperExample.php b/tests/test_apps/original/RectorCommand-testApply60/src/ConsoleHelperExample.php new file mode 100644 index 0000000..104896c --- /dev/null +++ b/tests/test_apps/original/RectorCommand-testApply60/src/ConsoleHelperExample.php @@ -0,0 +1,16 @@ +Table->output([['a', 'b']]); + } +} diff --git a/tests/test_apps/upgraded/RectorCommand-testApply60/src/ConsoleHelperExample.php b/tests/test_apps/upgraded/RectorCommand-testApply60/src/ConsoleHelperExample.php new file mode 100644 index 0000000..4b753d3 --- /dev/null +++ b/tests/test_apps/upgraded/RectorCommand-testApply60/src/ConsoleHelperExample.php @@ -0,0 +1,16 @@ +Table->output([['a', 'b']]); + } +}