Symfony 1.4 使用 php 5.5 中已弃用的函数
我最近将PHP从版本5.3.27升级到5.5.0。在我的Symfony 2.3.2项目中一切正常,我可以享受最新的PHP功能。
现在,当我回到我的另一个Symfony 1.4.16项目时,我得到一个关于preg_replace被/e修饰符弃用的PHP错误。
我在论坛中找不到有关此错误的参考:以前有人遇到过此问题吗?有没有我可以开箱即用的补丁?升级到Symfony 1.4.20可以解决此问题吗?
错误消息如下所示:
已弃用: preg_replace(): /e 修饰符已弃用,请在 /myproject/lib/vendor/symfony/lib/response/sfWebResponse.class.php 第 409 行中使用preg_replace_callback
一种方法是按照消息和手册中的建议修改代码。如何将preg_replace表达式更改为preg_replace_callback调用?
任何帮助/提示将非常受欢迎。
编辑:
到目前为止,还没有针对此的补丁(Symfony 1.4.20没有解决这个问题)。解决方案是将对preg_replace的失败调用替换为对sourche中preg_replace_callback的相应调用,这在sfWebResponse类中很容易完成(感谢提示Jon)。不幸的是,现在下一个失败事件稍微复杂一些...另一方面,我们可能不得不在 /e 选项中寻找preg_replace用途,以便找出 Symfony 可能在哪里中断。这给出了相当多的结果:o
所以。。。我的结论是,Symfony 1.4用户最好不要将PHP升级到5.5版本,直到一些严肃的补丁出现。你觉得怎么样?还有其他选择吗?