升级主要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的代码}