0

Symfony 1.4 出现错误Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /vagrant/lib/util/sfToolkit.class.php on line 365

相关功能如下:

public static function pregtr($search, $replacePairs)
  {
    if(strpos(implode(', ', $replacePairs),'e') > 0)
      print_r($replacePairs);

    return preg_replace(array_keys($replacePairs),array_values($replacePairs), $search);
  }

相关的价值观是:

Array
(
    [#/(.?)#e] => '::'.strtoupper('\1')
    [/(^|_|-)+(.)/e] => strtoupper('\2')
)

如何将其更改为等效的使用preg_replace_callback

4

1 回答 1

1

您可以尝试使用 sf 1.5。由 L'Express 的人维护的版本:https ://github.com/LExpress/symfony1 (他们已经解决了这个问题)

如果他们的更改太多,您可以检查他们如何设法解决“e 修饰符”问题并复制他们的解决方案。搜索使用pregtr它的代码看起来只有三个地方e使用了修饰符(在和插件lib/util/sfInflector.class.php中的过滤器表单类中)。在这些地方自己修复代码并不难。DoctrineProper

于 2014-04-22T12:16:08.157 回答