定制 igeek/rector-html-output 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

igeek/rector-html-output

Composer 安装命令:

composer require igeek/rector-html-output

包简介

Beautiful HTML output formatter for Rector PHP

README 文档

README

Beautiful, self-contained HTML output formatter for Rector PHP.

GitHub PHPUnit Action Status GitHub PHPStan Action Status GitHub PhpCsFixer Action Status

License PHP Latest Version on Packagist

Features

  • Beautiful HTML Reports - Modern, responsive design with dark/light mode
  • Zero External Dependencies - No CDN CSS/JS libraries required
  • Easy Setup - Simple helper function for rector.php
  • Auto-increment - Never overwrite existing reports
  • Statistics - Lines added/removed, files changed
  • Dark Mode - Automatic theme with localStorage persistence
  • Searchable - Filter files by name in sidebar
  • Collapsible - Expand/collapse individual file diffs

Installation

composer require --dev igeek/rector-html-output

Usage

IMPORTANT: This package requires the callback-style rector.php because the fluent RectorConfigBuilder::registerService() only accepts class names, not factory closures needed for custom configuration.

Basic Configuration

Add to your rector.php:

<?php

use Rector\Config\RectorConfig;
use function Igeek\RectorHtmlOutput\withHtmlOutput;

return function (RectorConfig $rectorConfig): void {
    // Standard Rector configuration
    $rectorConfig->paths([__DIR__ . '/app']);

    // Register HTML output formatter
    withHtmlOutput($rectorConfig, __DIR__ . '/rector-reports');
};

Run Rector with HTML Output

# Dry run with HTML report
vendor/bin/rector process --dry-run --output-format=html

# Apply changes with HTML report
vendor/bin/rector process --output-format=html

# Specific paths
vendor/bin/rector process src/Services --output-format=html

Advanced Configuration

<?php

use Rector\Config\RectorConfig;
use function Igeek\RectorHtmlOutput\withHtmlOutput;

return function (RectorConfig $rectorConfig): void {
    $rectorConfig->paths([__DIR__ . '/app']);

    withHtmlOutput(
        rectorConfig: $rectorConfig,
        outputDirectory: __DIR__ . '/reports',    // Auto-created if missing
        filename: 'my-custom-report',              // Without .html extension
        autoIncrement: true,                       // Auto-increment if file exists
        skipEmpty: true,                           // Skip report if no changes
    );
};

Manual Registration (Advanced)

For users who need full control:

<?php

use Rector\Config\RectorConfig;
use Igeek\RectorHtmlOutput\HtmlOutputFormatter;
use Igeek\RectorHtmlOutput\Config\HtmlOutputConfig;
use Igeek\RectorHtmlOutput\Template\TemplateRenderer;
use Igeek\RectorHtmlOutput\Template\PlaceholderReplacer;
use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface;

return function (RectorConfig $rectorConfig): void {
    $rectorConfig->paths([__DIR__ . '/app']);

    $rectorConfig->singleton(HtmlOutputConfig::class, fn() => new HtmlOutputConfig(
        outputDirectory: __DIR__ . '/rector-reports',
        filename: 'my-report',
    ));
    $rectorConfig->singleton(PlaceholderReplacer::class);
    $rectorConfig->singleton(TemplateRenderer::class, fn($c) => new TemplateRenderer(
        $c->get(HtmlOutputConfig::class)->getTemplatePath(),
        $c->get(PlaceholderReplacer::class)
    ));
    $rectorConfig->singleton(HtmlOutputFormatter::class);
    $rectorConfig->tag(HtmlOutputFormatter::class, OutputFormatterInterface::class);
};

Configuration Options

Option Type Default Description
outputDirectory string required Directory where reports will be saved (auto-created)
filename string 'rector-report' Base filename (without extension)
autoIncrement bool true Auto-increment filename if exists
skipEmpty bool true Skip report generation if no changes

Output Example

Reports include:

  • Summary statistics (files changed, lines added/removed)
  • Searchable file list sidebar
  • Syntax-highlighted diffs with line numbers
  • Dark/light mode toggle (persisted via localStorage)
  • Collapsible file sections
  • Collapse/expand all button

Requirements

  • PHP 8.3 or higher
  • Rector ^2.0

License

MIT License - see LICENSE file

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Screenshots

Default UI

Search by file name

Collapse/Expand one or more file diff blocks

igeek/rector-html-output 适用场景与选型建议

igeek/rector-html-output 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 353 次下载、GitHub Stars 达 1, 最近一次更新时间为 2026 年 01 月 05 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「php」 「html」 「formatter」 「report」 「rector」 「igeek」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 igeek/rector-html-output 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 igeek/rector-html-output 我们能提供哪些服务?
定制开发 / 二次开发

基于 igeek/rector-html-output 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 353
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 9
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-05