diff --git a/config/sets/contao/contao-53.php b/config/sets/contao/contao-53.php index 3d79887..e0381fd 100644 --- a/config/sets/contao/contao-53.php +++ b/config/sets/contao/contao-53.php @@ -5,6 +5,7 @@ use Contao\CoreBundle\File\ModelMetadataTrait; use Contao\CoreBundle\Security\ContaoCorePermissions; use Contao\Model\MetadataTrait; +use Contao\Rector\Rector\PageGlobalToPageFinderServiceRector; use Contao\Rector\Rector\StringReplaceRector; use Rector\Config\RectorConfig; use Rector\Renaming\Rector\ClassConstFetch\RenameClassConstFetchRector; @@ -24,4 +25,6 @@ $rectorConfig->ruleWithConfiguration(RenameClassRector::class, [ ModelMetadataTrait::class => MetadataTrait::class ]); + + $rectorConfig->rule(PageGlobalToPageFinderServiceRector::class); }; diff --git a/src/Rector/PageGlobalToPageFinderServiceRector.php b/src/Rector/PageGlobalToPageFinderServiceRector.php new file mode 100644 index 0000000..b76bac9 --- /dev/null +++ b/src/Rector/PageGlobalToPageFinderServiceRector.php @@ -0,0 +1,44 @@ +vars as $var) { + if (!$this->isName($var, 'objPage')) { + continue; + } + + $variable = new Node\Expr\Variable('objPage'); + + $container = new Node\Expr\StaticCall(new Node\Name\FullyQualified(System::class), 'getContainer'); + $service = new Node\Expr\MethodCall($container, 'get', [new Node\Arg(new Node\Scalar\String_('contao.routing.page_finder'))]); + $call = new Node\Expr\MethodCall($service, 'getCurrentPage'); + + + return new Node\Stmt\Expression( + new Node\Expr\Assign( + $variable, + $call + ) + ); + } + + return null; + } +}