rockprofile/dependency-visualiser

基于composer的项目依赖可视化工具

dev-master 2022-09-22 20:33 UTC

This package is auto-updated.

Last update: 2024-09-23 01:33:43 UTC


README

对于任何现代PHP项目,依赖项的数量几乎呈指数级增长。跟踪这些依赖项可能是一项艰巨的任务,尤其是当这些依赖项具有大量子依赖项时。

例如,此包具有以下显式依赖项

  • php
  • ext-json (php扩展)
  • phpstan/phpstan (开发)
  • infection/infection (开发)
  • rockprofile/dependency-visualiser-neo4j (开发)

然而,经过composer处理之后,依赖项数量增加

'Project Dependencies'

从5个显式依赖项,考虑到开发环境,我们现在有65个依赖项,包括composer包、PHP扩展和语言本身。

依赖可视化器是一个工具,它允许您映射PHP项目的依赖树。

要求

该包当前读取每个composer文件。它将遵循composer文件的vendor-dir参数。

在composer上存在Neo4j的基本存储引擎(rockprofile/dependency-visualiser-neo4j)。只要实现了StorageInterface,您就可以使用任何存储机制。

当前限制

当前最大的限制是脚本无法识别是否有冲突的所需包版本。虽然composer应该会对此提出抱怨,但如果脚本也能识别这一点,将会很有帮助。

如果多个子依赖项需要相同的包,脚本还应识别每个依赖项所需的最小版本。

待办事项

  • 识别依赖项的最小可用版本。
  • 实现其他包管理器(如NPM)的解析器。
  • 修改包以使用可用的锁文件,如果需要,则回退到单个文件。这将有助于确保版本号被记录。许多包在Composer.Json中没有版本号。
  • 将包的内容分离到另一个包中,以便其他包可以正确使用它们。