Symfony 1.4 использует устаревшие функции в PHP 5.5

Я недавно обновил PHP с версии 5.3.27 до 5.5.0. В моем проекте Symfony 2.3.2 все работает нормально, и я могу пользоваться новейшими функциями PHP.

Теперь, когда я возвращаюсь к своему другому проекту Symfony 1.4.16, я получаю PHP-ошибку об устаревании preg_replace с модификатором / e.

Я не могу найти ссылки на эту ошибку на форумах: Кто-нибудь имел эту проблему раньше? Есть ли какой-нибудь патч, который я мог бы применить из коробки? Будет ли обновление до Symfony 1.4.20 решить эту проблему?

Сообщение об ошибке выглядит так:

Устаревшее: preg_replace (): модификатор / e устарел, вместо него используйте preg_replace_callback в /myproject/lib/vendor/symfony/lib/response/sfWebResponse.class.php в строке 409

Одним из способов может быть изменение кода в соответствии с рекомендациями в сообщении и вруководство по эксплуатации, Как я могу изменить выражение preg_replace на вызов preg_replace_callback?

Любая помощь / подсказка будет очень приветствоваться.

РЕДАКТИРОВАТЬ:

На данный момент патча для этого не существует (и Symfony 1.4.20 не решает эту проблему). Решение состоит в том, чтобы заменить неудачные вызовы preg_replace соответствующим вызовом preg_replace_callback в sourche, что легко сделать в классе sfWebResponse (спасибо за подсказку, Джон). В настоящее времяследующее неудачное происшествие это немного сложнее, к сожалению ... И с другой стороны, нам, вероятно, придется использовать grep для preg_replace с опцией / e, чтобы выяснить, где Symfony может сломаться. Что дает немало результатов: o

Итак ... Мой вывод будет такой: пользователям Symfony 1.4 лучше не обновлять PHP до версии 5.5, пока не выйдет какой-нибудь серьезный патч. Как вы думаете ? Любая альтернатива?

Ответы на вопрос(7)

Ваш ответ на вопрос