Skip to content

OutputFormatter that exports an HTML file containing summary and diffs from Rector's process command.

License

Notifications You must be signed in to change notification settings

matheusab-soft/rector-html-output-formatter

Repository files navigation

Install

composer require --dev matheusab/rector-html-output-formatter

Usage

Configure it in your rector.php, where the exportedFilePathPrefix argument is the path to the exported report. Example:

return static function (RectorConfig $rectorConfig): void {
    $rectorConfig->singleton(HtmlOutputFormatter::class, HtmlOutputFormatter::class);
    $rectorConfig->tag(HtmlOutputFormatter::class, OutputFormatterInterface::class);
    $rectorConfig
        ->when(HtmlOutputFormatter::class)
        ->needs('$exportedFilePathPrefix')
        ->give(__DIR__ . '/rector-report');

Since v1.1, a custom report template can also be used: see Using a custom report template

Generating a report

After configuring it, you can generate it with Rector's process command by setting --output-format=html.

Example:

vendor/bin/rector process --dry-run --output-format=html

Using a custom report template

When configuring RectorConfig, a custom report template can be used. Example:

rector.php:

$rectorConfig
    ->when(HtmlOutputFormatter::class)
    ->needs('$customReportTemplatePath')
    ->give(__DIR__ . '/custom_template.php');

You may use the following variables on the template:

Variable Description
$errorsJson an array with the following keys:
changed_files: an array of file names
file_diffs: an array of files with the following shape:
* 'file => string
* 'diff' => string
* 'applied_rectors' => string[]
$diffOccurrences a map where
key: applied rector
value: number of occurences

Examples

Generated report screenshots

image

image

About

OutputFormatter that exports an HTML file containing summary and diffs from Rector's process command.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •