preee / php-dependency-analysis
用于在依赖图中查找违规的静态代码分析
v1.4.1
2018-11-18 19:01 UTC
Requires
- php: ^5.6 || ^7.0
- clue/graph: ~0.8
- doctrine/collections: >=1.0
- graphp/algorithms: ~0.8.1
- graphp/graphviz: ~0.2.0
- nikic/php-parser: ^3.0
- padraic/phar-updater: >=1.0
- phpdocumentor/reflection-docblock: ^3.0 || ^4.0
- psr/log: ~1.0
- symfony/console: ^3.0 || ^4.0
- symfony/finder: ^3.0 || ^4.0
- symfony/yaml: >=3.0
Requires (Dev)
- codeception/codeception: >=2.2
- mockery/mockery: >=0.9.2
This package is auto-updated.
Last update: 2024-09-19 09:48:29 UTC
README
PhpDependencyAnalysis 是一个可扩展的静态代码分析工具,用于面向对象 PHP 项目生成基于抽象数据类型(类、接口和特质)的 依赖图
。依赖可以聚合以构建多个级别的图,如包级别或层级别。每个依赖都可以与定义的架构进行验证。
阅读 介绍章节 以获取更多信息。
示例
查看更多 示例。
安装
为了创建图,需要在您的机器上安装 GraphViz
,它是一个开源的图形可视化软件,适用于大多数平台。
安装 GraphViz
后,安装 mamuz/php-dependency-analysis
的推荐方法是...
作为 Phar
$ curl -OsSL https://raw.github.com/mamuz/PhpDependencyAnalysis/master/download/phpda.pubkey $ curl -OsSL https://raw.github.com/mamuz/PhpDependencyAnalysis/master/download/phpda $ chmod +x phpda
上面的三条命令将依次执行
- 将公钥下载到当前目录
- 将 Phar 文件下载到当前目录
- 使 Phar 文件可执行
Phar 文件已使用 OpenSSL 安全签名。要执行 Phar 文件,公钥必须与 Phar 文件同名,并添加 .pubkey
扩展名,必须放置在同一个目录中。这意味着不要更改公钥的名称和位置。
更新
使用提供的更新命令获取最新版本。
$ phpda update
作为 Composer 依赖项
$ composer require --dev mamuz/php-dependency-analysis
功能
- 高度可定制
- 在自定义级别分别创建不同作用域和层的图
- 支持使用图、调用图和继承图
- 依赖可以聚合,例如到一个包、一个模块或一个层
- 检测分层架构中层的循环和违规
- 将依赖图与用户定义的参考架构进行验证
- 收集到的依赖项命名空间可以修改以满足定制用例
- 以多种格式(HTML、SVG、DOT、JSON)打印图
- 通过添加用户定义的插件进行扩展以收集和显示
- 兼容 PHP7 功能,如
返回类型声明
和匿名类
用法
Phpda 可以通过使用预配置的 配置文件
运行。如您所见,配置是由一个 YAML
文件定义的。
要提供自己的配置,创建一个 yml 文件,例如位于 ./myconfig.yml
。
mode: 'usage' source: './src' filePattern: '*.php' ignore: 'tests' formatter: 'PhpDA\Writer\Strategy\Svg' target: './phpda.svg' groupLength: 1 visitor: - PhpDA\Parser\Visitor\TagCollector - PhpDA\Parser\Visitor\SuperglobalCollector visitorOptions: PhpDA\Parser\Visitor\Required\DeclaredNamespaceCollector: {minDepth: 2, sliceLength: 2} PhpDA\Parser\Visitor\Required\MetaNamespaceCollector: {minDepth: 2, sliceLength: 2} PhpDA\Parser\Visitor\Required\UsedNamespaceCollector: {minDepth: 2, sliceLength: 2} PhpDA\Parser\Visitor\TagCollector: {minDepth: 2, sliceLength: 2}
使用该配置执行分析
$ phpda analyze ./myconfig.yml
之后,使用您首选的工具打开图文件 ./phpda.svg
。
阅读 配置章节 了解所有可用选项。
维基
行为准则
作为此项目的贡献者和维护者,您必须尊重行为准则
变更日志
请在此处查看对项目的更改记录这里
贡献
在提交拉取请求之前,请阅读贡献指南
替代方案
检查Awesome PHP中的代码分析部分的资源