使用Composer,可以在多个项目之间共享依赖项



首先,我是一个完全的作曲家新手。我一直在尝试它,因为它听起来很棒,主要是因为Zend Framework 2使用了它。

Zend Framework 2实际上也是这个线程的原因。

它得到了Composer的基础知识。但是在我目前的服务器设置下,我有一个请求,我似乎无法弄清楚是否可能。

让我解释一下。

我有多个Zend Framework 2项目:

  • /home/morten/网站/项目1/
  • /home/morten/网站/项目2/
  • /home/morten/网站/项目三/

所有这些项目都应该运行ZF2。当在每个项目中运行composer时,每个项目都可以单独下载ZF2库文件。这对我的设置来说有点多余。

我有一个完整和最新的ZF2库下载位于:/var/www/shared/Zend/

并且我的PHP .ini已经将该路径添加到PHP的include_path中,因此整个ZF2库可用于所有三个项目。

是否有可能让Composer在它的设置中使用?因为如果我试图改变一些东西,尝试在编写器文件中尝试一些东西,那么它只会重新下载Zend,因为它是其他模块所需的组件。

这能做到吗?如果是,我该怎么做?

希望我已经解释得足够好,让你们明白我在努力做什么,想要什么:)

提前感谢!

问候,Morten

你可能有一个 composer.json文件存储在/var/www/shared/Zend,你会把你的依赖关系和使用Composer来管理他们。然后所有项目都可以包含相同的自动加载器。

但是,我不推荐这种方法:

  • 项目的依赖项(composer.json)应该与项目一起存储。如果您想在其他地方安装您的项目(例如,如果您想将一个项目移动到另一个服务器),您将错过composer.json来安装所需的依赖项。
  • 如果不更新所有其他项目的依赖项,就不可能更新一个项目的依赖项。如果您想在项目1中引入一个新功能,而该功能需要某个依赖项的新版本,那么所有其他项目也将获得这个新版本——如果项目2所依赖的旧功能不再受支持,这可能会导致向后兼容性中断。由于每个依赖项只能有一个版本,所以两个项目不可能有相同依赖项的不同版本。

如果所有项目都具有完全相同的功能和代码,这种方法可能有用,但在这种情况下,您可能应该将它们合并到一个项目中。

在所有其他情况下,我建议使用Composer的方式应该被使用:给所有项目自己的composer.json文件,让Composer下载每个项目的依赖,在每个项目的vendor目录。缺点是它将花费您更多的磁盘空间,但作为回报,您将获得很大的灵活性。

相关内容

  • 没有找到相关文章

最新更新