becklyn / rector
A collection of various refactoring rules for projects that use Rector and mainly Symfony
Installs: 3 515
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
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
This package contains a list of Rector rules that help you up-grading your Symfony-based code base and keeping it deprecation-free.
Installation
Easily get this package via Composer: composer require --dev becklyn/rector
Usage
Add the rules that you want
This bundle uses a default AJAX protocol, that is used in the AjaxResponseBuilder
and can be used for your
project. The ajax call will always return an error 200, as it shouldn't flood the error tracking (with error 400
AJAX request).
The protocol looks like this:
// rector.php use Becklyn\Rector\Symfony\ReplaceControllerThisGetWithThisContainerGet; use Rector\Config\RectorConfig; return static function (RectorConfig $rectorConfig): void { // … $rectorConfig->rule(ReplaceControllerThisGetWithThisContainerGet::class); // … };
Available rules
Becklyn\\Rector\\Symfony\\ReplaceControllerThisGetWithThisContainerGet
Controllers that were trying to access dependencies via $this->get(…)
will be refactored to use $this->container->get(…)
.
Before:
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); } }
After:
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); } }