becklyn/rector

为使用 Rector 和主要基于 Symfony 的项目提供各种重构规则的集合

1.0.1 2022-05-30 08:31 UTC

This package is auto-updated.

Last update: 2024-08-29 05:50:45 UTC


README

本包包含了一组 Rector 规则,这些规则可以帮助您升级基于 Symfony 的代码库,并保持其无弃用功能。

安装

通过 Composer 轻松获取此包:composer require --dev becklyn/rector

使用

添加您想要的规则

此捆绑包使用默认的 AJAX 协议,该协议用于 AjaxResponseBuilder 并可用于您的项目。AJAX 调用将始终返回错误 200,因为它不应该使错误跟踪(错误 400 AJAX 请求)过载。

该协议看起来像这样

// rector.php

use Becklyn\Rector\Symfony\ReplaceControllerThisGetWithThisContainerGet;
use Rector\Config\RectorConfig;

return static function (RectorConfig $rectorConfig): void {
    // …
    
    $rectorConfig->rule(ReplaceControllerThisGetWithThisContainerGet::class);
    
    // …
};

可用规则

Becklyn\\Rector\\Symfony\\ReplaceControllerThisGetWithThisContainerGet

尝试通过 $this->get(…) 访问依赖关系的控制器将被重构为使用 $this->container->get(…)

之前

class ExtendingAbstractController extends \Symfony\Bundle\FrameworkBundle\Controller\AbstractController
{
    public function run()
    {
        $this->get(SomeClass::class);
    }

    public function runFaster()
    {
        $service = $this->get(SomeOtherClass::class);
    }

    public function runEvenFaster()
    {
        return $this->get(BestClass::class);
    }
}

之后

class ExtendingAbstractController extends \Symfony\Bundle\FrameworkBundle\Controller\AbstractController
{
    public function run()
    {
        $this->container->get(SomeClass::class);
    }

    public function runFaster()
    {
        $service = $this->container->get(SomeOtherClass::class);
    }

    public function runEvenFaster()
    {
        return $this->container->get(BestClass::class);
    }
}