trismegiste / mondrian
Mondrian 是一套用于提高抽象性的静态分析和重构工具
v1.3.3
2014-09-16 11:51 UTC
Requires
- php: >=5.4
- alom/graphviz: 0.9.*
- nikic/php-parser: 1.0.0beta2
- symfony/config: 2.3.*
- symfony/console: 2.3.*
- symfony/finder: 2.3.*
- symfony/yaml: 2.3.*
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指南,你需要你的类松散耦合。为此,只有一个规则:抽象
此应用提供了一些辅助工具,以最小痛苦地将抽象添加到具体类中。
入门
下载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文件不需要任何依赖项或连接。
生态系统
使用PHPUnit运行单元测试
$ phpunit.phar
使用phpDocumentor构建文档
$ phpDocumentor.phar
使用box2从源代码构建mondrian.phar
$ box.phar b
示例
trismegiste/dokudoki上的默认有向图
哪些组件是瓶颈?
trismegiste/prolog上减少到LSP违规的有向图
如何
在这里阅读概念这里
在这里阅读在线文档这里
以及API这里(可能不是最新的)
可扩展
您可以轻松地向此工具添加插件,以创建自己的算法、着色方案或新的生成器。我努力使API大部分解耦、可重用,并具有优秀的SRP和OCP关注点。查看“关于”插件以了解插件的基本框架。
第三方
在此项目中使用的包
- nikic/php-parser 用于解析PHP
- symfony/console 用于创建带有swag的CLI应用
- alom/graphviz 用于渲染DOT文件
- symfony/finder 用于在文件系统中搜索文件
- symfony/config 用于管理yaml配置而无需头痛
- D3.js 用于在 HTML 中进行图形渲染
- 使用 Box 构建的 Phar
特别感谢
- 威廉·吉布森
- 约翰·塞巴斯蒂安·巴赫
- 梦剧院