手动更新Symfony2 deps文件以获得条令2.2?

手动更新Symfony2 deps文件以获得条令2.2?,symfony,pagination,doctrine-orm,Symfony,Pagination,Doctrine Orm,是否可以手动更新deps文件以获得最新版本的条令2.2?我想使用新的组件。所以基本上我想用以下方法调整depsdeps: [doctrine-common] git=http://github.com/doctrine/common.git version=2.2.1 [doctrine-dbal] git=http://github.com/doctrine/dbal.git version=2.2.1 [doctrine] git=http://g

是否可以手动更新
deps
文件以获得最新版本的条令2.2?我想使用新的组件。所以基本上我想用以下方法调整deps
deps

[doctrine-common]
    git=http://github.com/doctrine/common.git
    version=2.2.1

[doctrine-dbal]
    git=http://github.com/doctrine/dbal.git
    version=2.2.1

[doctrine]
    git=http://github.com/doctrine/doctrine2.git
    version=2.2.1
移除
deps.lock
并执行以下操作:

php bin/vendors update
你认为这样行吗?


编辑:文件如下所示:

通过删除
deps.lock
文件,您显然会面临代码不稳定的风险

我使用了以下步骤来最大限度地降低损坏某物的风险:

  • 写下要从
    deps.lock更新的组件的当前提交哈希
  • 从GitHub中找到提交哈希并将其写下来
  • 导航到组件的目录并键入
    git checkout[commit]
    ,其中[commit]是新的散列
  • 清除缓存并验证站点是否仍在正常工作
  • 将新提交哈希粘贴到
    deps.lock
    并运行
    bin/vendors install

请记住,我强烈建议不要这样做。如果你把事情搞砸了,你就只能靠自己了,没有人帮你。

在我看来,你建议的所有工作都是不必要的,而且过于谨慎。当然,您可以根据需要手动更新
deps
文件。我目前正在Symfony 2.0.11上运行Doctrine\Common(2.2.1)、Doctrine\DBAL(2.2.1)和Doctrine(2.2.1),没有任何问题

您需要担心的不是库(通常),而是利用需要特定版本的库的bundle。例如,Symfony2不直接依赖于任何版本的学说,但

在升级捆绑包/库之前,通常最好检查它们所需的依赖关系。搜索要升级的包,并查看它们定义了哪些必需的依赖项注意:这在Symfony 2.1上不需要,因为它将用于管理供应商库

尽管如此,除非您尝试,否则您永远不会知道某些东西是否与您的安装一起工作。当然,不要做任何愚蠢的事情——但是没有理由害怕通过更新供应商库来破坏东西。将代码存储在Git中,您可以轻松地恢复更改。见:


另外,在
deps
中指定
version=#.#.#
时,即使您根本没有
deps.lock
文件,您也会得到相同的提交哈希,因为您在存储库上指定了Git标记


有些bundle不提供版本号,而是提供各种分支来管理与多个Symfony版本的兼容性。因此,您可能会看到类似于
version=origin/2.0
的内容,这意味着供应商脚本将签出存储库中名为
2.0
的分支上的最新提交。维护人员很可能会尝试使该分支始终与Symfony 2.0.x兼容。

谢谢你,伙计。我在一个新安装上做了一个快速测试,一切看起来都很好(实体生成、查询等等)。但是再次感谢您的建议。为什么不简单地保存deps和deps.lock(或者使用git),万一出现问题,您可以恢复更改并再次更新供应商。它应该下载deps.lock中指定的所有内容?我同意当灾难发生时可以保存和恢复deps.lock时,这个建议似乎过于谨慎和复杂。@Boo,@user1207727-我认为至少有两个非常好的理由:1)我想保持我的git日志干净;2) 如果我试图找到稳定的版本,我可能需要多次这样做。使用上述方法,与多次运行
bin\vendors install
相比,我将节省一些时间。@gilden您可以通过使用git的分支、
git commit--amend
git rebase
功能来保持git日志的干净。解释得很好,+1。顺便说一句,Symfony 2.1何时可用?