升级小版本(例如4.0.0 4.1.0)
编辑该页面警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.3,不再维护。
读这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。
升级小版本(例如4.0.0 4.1.0)
如果你升级小版本(中值)变化,然后你应该不遇到重大变化的向后兼容性。详情,请参阅欧宝娱乐app下载地址Symfony向后兼容性的承诺。
然而,一些打破向后兼容性是可能,你会学习如何准备它们。
有两个步骤升级小版本:
1)更新Symfony图书馆欧宝娱乐app下载地址通过作曲家
的composer.json
文件配置为允许Symfony包升级补丁版本。欧宝娱乐app下载地址但升级到一个新的小版本,您可能需要更新版本约束下每个库开始欧宝娱乐app下载地址symfony /
。假设你从Symfony 4.3到4.4升级:欧宝娱乐app下载地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
{“……”:“……”,"需要":{4.3欧宝娱乐app下载地址——“symfony /缓存”:“。*”,4.4欧宝娱乐app下载地址 +“symfony /缓存”:“。*”,4.3欧宝娱乐app下载地址——“symfony / config”:“。*”,4.4欧宝娱乐app下载地址 +“symfony / config”:“。*”,4.3欧宝娱乐app下载地址——“symfony /控制台”:“。*”,4.4欧宝娱乐app下载地址 +“symfony /控制台”:“。*”,“…”:“……”“…”:“几个库从symfony /遵循他们的版本控制方案。欧宝娱乐app下载地址您不需要更新这些版本:你可以随时升级他们独立”、“symfony / monolog-bundle”:“^ 3.5“}”,…欧宝娱乐app下载地址”:“……”,}
你的composer.json
文件也应该有一个额外的
块,你会也需要更新:
1 2 3 4 5 6 7
“额外”:{" symf欧宝娱乐app下载地址ony ": {“……”:“……”——“需要”:“4.3 . *”4.4 +“要求”:“。*”}}
接下来,使用作曲家下载新版本的库:
1
美元作曲家更新“欧宝娱乐app下载地址symfony / *”
依赖错误
如果你得到一个依赖错误,它可能意味着你还需要升级Symfony的其他库依赖库。欧宝娱乐app下载地址允许通过——with-all-dependencies
国旗:
1
美元作曲家更新“欧宝娱乐app下载地址symfony / *”——with-all-dependencies
这个更新欧宝娱乐app下载地址symfony / *
和所有依赖包,这些包。通过严格的版本约束composer.json
,你可以控制每个库升级版本。
如果这还不起作用,你composer.json
文件可以指定一个版本库,与新的Symfony版本不兼容。欧宝娱乐app下载地址在这种情况下,图书馆一个新版本的更新composer.json
可能会解决这个问题。
或者,你可能有更深层次的问题,不同的其他库的库依赖于冲突的版本。调试检查你的错误消息。
另一个可能发生的问题是项目依赖项可以安装在您的本地计算机上而不是在远程服务器上。这通常发生在当PHP版本在每台机器上都是不同的。解决方案是增加的平台配置选项的作曲家。json的文件定义的最高允许PHP版本的依赖关系(设置为服务器的PHP版本)。
2)使用新版本更新你的代码
理论上,你应该做的!然而,你可能需要做一些修改代码来完成所有的工作。另外,你使用的一些特性可能仍然工作,但现在可能会被弃用。虽然这是很好,如果你知道这些用法,你可以开始修复它们。
每一个版本的Symfony(如有升欧宝娱乐app下载地址级文件。UPGRADE-4.4.md)包含在Symfony目录描述这些变欧宝娱乐app下载地址化。如果你按照说明文档,并相应地更新你的代码,应该在未来安全更新。
这些文件也可以被发现的欧宝娱乐app下载地址Symfony库。
3)更新菜谱
随着时间的推移,特别是当你升级到一个新版本的库的更新版本配方可能是可用的。这些更新是非常小的,如新评论在配置文件中,但这是一个好主意来更新核心Symfony的食谱。欧宝娱乐app下载地址
欧宝娱乐app下载地址Symfony Flex提供一些命令来帮助升级你的食谱。一定要你在工作开始前提交任何无关的修改:
1.6
菜谱的命令在Symfony Flex 1.6中引入的。欧宝娱乐app下载地址
1 2 3 4 5 6 7 8
#看到所有已安装的食谱的列表和更新可用美元作曲家的食谱#看到详细信息特定的食谱美元symfony / framewo欧宝娱乐app下载地址rk-bundle作曲家食谱#更新特定的食谱美元作曲家食谱:安装symfony - v / fra欧宝娱乐app下载地址mework-bundle——力量
棘手的这个过程的一部分是食谱“更新”不执行任何代码的智能“升级”。相反,更新过程重新安装最新版本的配方这意味着您的自定义代码将被完全覆盖。更新配方之后,您需要仔细选择改变你想要的,并取消休息。
截屏视频
对于一个详细的示例,请参阅欧宝娱乐app下载地址SymfonyCasts Symfony 5升级教程。