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ている場所が 3 つしかないように見えます(およびプラグインのフィルター形式クラス内 および 内)。それらの場所で自分でコードを修正することはそれほど難しくありません。elib/util/sfInflector.class.phpDoctrineProper

于 2014-04-22T12:16:08.157 に答える