对于给定版本的软件包,我需要找到需要它的软件包。
我可以通过制作某种解析器来重新发明轮子来反对我们的Satis repo的packages.json但是肯定有一种更简单的方法已经出现在Composer API中了吗?
这个用例是我在Jenkins CI服务器上构建的构建管道,它响应对我们顶层主作曲家项目的提交,这是我们需要检索和组装的移动版本(通过composer require)我们的Satis仓库中的包具有依赖关系,应用模糊版本匹配。
答案 0 :(得分:0)
我没有关于Composer API的内部知识 - 我的方法是使用已发布的CLI界面完成工作,试图避免花哨的东西,因为Composer项目仍然在progess中工作很多。话虽如此:
在一般情况下,您无法编译“此包A正被所有这些包使用”的列表,因为这意味着您必须扫描世界上存在的所有包。那项工作永远不会结束。
但是,使用Satis将编译检测到的包列表以使用某个包,该包在HTML模板中呈现以供参考。因此,对于一个合理的小世界,可以检测依赖关系并创建反向依赖关系图。但我认为这不是Composer中的可靠功能,因为对于通常的用例,Composer只会评估前向依赖性,永远不会反转。 Composer中没有用于创建这些关系的用例,机会很高Satis也不会在常规情况下暴露它们。
但是,您可以尝试输出比呈现的HTML更具机器可读性的内容,以获取“使用此包”的信息 - 它作为数组变量传递到模板中。输出别的东西不应该太难。