Instant Upgrades and Automated Refactoring of any PHP 5.3+ code
Go to file
2017-09-03 14:38:21 +02:00
bin
packages/NodeTypeResolver [NodeTypeResolver] add method argument type 2017-08-21 12:04:35 +02:00
src add SymfonyContainerClassAnalyzer 2017-09-03 14:37:36 +02:00
tests misc 2017-09-03 14:08:17 +02:00
.coveralls.yml
.gitignore
.travis.yml
CODE_OF_CONDUCT.md
composer.json [Symfony] add StringFormTypeToClassRector 2017-08-31 18:24:09 +02:00
easy-coding-standard.neon ecs: cleanup unreported error skip 2017-09-03 14:38:21 +02:00
LICENSE
phpstan.neon
phpunit.xml add /packages directory to static analysis check 2017-08-20 17:20:33 +02:00
README.md rebuild 2017-08-25 21:57:39 +02:00

Rector - Reconstruct your Legacy Code to Modern Codebase

Build Status Coverage Status

This tool will reconstruct (change) your code - run it only in a new clean git branch.

All Reconstructors

Nette

  • FormCallbackRector
  • InjectPropertyRector
  • HtmlAddMethodRector
  • NetteObjectToSmartTraitRector
  • RemoveConfiguratorConstantsRector

Symfony

  • NamedServicesToConstructorNodeTraverser

Abstract to use

  • AbstractChangeMethodNameRector

Install

composer require rector/rector --dev

Use (WIP)

vendor/bin/rector reconstruct src --framework Nette --to-version 2.4
vendor/bin/rector reconstruct src --framework Symfony --to-version 3.3

How to Add New Rector

Just extend Rector\Rector\AbstractRector. It will prepare 4 methods - 2 informative and 2 processing the node.

/**
 * A project that is related to this.
 * E.g "Nette", "Symfony"
 * Use constants from @see SetNames, if possible.
 */
public function getSetName(): string
{
}

/**
 * Version this deprecations is active since.
 * E.g. 2.3.
 */
public function sinceVersion(): float
{
}


public function isCandidate(Node $node): bool
{
}

public function refactor(Node $node): ?Node
{
}
  1. Put it under namespace Rector\Contrib\<set>; namespace
<?php declare(strict_types=1);

namespace Rector\Contrib\Symfony;
    
use Rector\Rector\AbstractRector;

final class MyRector extends AbstractRector
{
    // ...
}
  1. Add a Test Case

  2. Submit PR

  3. :check:

How to Contribute

Just follow 3 rules:

  • 1 feature per pull-request

  • New feature needs tests

  • Tests, coding standard and PHPStan checks must pass

    composer all
    

    Don you need to fix coding standards? Run:

    composer fix-cs
    

We would be happy to merge your feature then.