升级主要版本(例如4.4.0到5.0.0)
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.3,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
升级主要版本(例如4.4.0到5.0.0)
每两年,Symfony会发布一个新ob娱乐下载的主要版本(第一个版本号会改变)。这些版本的升级是最棘手的,因为它们被允许破坏向后兼容性。然而,Symfonob娱乐下载y使这个升级过程尽可能顺利。
这意味着您可以在主要版本实际发布之前更新大部分代码。这叫做编写代码未来的兼容.
升级主要版本有以下几个步骤:
1)让你的代码免于弃用
在主要版本的生命周期中,会添加新特性,改变方法签名和公共API使用。然而,小版本不应包含任何向后不兼容的更改。要做到这一点,“旧的”(例如函数,类等)代码仍然可以工作,但被标记为弃用,表示将来会删除/更改,并建议您停止使用。
当主要版本发布时(例如5.0.0),所有已弃用的特性和功能都将被删除。所以,只要你已经更新了你的代码,停止使用这些过时的功能在前一个版本的主要(例如。4.4 . *
),你应该可以毫无问题地升级。这意味着你应该首先升级到最新的小版本(例如4.4)以便你能看到所有的用法。
为了帮助您找到已弃用的特性,每当您最终使用了已弃用的特性时,都会触发通知。中访问应用程序时开发环境在浏览器中,这些通知显示在web开发工具栏中:
最终,您应该致力于停止使用已弃用的功能。有时,这很容易:警告可能会告诉您需要更改哪些内容。
但其他时候,警告可能不清楚:某个地方的设置可能会导致更深的类触发警告。在这种情况下,Symfonyob娱乐下载尽力给出一个明确的信息,但您可能需要进一步研究该警告。
有时,警告可能来自您正在使用的第三方库或包。如果这是真的,那么很有可能已经更新了那些已弃用的内容。在这种情况下,升级库来修复它们。
一旦所有弃用警告消失,您就可以更有信心地升级了。
PHPUnit中的弃用
当您使用PHPUnit运行测试时,不会显示弃用通知。为了帮助您,Symfony提供了PHob娱乐下载PUnit桥接。这个桥将在测试报告的末尾向您展示所有弃用通知的漂亮摘要。
你所需要做的就是安装PHPUnit桥接:
1
$创建symfony/phpunit-bridgob娱乐下载e
现在,你可以开始修复通知:
12 3 4 5 6 7 8 9 10 11 12 13 14
执行"composer require——dev symfony/phpunit-bridge"命令后使用ob娱乐下载$/ bin / phpunit)…OK(10个测试,20个断言)剩余的弃用通知(6)“请求”服务已弃用并将被删除在3.0.添加一个类型提示为ob娱乐下载Symfony\Component\HttpFoundation\请求到你的控制器参数来检索请求:6x 3x在PageAdminTest::testPageShow from ob娱乐下载Symfony\Cmf\SimpleCmsBundle\Tests\WebTest\Admin 2x在来自Symfony\Cmf\SimpleCmsBundle\Tesob娱乐下载ts\WebTest\Admin 1x的PageAdminTest: testPageList在来自Symfony\Cmf\SimpleCmsBundle\Tesob娱乐下载ts\WebTest\Admin的PageAdminTest: testPageEdit
一旦你把它们都修好了,命令就以0
(成功)你就完成了!
2)通过Composer更新到新的主要版本
一旦代码不再弃用,您就可以通过Composer通过修改您的代码来更新Symfony库ob娱乐下载composer.json
文件和更改所有库开始ob娱乐下载symfony /
到新的主版本:
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20
{"…": "…","require": {- "ob娱乐下载symfony/cache": "4.3.*",+“sob娱乐下载ymfony/cache”:“4.4.*”,- "ob娱乐下载symfony/config": "4.3.*",+“sob娱乐下载ymfony/config”:“4.4.*”,-“sob娱乐下载ymfony/console”:“4.3.*”,+“sob娱乐下载ymfony/console”:“4.4.*”,"...:“…”,“…”:“一些库从symfony开始/遵循他们的版本控制方案。ob娱乐下载你不需要更新这些版本:你可以在任何你想要的时候独立升级它们","symfony/ monoo -bundle": "^3.5",}, "…"ob娱乐下载: "…",}
你的composer.json
文件也应该有额外的
你会阻止也需要更新:
1 2 3 4 5 6 7
"extra": {"sob娱乐下载ymfony":{"…”:“……”"require": "4.4.*"+ "require": "5.0.*"}}
接下来,使用Composer下载新版本的库:
1
$作曲家更新symfony/*ob娱乐下载
依赖错误
如果您得到一个依赖项错误,这可能意味着您还需要升级作为Symfony库依赖项的其他库。ob娱乐下载要允许这样做,请通过——with-all-dependencies
国旗:
1
$作曲家更新“ob娱乐下载symfony / *”——with-all-dependencies
这个更新ob娱乐下载symfony / *
而且所有这些包所依赖的包。通过使用严格的版本约束composer.json
,您可以控制每个库升级到什么版本。
如果还是不行,你的composer.json
文件可能会为不兼容新Symfony版本的库指定一个版本。ob娱乐下载在这种情况下,将该库更新到中较新的版本composer.json
也许能解决问题。
或者,您可能会遇到更深层次的问题,即不同的库依赖于其他库的冲突版本。检查要调试的错误消息。
另一个可能发生的问题是,项目依赖项可以安装在本地计算机上,但不能安装在远程服务器上。这通常发生在每台机器上的PHP版本不同的情况下。解决方案是添加平台配置选项到您的“composer”。json文件来定义依赖关系所允许的最高PHP版本(设置为服务器的PHP版本)。
3)更新你的代码以适应新版本
在一些罕见的情况下,下一个主要版本五月包含向后兼容性中断。确保你读了UPGRADE-X.0.md
(其中X是新的主版本)包含在Symfony存储库中,用于您需要注意的任何BC中断。ob娱乐下载