gpt4 book ai didi

php - Symfony 1.4 使用 php 5.5 中已弃用的函数

转载 作者:IT王子 更新时间:2023-10-29 00:04:22 25 4
gpt4 key购买 nike

我最近将 PHP 从版本 5.3.27 升级到 5.5.0。我的 Symfony 2.3.2 项目一切正常,我可以享受最新的 PHP 功能。

现在当我回到我的另一个 Symfony 1.4.16 项目时,我收到一个 PHP 错误,关于 preg_replace 被弃用/e 修饰符。

我在论坛中找不到关于此错误的引用资料:以前有人遇到过这个问题吗?是否有任何类型的补丁可以开箱即用?升级到 Symfony 1.4.20 会解决这个问题吗?

错误信息是这样的:

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /myproject/lib/vendor/symfony/lib/response/sfWebResponse.class.php on line 409

一种方法可能是按照消息和 manual 中的建议修改代码.如何将我的 preg_replace 表达式更改为 preg_replace_callback 调用?

任何帮助/提示都将非常受欢迎。

编辑:

到目前为止,还没有针对这个问题的补丁(Symfony 1.4.20 也没有解决这个问题)。解决方案是在 sourche 中用对 preg_replace_callback 的相应调用替换对 preg_replace 的失败调用,这在 sfWebResponse 类中很容易完成(感谢 Jon 的提示)。现在next failing occurrence稍微复杂一点,不幸的是……另一方面,我们可能不得不 grep for preg_replace 使用/e 选项,以便找出 Symfony 可能在哪里中断。这给出了很多结果 :o

所以...我的结论是,Symfony 1.4 用户最好不要将 PHP 升级到 5.5 版,直到出现一些重要的补丁。你怎么看 ?还有其他选择吗?

最佳答案

除非您在 index.php 中启用了调试,否则错误不会显示在 prod 中。也可以通过在 settings.yml 中取消设置 E_DEPRECATED 标志在 dev 中删除它们:

dev:
.settings:
error_reporting: <?php echo ((E_ALL | E_STRICT) ^ E_DEPRECATED)."\n" ?>

关于php - Symfony 1.4 使用 php 5.5 中已弃用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18077276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com