# Rector - Reconstruct your Legacy Code to Modern Codebase [![Build Status](https://img.shields.io/travis/RectorPHP/Rector/master.svg?style=flat-square)](https://travis-ci.org/RectorPHP/Rector) [![Coverage Status](https://img.shields.io/coveralls/RectorPHP/Rector/master.svg?style=flat-square)](https://coveralls.io/github/RectorPHP/Rector?branch=master) This tool will **upgrade your application** for you. ## All Reconstructors At the moment these packages are supported: - [Nette](/src/Rector/Contrib/Nette) - [Symfony](/src/Rector/Contrib/Symfony) - [PHPUnit](/src/Rector/Contrib/PHPUnit) - [PHP_CodeSniffer](/src/Rector/Contrib/PHP_CodeSniffer) ## Install ```bash composer require rector/rector --dev ``` ## How To Reconstruct your Code? 1. Create `rector.yml` with desired Rectors ```yml rectors: - Rector\Rector\Contrib\Nette\Application\InjectPropertyRector ``` 2. Run rector on your `/src` directory ```bash vendor/bin/rector process src ``` 3. Check the Git ``` git diff ``` ### 6 Steps to Add New Rector Just extend `Rector\Rector\AbstractRector`. It will prepare **2 methods** processing the node. ```php public function isCandidate(Node $node): bool { } public function refactor(Node $node): ?Node { } ``` 2. Put it under `namespace Rector\Contrib\;` namespace ```php