mamuz/php-dependency-analysis

静态代码分析,以在依赖图中找到违规行为

安装次数: 107,827

依赖者: 68

建议者: 0

安全: 0

星标: 561

关注者: 30

分支: 45

开放问题: 14

类型:项目


README

Author Build Status Latest Stable Version Total Downloads License

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

  1. 介绍
  2. 要求
  3. 配置
  4. 示例
  5. 插件

行为准则

作为本项目的贡献者和维护者,您必须遵守 行为准则

变更日志

在此处查看对项目的更改记录 此处

贡献

在提交拉取请求之前,请阅读 贡献指南

替代方案

请检查在Awesome PHP的静态分析部分的资源。