trismegiste/mondrian

Mondrian 是一套用于提高抽象性的静态分析和重构工具

安装: 184

依赖项: 0

建议者: 0

安全: 0

星星: 396

关注者: 27

分支: 22

开放问题: 10

类型:cli

v1.3.3 2014-09-16 11:51 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:09:05 UTC


README

各位,你们在图论上拥有硕士学位,遵循迪米特法则,并生活在S.O.L.I.D原则之上吗?

让我们来点乐趣吧!(^ω^)

是什么

这是一套CLI工具,帮助您分析并重构高度耦合的类。正如你所知,遵循迪米特法则和S.O.L.I.D指南,你需要你的类松散耦合。为此,只有一个规则:抽象

From Hell To Kiss

此应用提供了一些辅助工具,以最小痛苦地将抽象添加到具体类中。

入门

下载PHAR:mondrian.phar

尝试使用几个文件(或项目的小部分)运行一个简单的命令

$ mondrian.phar digraph /home/dev/project

此命令为GraphViz生成一个DOT文件。其他格式也可用

  • html:使用d3.js出色库的交互式图形
  • svg:矢量图形的开放标准(需要GraphViz
  • json:例如d3.js的格式

示例:使用html格式

$ php mondrian.php d --ignore=tests --ignore=vendor --format=html ./MyPhpProject/

html-report

注意:生成的html文件不需要任何依赖项或连接。

生态系统

使用PHPUnit运行单元测试

$ phpunit.phar

使用phpDocumentor构建文档

$ phpDocumentor.phar

使用box2从源代码构建mondrian.phar

$ box.phar b

示例

trismegiste/dokudoki上的默认有向图

digraph1

哪些组件是瓶颈?

digraph2

trismegiste/prolog上减少到LSP违规的有向图

digraph3

如何

在这里阅读概念这里

在这里阅读在线文档这里

以及API这里(可能不是最新的)

可扩展

您可以轻松地向此工具添加插件,以创建自己的算法、着色方案或新的生成器。我努力使API大部分解耦、可重用,并具有优秀的SRP和OCP关注点。查看“关于”插件以了解插件的基本框架。

第三方

在此项目中使用的包

特别感谢

  • 威廉·吉布森
  • 约翰·塞巴斯蒂安·巴赫
  • 梦剧院