Hello! 欢迎来到小浪资源网!


在一个应用中使用多个Composer:会带来哪些问题以及如何解决?


在一个应用中使用多个Composer:会带来哪些问题以及如何解决?

同一个应用下使用多个 composer 的影响

在同一个应用中使用两个 Composer 可能带来一些问题,因为这两个 Composer 虽然是彼此独立的,但它们可能会互相干扰。

可能遇到的问题:

  • 自动加载依赖:外部类可能自动加载另一个 Composer 下的依赖,反之亦然。
  • 依赖版本冲突:如果两个 Composer.json 中同时依赖了相同依赖的不同版本,可能会导致运行时加载依赖的版本不可控。

可能的解决方案:

虽然不是很推荐,但可以将新依赖安装在其他目录,如 utils 目录。不过,需要注意以下几点:

  • 实现自己的自动加载器,以控制不同 Composer 下依赖的加载。
  • 如果出现依赖版本冲突,需要一方妥协。

更佳解决方案:

  • 将 utils 做成一个单独的 Composer 包。
  • 将公共依赖放入公共的 Composer.json 中,而不是分散在不同的 Composer.json 中。
  • 根据需要,使用 vendor autoloader 来加载依赖。

相关阅读