了解symfony2 deps

时间:2012-03-17 10:44:54

标签: php git symfony

我正在使用symfony2一段时间,我并没有真正得到与供应商合作的正确方法。

所以这就是我正在做的事情:

我在我的git中有deps和deps.lock文件,而忽略了整个vendor文件夹。现在,当我将应用程序安装到新服务器时,我会执行php bin/vendors install将供应商拉到服务器上。我收到消息,我必须使用install --reinstall并执行此操作。

根据我的理解,版本现在应该与我的开发机器完全相同,因为deps和deps.lock都是相同的。但似乎deps.lock被(部分)忽略了?

还有一个vendors update命令,我不应该使用它。我没想到它的真正含义。

所以我现在有点困惑,因为应该使用什么命令以及它应该做什么。也许有人可以对这个话题有所了解!我对在本地和服务器上使用供应商命令的正确方法特别感兴趣,因此供应商在两个系统上的版本都是正确的!

3 个答案:

答案 0 :(得分:4)

install --reinstallinstall相同,但在安装之前也会删除供应商文件夹内容。

vendors update将您的所有供应商更新为deps文件中指定的最新版本或版本,并更新您的deps.lock文件。但你很少需要它,不知道你在哪里读“不应该使用”。

如果你查看供应商文件,你可以看到这一行:

if (is_dir($vendorDir.'/symfony') && !is_dir($vendorDir.'/symfony/.git') && !in_array('--reinstall', $argv))
...Try to run ./bin/vendors install --reinstall...

所以你有没有.git的vendor / symfony文件夹。

答案 1 :(得分:4)

安装并更新从deps文件中指定的git存储库中获取新代码

安装检查每个库的deps.lock文件中的哈希值。如果它找到了什么,它会检查对应于哈希的提交。如果没有,它会检查deps.lock中的标记或分支(如果指定了一个)并在deps.lock文件中创建一个条目

当您想要更新到新版本的symfony(或deps文件中的任何库)时,

更新非常有用。如果您有一天想要更新,可以阅读this post I wrote about the update process

总而言之,我总是在所有机器上使用更新,并且我总是尝试为每个库指定一个版本,以便生产环境不会意外地更新到不稳定版本。

答案 2 :(得分:0)

您是否已下载已包含供应商的标准版,这就是为什么它显示此消息以供使用"安装 - 重新安装"

我个人在部署项目中创建了​​php bin / install-reinstall个供应商