bigwhoop/php-extract-class-components

从PHP类中提取组件(相互交互的方法和属性)。结果可以可视化,有助于拆分类。

2.0.0 2024-03-10 19:57 UTC

This package is auto-updated.

Last update: 2024-09-10 21:26:35 UTC


README

这个小工具通过显示类的方法和属性之间的关系来帮助您可视化类的内聚性。它通过显示类可以如何拆分来帮助您遵循SRP(单一职责原则)。

class Example
{
    private $a;
    private $b;
    private $c;
    
    public function a(): void
    {
        $this->a;
    }
    
    public function ab(): void
    {
        $this->a;
        $this->b;
    }
    
    public function c(): void
    {}
}

Example

如何安装

composer require bigwhoop/php-extract-class-components

如何使用

vendor/bin/php-class-components-extractor Path/To/Your/Class.php

查看-h选项以获取更多信息

Usage: ./class-components-extractor [options] input

Arguments:
  input                 Path to a PHP file or - to use STDIN

Options:
  -h --help             Shows this help
  -f --format <format>  Output format to use. One of the followwing:
                          json      JSON (default)
                          text      Human-readable representation
                          graphviz  Graphviz's graph description language

Examples:
  ./class-components-extractor file.php
  ./class-components-extractor file.php > components.json
  ./class-components-extractor --format text file.php
  ./class-components-extractor --format graphviz file.php | dot -Tpng -o diagram.png
  cat file.php | ./class-components-extractor --graphviz - | dot -Tpng -o diagram.png

贡献

如何运行测试

vendor/bin/phpstan
vendor/bin/phpunit