composer require --dev matheusab/rector-html-output-formatter
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
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
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 namesfile_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 |

