Миграция php4/mysql4 на php5/mysql5: ожидаемые проблемы с php?

У меня есть устаревшее веб-приложение php4/mysql4 (MyISAM, db содержит несколько cms, некоторые пользовательские данные, некоторое приложение-календарь). Теперь я собираюсь перейти на новый сервер с php5/mysql5.

Каковы типичные проблемы php в таком сценарии миграции (php, sql запросы, что угодно)?

Я слышал, что параметр функции передачи изменился, вызов по ссылке / вызов по значению. Можете привести пример или объяснить?

Что-нибудь еще, что я должен знать?

(Проблемы с mysql рассматриваются в другом вопросе: переход с php4 / mysql4 на php5/mysql5: переключиться на InnoDB?)

3 ответа

Решение

Большинство проблем совместимости с PHP 4/5 - это две вещи:

  • новые зарезервированные слова
  • новый бэкэнд класса / объекта

Большая часть кода v4 будет отлично работать в v5. Вероятно, вы столкнетесь с проблемами в коде, который зависит от ограничений модели классов v4 или использует преимущества ссылок v4. Но большинство людей не кодируют эти ограничения (у меня есть - поэтому я знаю, что они там).

Если вы застряли с ограничениями класса / объекта, вы можете запустить движок Zend в режиме "v1", который заставляет классы и объекты вести себя как в v4. Это задокументировано.

Я думаю, что лучшая помощь в миграции - это сами ребята из PHP.

Я нахожусь в процессе миграции, и я нахожу много проблем с алиасами.

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

function php4_clone($object) {
    if (version_compare(phpversion(), '5.0') < 0) {
        return $object;
    } else {
        return @clone($object);
    }
}
Другие вопросы по тегам