Intereting Posts
PHP / MySQL Сортировать по столбцу в другой таблице Лучший способ отправить анонимную электронную почту, например, Craigslist как я могу использовать часовой пояс в фильтре даты Twig? JQuery UI не работает должным образом для некоторых слов Вызов скрипта PHP из триггера MySQL Определение IP-адреса ссылочного сайта htaccess получить разбиение на страницы с косой чертой Добавить новый столбец в существующую таблицу при миграции Загружать список файлов одновременно в PHP каково использование сегмента $ this-> uri-> (3) в разбиении на страницы кода Что такое Java-эквивалент PHP var_dump? Произошла ошибка клиента: Не удалось создать каталог хранения: / tmp / Google_Client / 00 Загрузите файл через PHP-скрипт с FTP-сервера в браузер с заголовком Content-Length без сохранения файла на веб-сервере Разбирайте текст для хэштегов и замените ссылки на php Получить все имена моделей в Yii

Обновление до PHP 5.3 с отключенными функциями предупреждения

Я очень хочу обновить несколько наших серверов до PHP 5.3. Это было бы готово для Zend Framework 2, а также для кажущихся обновлений производительности. К сожалению, у меня на этих серверах есть большое количество устаревшего кода, который со временем будет исправлен, но не все могут быть исправлены до миграции. Я рассматриваю обновление, но отключая устаревшую функциональную ошибку на всех, кроме нескольких сайтах разработки, где я могу начать работать с обновлением старого кода.

error_reporting(E_ALL ^ E_DEPRECATED); 

Есть ли фундаментальная причина, почему это было бы плохой идеей?

Related of "Обновление до PHP 5.3 с отключенными функциями предупреждения"

Если вы еще не прочитали руководство по миграции с особым упором на обратные несанкционированные изменения и удаленные расширения .

У вас больше проблем, чем устаревших. Игнорирование E_DEPRECATED не будет достаточным. Из-за несовместимых изменений будут также другие типы ошибок или, может быть, еще хуже, неожиданные действия.

Вот простой пример:

 <?php function goto($line){ echo $line; } goto(7); ?> 

Этот код будет работать нормально и выводить 7 в PHP 5.2.x, но даст вам ошибку синтаксического анализа в PHP 5.3.x.

Что вам нужно сделать, это взять каждый элемент в этом руководстве и проверить свой код и обновить его там, где это необходимо. Чтобы сделать это быстрее, вы можете игнорировать устаревшие функции на первом этапе и просто отключить отчет об ошибках для E_DEPRECATED , но вы не можете предположить, что при переносе на другую основную ветвь PHP вы получите только некоторые безобидные предупреждения.

Также не забывайте о своем взломе и исправьте устаревшие проблемы как можно скорее.

С Уважением,
Алинь

Примечание. Я попытался ответить на вопрос с практической точки зрения, поэтому, пожалуйста, не говорите мне, что игнорирование предупреждений является плохим. Я знаю это, но я также знаю, что время – это не бесконечный ресурс.

Ну, вы можете забыть, что вы установили флаг и задаетесь вопросом, почему ваше приложение ломается в следующем обновлении PHP. Это может быть очень неприятно для отладки приложения без надлежащей отчетности об ошибках. Это одна из причин, о которой я могу думать.

Однако, если вы это сделаете, запишите его где-нибудь. Это может спасти вас за пару часов до того, как вы вообще запомните установку флага.

Я полагаю, у вас есть какой-то тестовый сервер? Если нет, вы действительно должны установить и проверить свой код в PHP 5.3. Если ваш код полностью протестирован на модуле, тестирование будет занимать секунды, и его исправление будет довольно быстрым, так как модульные тесты скажут вам, где искать. Если нет, то подумайте о том, чтобы сделать Unit Testing все приоритетным перед следующей версией, и тем временем пройти через все это, сначала с E_DEPRECATED предупреждениями E_DEPRECATED и исправить все, что появляется, а затем снова включить его, как только у вас будет время. Вы также можете запустить глобальную функцию поиска и замены для упрощения исправления ошибок.