同一个应用下使用多个 composer 的影响
在同一个应用中使用两个 Composer 可能带来一些问题,因为这两个 Composer 虽然是彼此独立的,但它们可能会互相干扰。
可能遇到的问题:
- 自动加载依赖:外部类可能自动加载另一个 Composer 下的依赖,反之亦然。
- 依赖版本冲突:如果两个 Composer.json 中同时依赖了相同依赖的不同版本,可能会导致运行时加载依赖的版本不可控。
可能的解决方案:
虽然不是很推荐,但可以将新依赖安装在其他目录,如 utils 目录。不过,需要注意以下几点:
- 实现自己的自动加载器,以控制不同 Composer 下依赖的加载。
- 如果出现依赖版本冲突,需要一方妥协。
更佳解决方案:
- 将 utils 做成一个单独的 Composer 包。
- 将公共依赖放入公共的 Composer.json 中,而不是分散在不同的 Composer.json 中。
- 根据需要,使用 vendor autoloader 来加载依赖。