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

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 14 апреля 2009

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

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

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

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

2 голосов
/ 14 апреля 2009

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

1 голос
/ 14 апреля 2009

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

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

function php4_clone($object) {
    if (version_compare(phpversion(), '5.0') < 0) {
        return $object;
    } else {
        return @clone($object);
    }
}
...