RectorPhp task runner for GrumPhp
This package extends GrumPHP
with a task that runs RectorPHP for
your Laravel projects or any PHP application.
Note that we have added --dry-run
option, so the source code never changed.
The easiest way to install this package is through composer:
composer require --dev palpalani/grumphp-rector-task
Add the extension loader to your grumphp.yml
or grumphp.yml.dist
.
The task lives under the rector
namespace and has following
configurable parameters:
# grumphp.yml
grumphp:
tasks:
rector:
whitelist_patterns: []
config: 'rector.php'
triggered_by: ['php']
clear-cache: false
ignore_patterns: []
no-progress-bar: false
files_on_pre_commit: false
paths: []
no_diffs: false
extensions:
- palPalani\GrumPhpRectorTask\ExtensionLoader
By default, this won’t update your code, you need to do it manually.
Default: []
If you want to run on particular directories only, specify it with this option.
Default: 'rector.php'
If you want to use a different config file than the default rector.php
, you can specify your custom config file location with this option.
Default: [php]
This option will specify which file extensions will trigger this task.
Default: false
Clear cache for already checked files.
Default: false
Hide progress bar. Useful e.g. for nicer CI output.
Default: false
This option makes it possible to use the changed files as paths during pre-commits. It will use the paths option to make sure only committed files that match the path are validated.
Default: false
Create rector.php
in your project root and configure as follows. This example file iam using for my Laravel project, but you can use library with any PHP project. Also you no need to set all these settings, Please add or remove as per your requirements.
<?php
declare(strict_types=1);
use Rector\Core\Configuration\Option;
use Rector\Set\ValueObject\SetList;
use Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector;
use Rector\Config\RectorConfig;
use Rector\Php74\Rector\Property\TypedPropertyRector;
use Rector\CodeQuality\Rector\Isset_\IssetOnPropertyObjectToPropertyExistsRector;
return static function (RectorConfig $rectorConfig): void {
$rectorConfig->parallel();
$rectorConfig->paths([
__DIR__ . '/app',
__DIR__ . '/config',
__DIR__ . '/database',
__DIR__ . '/tests'
__DIR__ . '/routes',
]);
$rectorConfig->skip([
IssetOnPropertyObjectToPropertyExistsRector::class,
__DIR__ . '/app/Http/Middleware/*',
]);
$rectorConfig->rules([
ReturnTypeFromStrictBoolReturnExprRector::class,
//ReturnTypeFromStrictNativeFuncCallRector::class,
ReturnTypeFromStrictNewArrayRector::class,
ReturnTypeFromStrictScalarReturnExprRector::class,
ReturnTypeFromReturnNewRector::class,
]);
$rectorConfig->sets([
SetList::CODE_QUALITY,
SetList::CODING_STYLE,
SetList::DEAD_CODE,
SetList::TYPE_DECLARATION,
SetList::EARLY_RETURN,
SetList::PHP_81,
LevelSetList::UP_TO_PHP_80,
]);
$rectorConfig->sets([
LaravelSetList::LARAVEL_CODE_QUALITY,
LaravelSetList::LARAVEL_90,
LaravelLevelSetList::UP_TO_LARAVEL_80,
]);
};
Please visit RectorPhp for more configuration examples.
If you want to uninstall this extension remove configuration files first: rector.php
from your application.
then remove package:
composer remove palpalani/grumphp-rector-task
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
We use SemVer for versioning. For the versions available, see the tags on this repository.
The MIT License (MIT). Please see License File for more information.