升级主要Symfony的第三方包版本ob娱乐下载

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.3,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

升级主要Symfony的第三方包版本ob娱乐下载

ob娱乐下载Symfony 3已于2015年11月发布。虽然这个版本不包含任何新特性,它删除所有的向后兼容性层包括在以前的2.8版本。如果您的包使用任何弃用功能作为第三方发布包,应用程序升级到第3 Symfony将不再能够使用它。ob娱乐下载

允许安装Symfony 3组件ob娱乐下载

大多数第三方包定义他们使用Symfony依赖性ob娱乐下载~ 2. n^ 2. n约束的composer.json文件。例如:

1 2 3 4 5 6 7
{“需要”:{“ob娱乐下载symfony / framework-bundle”:“~ 2.3”,“ob娱乐下载symfony /仪”:“~ 2.3”,“ob娱乐下载symfony /验证器”:“~ 2.3”}}

这些约束防止包使用Symfony 3组件,因此它不可能安装Symfony 3基于应用程序。ob娱乐下载这个问题很容易解决由于作曲家依赖约束的灵活性。只是替换~ 2. n通过3.0 ~ 2. n | ~(或^ 2. n通过^ 2. n | ~ 3.0)。

上面的例子中可以使用Symfony 3更新如下:ob娱乐下载

1 2 3 4 5 6 7
{“需要”:{“ob娱乐下载symfony / framework-bundle”:“3.0 ~ 2.3 | ~”,“ob娱乐下载symfony /仪”:“3.0 ~ 2.3 | ~”,“ob娱乐下载symfony /验证器”:“3.0 ~ 2.3 | ~”}}

提示

另一个常见的约束上发现的第三方包版本> = 2. n。您应该避免使用约束,因为它太通用(这意味着你的包兼容任何未来Symfony版本)。ob娱乐下载而不是使用3.0 ~ 2. n | ~^ 2. n | ~ 3.0让你的包不会过时。

寻找不支持和修复它们

除了允许用户使用Symfony 3包,你的包必须停止使用任何功能的2.8版本,因为他们被弃用3ob娱乐下载.0(你会得到异常或PHP错误)。最简单的方法来检测与安装ob娱乐下载symfony / phpunit-bridge包然后运行测试套件。

首先,作为一个安装组件dev你的包的依赖关系:

1
美元需要- dev symfony / phpunob娱乐下载it-bridge作曲家

然后,运行您的测试套件中,寻找PHPUnit)测试报告后的弃用列表显示:

1 2 3 4 5 6 7 8 9 10 11 12 13
phpunit)美元#……PHPUnit)输出剩余的通知(3)“模式”选项文件…弃用,因为2.2版本将被删除3.0。使用“路径”选项路由定义而不是……理解函数“form_enctype”弃用。使用“form_start”而不是…Symfob娱乐下载ony \ \安全\ \ SecurityContext核心组件类是弃用自2.6版本将被删除3.0。使用……

解决与此报道,再次运行测试套件,重复这个过程,直到没有弃用使用报告。

有用的资源

有一些资源可以帮助你发现,理解和解决使用废弃的特点:

Symfony官方ob娱乐下载指南升级从2。x 3.0
变化的完整列表需要升级到3.0 Symfony和分组的组件。ob娱乐下载
SensioLabs DeprecationDetector
它运行一个静态代码分析对项目的源代码,发现使用过时的方法,类和接口。它适用于任何PHP应用程序,但它包括特殊探测器Symfony应用程序,它还可以检测弃用服务的用法。ob娱乐下载
ob娱乐下载Symfony升级工
分析Symfony项目找ob娱乐下载到的用法。此外,它解决了自动其中一些由于越来越多的“帮手”的支持。

测试你的包在Symfony 3ob娱乐下载

现在,你的包已经删除了所有的用法,是时候真的在Symfony 3应用程序中测试它。ob娱乐下载假设您已经有一个Symfony 3应用程序中,您可以在本地测试更新ob娱乐下载包,而无需通过作曲家安装它。

如果您的操作系统支持符号链接,只是适当的供应商目录指向本地包根目录:

1
美元ln - s /道路/ /你/当地的/包/供应商/ you-vendor-name / your-bundle-name

如果您的操作系统不支持符号链接,你需要将你的本地包目录复制到适当的目录内供应商/

特拉维斯CI配置更新

除了在本地运行工具,建议设置特拉维斯CI服务运行测试你的包使用不同的Symfony的配置。ob娱乐下载推荐使用以下配置自己的配置的起点:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25日26日
语言:phpsudo:php:- - - - - -5.3- - - - - -5.6- - - - - -7.0矩阵:包括:- - - - - -php:5.3。3env:COMPOSER_FLAGS = '——prefer-lowest——prefer-stable”ob娱乐下载SYMFONY_DEPRECATIONS_HELPER =弱- - - - - -php:5.6env:ob娱乐下载SYMFONY_VERSION = ' 2.3 . * '- - - - - -php:5.6env:依赖项=‘开发’ob娱乐下载SYMFONY_VERSION = ' 2.8 . * @dev '- - - - - -php:5.6env:ob娱乐下载SYMFONY_VERSION = ' 3.0 . * @dev 'before_install:- - - - - -作曲家的由来- - - - - -如果(“依赖美元”= =“开发”];然后perl- e/ ^}$ /,“minimum-stability”:“开发”}/的composer.json;fi;- - - - - -如果(“Sob娱乐下载YMFONY_VERSION美元”! =”“];然后作曲家——没有进行过更新需要ob娱乐下载symfony / symfony: $ {SYMFONY_VERSION};fi;安装:作曲家更新COMPOSER_FLAGS美元脚本:phpunit)

更新你的代码来支持Symfony 2。ob娱乐下载x和3。x在同一时间

添加Symfony的真正挑战3支持你的包是当你想要同时支持ob娱乐下载Symfony 2。x和3。x同时使用相同的代码。有一些边缘的情况下你需要处理API的差异。

在深入的细节最常见的边界情况,一般建议不是依靠Symfony的内核版本ob娱乐下载决定使用哪个代码:

1 2 3 4 5
如果(内核::VERSION_ID < =20800年){/ /代码Symfonyob娱乐下载 2. x}其他的{/ /代码Symfonyob娱乐下载 3. x}

而不是检查Symfony内核版本,检查特定的组件ob娱乐下载的版本。例如,OptionsResolver API 2.6版本通过添加改变了setDefined ()方法。在这种情况下推荐的检查是:

1 2 3 4 5
如果(! method_exists (“ob娱乐下载Symfony \ \ OptionsResolver \ OptionsResolver组件”,“setDefined”)){/ /旧OptionsResolver API的代码}其他的{/ /新的OptionsResolver API的代码}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。