preee/php-dependency-analysis

用于在依赖图中查找违规的静态代码分析

安装: 389

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 45

类型:项目

v1.4.1 2018-11-18 19:01 UTC

README

Author Build Status Latest Stable Version Total Downloads License

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

阅读 配置章节 了解所有可用选项。

维基

  1. 简介
  2. 需求
  3. 配置
  4. 示例
  5. 插件

行为准则

作为此项目的贡献者和维护者,您必须尊重行为准则

变更日志

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

贡献

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

替代方案

检查Awesome PHP中的代码分析部分的资源