手动更新Symfony2 deps文件以获取Doctrine 2.2?

时间:2012-03-16 14:43:16

标签: symfony pagination doctrine-orm

是否可以手动更新deps文件以获取最新版本的 Doctrine 2.2 ?我想使用新的Paginator组件。所以基本上我想用{:1}来调整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

您认为这会有效吗?

编辑:文件如下所示:http://pastebin.com/FEDMNhii

2 个答案:

答案 0 :(得分:8)

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

利用需要特定版本的库,这不是您需要担心的库(通常),捆绑。例如,Symfony2没有直接依赖任何版本的Doctrine - 但DoctrineBundle确实如此。

在升级软件包/库之前,通常可以查看Packagist.org上所需的依赖项。搜索要升级的程序包,并查看它们定义的所需依赖项。 注意: Symfony 2.1不需要这样做,因为它将使用Composer来管理供应商库。

尽管如此,除非您尝试,否则您永远不会知道某些内容是否适用于您的安装。当然,不要做任何愚蠢的事情 - 但没有理由害怕通过更新供应商库来破坏事情。将您的代码存储在Git中,您可以轻松还原您的更改。请参阅:How to create and store a Symfony2 project in Git


此外,在version=#.#.#中指定deps时 - 即使您根本没有deps.lock文件,您也将始终获得相同的提交哈希,因为您指定了Git标记在存储库中。

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

答案 1 :(得分:-1)

删除deps.lock文件后,您显然会面临获取不稳定代码的风险。

我使用了以下步骤来最大限度地降低破坏某些内容的风险:

  • 记下您要从deps.lock
  • 更新的组件的当前提交哈希值
  • 从GitHub中找到提交哈希并将其写下来。
  • 导航到组件的目录并键入git checkout [commit],其中[commit]是新哈希值。
  • 清除缓存并验证该网站是否仍然有效。
  • 将新提交哈希粘贴到deps.lock并运行bin/vendors install

请记住,我会强烈建议不要这样做。如果你把事情搞砸了,你几乎就是自己而且没有人可以帮助你。