Миграция 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);
}
}