mamuz / php-dependency-analysis
静态代码分析,以在依赖图中找到违规行为
v2.0.2
2019-04-11 15:58 UTC
Requires
- php: ^7.3
- ext-json: *
- clue/graph: ~0.8
- doctrine/collections: ~1.0
- graphp/algorithms: ~0.8.1
- graphp/graphviz: ~0.2.0
- nikic/php-parser: ~4.0
- phpdocumentor/reflection-docblock: ~4.0
- psr/log: ~1.0
- symfony/console: ~4.2
- symfony/finder: ~4.2
- symfony/yaml: ~4.2
Requires (Dev)
- ext-simplexml: *
- codeception/codeception: ^2.5
- mockery/mockery: ~1.2
- dev-master
- v2.0.2
- v2.0.1
- v2.0.0
- v1.3.1
- v1.3.0
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.0
- v0.6.1
- v0.6.0
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.1
- v0.2.0
- v0.1.3
- v0.1.0
- v0.1.0-beta
- v0.0.1
- v0.0.1-beta.3
- v0.0.1-beta.2
- v0.0.1-beta
- dev-dependabot/composer/guzzlehttp/guzzle-6.5.8
- dev-dependabot/composer/guzzlehttp/psr7-1.8.5
- dev-dependabot/composer/codeception/codeception-3.1.3
This package is auto-updated.
Last update: 2024-09-21 22:28:05 UTC
README
PhpDependencyAnalysis 是一个可扩展的静态代码分析工具,用于面向对象的 PHP 项目生成基于抽象数据类型(类、接口和特质)的 依赖图
。依赖可以聚合以构建多级图,如包级别或层级别。每个依赖都可以与定义的架构进行验证。
阅读 介绍章节 获取更多信息。
示例
查看更多 示例。
安装
作为 Docker 镜像(推荐方式)
docker pull mamuz/phpda
作为 Composer 依赖
注意:为了创建图形,您的机器上需要安装 GraphViz
,这是一个开源的图形可视化软件,适用于大多数平台。
$ composer require --dev mamuz/php-dependency-analysis
作为 Phar
从版本 2.0.0 开始不再支持。
功能
- 高度可定制
- 在自定义级别、不同范围和层上创建图形
- 支持使用图、调用图和继承图
- 依赖可以聚合,例如到包、模块或层
- 检测分层架构中层的循环和违规行为
- 将依赖图与用户定义的参考架构进行验证
- 收集到的依赖命名空间可以修改以满足自定义用例
- 以多种格式(HTML、SVG、DOT、JSON)打印图形
- 通过添加用户定义的插件来扩展,用于收集和显示
- 兼容 PHP7 功能,如
返回类型声明
和匿名类
用法
Phpda 可以通过使用预置的 配置
立即运行。如您所见,配置由一个 YAML
文件定义。
要提供自己的配置,创建一个 yml 文件,例如位于 ./phpda.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}
使用该配置执行分析
$ docker run --rm -v $PWD:/app mamuz/phpda
阅读 配置章节 了解所有可用选项。
Wiki
行为准则
作为本项目的贡献者和维护者,您必须遵守 行为准则
变更日志
在此处查看对项目的更改记录 此处
贡献
在提交拉取请求之前,请阅读 贡献指南
替代方案
请检查在Awesome PHP的静态分析部分的资源。