eliashaeussler/rector-config

My personal configuration for Rector

Package info

github.com/eliashaeussler/rector-config

pkg:composer/eliashaeussler/rector-config

Statistics

Installs: 734 651

Dependents: 26

Suggesters: 0

Stars: 3

Open Issues: 1

4.0.0 2025-12-04 20:38 UTC

Requires

  • php: ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
  • composer-runtime-api: ^2.0
  • rector/rector: ^2.0.17

Suggests

Provides

None

Conflicts

None

Replaces

None

GPL-3.0-or-later 8f1c49d4c0a9633a6f962c69bdc8df5bb2944009


README

Rector config

πŸ‘ Coverage
πŸ‘ CGL
πŸ‘ Tests
πŸ‘ Supported PHP Versions

This package contains basic Rector config for use in my personal projects. It is not meant to be used anywhere else. I won't provide support and don't accept pull requests for this repo.

πŸ”₯ Installation

πŸ‘ Packagist
πŸ‘ Packagist Downloads

composer require --dev eliashaeussler/rector-config

⚑ Usage

# rector.php

use EliasHaeussler\RectorConfig\Config\Config;
use EliasHaeussler\RectorConfig\Set\CustomSet;
use Rector\Config\RectorConfig;
use Rector\Php80\Rector\Class_\AnnotationToAttributeRector;
use Rector\Set\ValueObject\SetList;
use Rector\ValueObject\PhpVersion;

return static function (RectorConfig $rectorConfig): void {
 // Optional: Configure PHP version explicitly
 // Can be left out to use the current environment's PHP version
 $phpVersion = PhpVersion::PHP_81;

 // Create config from Rector config object
 $config = Config::create($rectorConfig, $phpVersion)->in(
 __DIR__.'/src',
 __DIR__.'/tests',
 );

 // Skip specific paths
 $config->not(
 __DIR__.'/src/lib',
 __DIR__.'/tests/test-application/vendor',
 );

 // Include default PHPUnit sets
 $config->withPHPUnit();

 // Include default Symfony sets
 $config->withSymfony();

 // Include default TYPO3 sets
 $config->withTYPO3();

 // Include custom sets
 $config->withSets(
 new CustomSet(
 SetList::CODE_QUALITY,
 SetList::CODING_STYLE,
 ),
 );

 // Skip specific rectors
 $config->skip(
 AnnotationToAttributeRector::class,
 [
 __DIR__.'/src/Some/File.php',
 ],
 );

 // Apply configuration
 $config->apply();
};

⭐ License

This project is licensed under GNU General Public License 3.0 (or later).