Contributed by
Thomas Perez and Nicolas Grekas
in #21502.

Backward compatibility promise (向下兼容承诺)是Symfony最为出色的功能之一。这项承诺可以确保你的程序在使用相同的Symfony分支 (例如,运行在Symfony 3.0的程序更新到Symfony 3.1, 3.2, 3.3 和 3.4时仍可运行) 进行更新时始终可以运行。

向下兼容承诺的关键点在于deprecation信息。不管你何时使用一个“将在下一版Symfony中改变或移除”的功能,你会得到一条日志信息,就相关内容向你警告,同时提供可选方案。例如,下图显示的是,web除错工具条警告你有5条deprecation信息:

可是,某些deprecation信息仅在服务容器被编译的时候才会生成。这也就是为何你在刷新页面的时候它们会消失,仅在你删除缓存强制编译容器时才会再度出现之原因。

在Symfony 3.3中我们决定修复此问题, 全部deprecation messages是持久的。不管它们是在编译阶段才生成,还是在伺服请求的时候生成。Web Debug Toolbar(除错条) 和 Profiler(分析器)现在将会始终显示全部的deprecation信息了:

除此之外,Symfony 3.3还将显示 编译过程中生成的完整信息。一般来说你不必关注那些信息,因为它们会使你的调试更加困难: