我在symfony2上工作了一段时间,但我并没有真正找到与供应商合作的正确方法。
所以这是我在做什么:
当我忽略整个供应商文件夹时,我的git中有deps和deps.lock文件。现在,当我将应用程序安装到新服务器上时,我做了一个php bin/vendors install
将供应商 pull 到服务器上。我收到消息,我必须使用install --reinstall
并执行此操作。
根据我的理解,现在的版本应该与开发机器上的版本完全相同,因为deps和deps.lock都相同。但是似乎deps.lock被(部分)忽略了?
还有一个vendors update
命令,我不应阅读该命令。但是我不知道它到底是做什么的。
因此,我现在对于应该何时使用什么命令以及应该使用什么命令感到有些困惑。也许有人可以阐明这个话题!我对在本地和服务器上使用供应商命令的正确方式特别感兴趣,因此在两个系统上供应商的版本都正确!
最佳答案
安装和更新都从deps文件中指定的git存储库中获取新代码
在每个库的deps.lock文件中安装检查哈希的方法。如果找到内容,它将 check out 与哈希相对应的提交。如果没有,它将在deps.lock中 checkout 标记或分支(如果已指定),并在deps.lock文件中创建一个条目
当您想更新到新版本的symfony(或deps文件中的任何库)时,update很有用。如果您有一天想要更新,可以阅读this post I wrote about the update process。
综上所述,我始终在所有计算机上使用update,并且尝试始终为每个库指定一个版本,以使生产环境不会意外地更新为不稳定的版本。