rockprofile / dependency-visualiser
基于composer的项目依赖可视化工具
dev-master
2022-09-22 20:33 UTC
Requires
- php: >=7.3.0
- ext-json: *
- rockprofile/storage: 1.1.1
Requires (Dev)
- infection/infection: 0.12.*
- phpstan/phpstan: 0.11.7
- rockprofile/dependency-visualiser-neo4j: 1.1.0
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处理之后,依赖项数量增加
从5个显式依赖项,考虑到开发环境,我们现在有65个依赖项,包括composer包、PHP扩展和语言本身。
依赖可视化器是一个工具,它允许您映射PHP项目的依赖树。
要求
该包当前读取每个composer文件。它将遵循composer文件的vendor-dir参数。
在composer上存在Neo4j的基本存储引擎(rockprofile/dependency-visualiser-neo4j)。只要实现了StorageInterface,您就可以使用任何存储机制。
当前限制
当前最大的限制是脚本无法识别是否有冲突的所需包版本。虽然composer应该会对此提出抱怨,但如果脚本也能识别这一点,将会很有帮助。
如果多个子依赖项需要相同的包,脚本还应识别每个依赖项所需的最小版本。
待办事项
- 识别依赖项的最小可用版本。
- 实现其他包管理器(如NPM)的解析器。
- 修改包以使用可用的锁文件,如果需要,则回退到单个文件。这将有助于确保版本号被记录。许多包在Composer.Json中没有版本号。
- 将包的内容分离到另一个包中,以便其他包可以正确使用它们。