升级一个主要版本(例如2.7.0 3.0.0)
编辑该页面警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.4,不再维护。
读这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。
升级一个主要版本(例如2.7.0 3.0.0)
每两年,Symfony释放一个新的欧宝娱乐app下载地址主要版本发布(第一个数字的变化)。这些版本的升级是最棘手的,因为他们可以打破向后兼容性。然而,Symfon欧宝娱乐app下载地址y使得这个升级过程尽可能的平滑。
这意味着您可以更新你的代码实际上主要发布前发布。这就是所谓的让你的代码未来的兼容。
主要有几个步骤升级版:
1)使您的代码弃用免费的
生命周期中一个主要的版本,添加新功能和方法签名和公共API用法发生了变化。然而,小版本不应该包含任何向后不兼容的更改。为此,“老”(如函数、类等)代码仍然适用,但被标记为弃用,这表明它将被删除/改变未来,你应该停止使用它。
主要版本发布时(例如3.0.0),所有的弃用的特性和功能都被删除了。所以,只要你更新你的代码停止使用这些弃用功能在之前的最后一个版本主要(例如2.8。*),您应该能够升级没有问题。
帮你解决这个问题,弃用通知触发当你最终使用过时的特性。当访问您的应用程序开发环境在您的浏览器中,这些通知web开发工具栏所示:
最终,你想停止使用弃用功能。有时,这很容易:警告可能告诉你什么改变。
但其他时候,警告可能不清楚:某个设置可能会导致一个类更深的触发警报。在这种情况下,Symfony欧宝娱乐app下载地址它最好给一个明确的信息,但是你可能需要进一步研究警告。
有时,警告可能来自第三方库或者你使用包。如果这是真的,很有可能那些用法已经更新。在这种情况下,升级库来修复它们。
一旦所有的弃用警告,您可以升级和更多的信心。
与此同时在PHPUnit)
当您运行测试时使用PHPUnit),没有弃用通知所示。帮助你在这里,Symfony提供了P欧宝娱乐app下载地址HPUnit)桥。这座桥将向您展示一个很好的总结所有弃用通知的最后测试报告。
所有您需要做的就是安装PHPUnit)桥:
1
美元作曲家要求- dev symfony / ph欧宝娱乐app下载地址punit-bridge
现在,您可以开始修复通知:
1 2 3 4 5 6 7 8 9 10 11 12 13
phpunit)美元……OK(10测试,20断言)剩余的通知(6)弃用“请求”服务,在3.0将被删除。添加一个type-hint Symfon欧宝娱乐app下载地址y \ HttpFoundation \ \组件请求控制器参数检索请求相反:6 x 3 x PageAdminTest::从Symfony \ testPageShow Cmf \ SimpleCmsBundle \ \ WebTest \管理测试2 x PageAdminTest:: testPageList Symfony \ Cmf \ SimpleCmsBundle \测试\ WebTest \ Admin PageAdminTest 1 x::从Symfony testPageEdit \ Cmf \ SimpleCmsBundle \ \ WebTest \管理测试
一旦固定,命令结尾0
(成功)和你做!
使用弱的用法模式
有时候,你不能解决所有的用法(如2.8中被弃用的东西,你仍然需要支持2.7)。在这些情况下,您仍然可以使用桥修复尽可能多的用法,然后切换到弱测试模式让你再次测试通过。为此,您可以使用欧宝娱乐app下载地址SYMFONY_DEPRECATIONS_HELPER
env变量:
1 2 3 4 5 6 7 8
< !——phpunit.xml。区域- - ><phpunit)>< !——……- - ><php><env的名字=“欧宝娱乐app下载地址SYMFONY_DEPRECATIONS_HELPER”价值=“弱”/ >< /php>< /phpunit)>
(您还可以执行命令欧宝娱乐app下载地址SYMFONY_DEPRECATIONS_HELPER =弱phpunit)
)。
提示
Symfony社区的一些成员已经开发了一欧宝娱乐app下载地址个工具欧宝下载链接欧宝娱乐app下载地址Symfony-Upgrade-Fixer自动修复的一些最常见的用法时发现从Symfony 2升级Symfony 3。欧宝娱乐app下载地址
2)更新到新的主要版本通过作曲家
一旦你的代码是弃用免费的,你可以更新Symfony通过作曲家通过修改你的图书馆欧宝娱乐app下载地址composer.json
文件:
1 2 3 4 5 6 7 8
{“…”:“…”,“需要”:{“欧宝娱乐app下载地址symfony / symfony”:3.0“。*”},“…”:“…”}
接下来,使用作曲家下载新版本的库:
1
美元作曲家更新symfony / s欧宝娱乐app下载地址ymfony
依赖错误
如果你得到一个依赖错误,它可能仅仅意味着你需要升级其他Symfony的依赖关系。欧宝娱乐app下载地址在这种情况下,试试下面的命令:
1
美元作曲家更新symfony / s欧宝娱乐app下载地址ymfony,依赖关系
这个更新欧宝娱乐app下载地址symfony / symfony
和所有这取决于包,包括其他几个包。通过严格的版本约束composer.json
,你可以控制每个库升级版本。
如果这还不起作用,你composer.json
文件可以指定一个版本库,与新的Symfony版本不兼容。欧宝娱乐app下载地址在这种情况下,图书馆一个新版本的更新composer.json
可能会解决这个问题。
或者,你可能有更深层次的问题,不同的其他库的库依赖于冲突的版本。调试检查你的错误消息。
另一个可能发生的问题是项目依赖项可以安装在您的本地计算机上而不是在远程服务器上。这通常发生在当PHP版本在每台机器上都是不同的。解决方案是增加的平台配置选项的作曲家。json的文件定义的最高允许PHP版本的依赖关系(设置为服务器的PHP版本)。
3)使用新版本更新你的代码
很有可能,你现在就做!然而,下一个主要版本可能还包含新的BC减免BC层并不总是可能的。确保你读了UPGRADE-X.0.md
(其中X是新的主要版本)包含在公元前的Symfony库打破,你需要注意的。欧宝娱乐app下载地址