becklyn / rector
为使用 Rector 和主要基于 Symfony 的项目提供各种重构规则的集合
1.0.1
2022-05-30 08:31 UTC
Requires
- php: >=7.4
- phpstan/phpstan: ^1.7.3
- rector/rector: >=0.12.23
Requires (Dev)
- phpunit/phpunit: ^9.5
- symfony/framework-bundle: ^5.4 || ^6.0
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); } }