Dependencies composer如何处理一个项目中多个包的共享依赖关系?

Dependencies composer如何处理一个项目中多个包的共享依赖关系?,dependencies,dependency-management,composer-php,circular-dependency,Dependencies,Dependency Management,Composer Php,Circular Dependency,如问题所述,如果项目A需要x、y和z包,那么他们都需要d1、d2、d3、d4和d5包。Composer是否为x、y和z软件包下载了三次d1、d2、d3、d4和d5 如果d1、d2、d3、d4和d4包依次需要另一组共享依赖项,那么这听起来是合乎逻辑的,但并不实用。。。。在一个项目代码库中会有大量重复的代码 提前感谢简短的回答是否定的。因为在PHP中多次加载库是不可能的,所以每个包独立下载依赖项是没有意义的。因此,Composer将解析您所有软件包的所有依赖项,然后立即安装它们,无需重复。谢谢Sel

如问题所述,如果项目A需要x、y和z包,那么他们都需要d1、d2、d3、d4和d5包。Composer是否为x、y和z软件包下载了三次d1、d2、d3、d4和d5

如果d1、d2、d3、d4和d4包依次需要另一组共享依赖项,那么这听起来是合乎逻辑的,但并不实用。。。。在一个项目代码库中会有大量重复的代码


提前感谢

简短的回答是否定的。因为在PHP中多次加载库是不可能的,所以每个包独立下载依赖项是没有意义的。因此,Composer将解析您所有软件包的所有依赖项,然后立即安装它们,无需重复。

谢谢Seldaek。。你自己试过吗?如果你说的是真的,composer会把共享库放在哪里?在供应商目录中的某个位置,以便其他人共享?所有依赖项(无论是项目的直接依赖项,还是二级/三级/三级依赖项)最终都位于
vendor/
中。是的,我自己也试过几次,因为我是项目负责人;)