Какие шаги следует предпринять для плавного перехода с PHP4 на PHP5. Какие типы кодов могут сломаться?
Я также однажды работал над приложением, которое довольно интенсивно использовало поддержку XML в PHP4, и для перехода на PHP5 потребовалось бы немало усилий.
Одним из других существенных изменений, на которые я смотрел в то время, было изменение обработки параметров функции по умолчанию. В PHP4, если я помню, они передавались путем копирования, если не указано иное, но в PHP5 по умолчанию они заменяются передачей по ссылке. В хорошо написанном коде это, вероятно, не будет иметь большого значения для вас, но это, безусловно, может вызвать проблемы.
Я думаю, что еще одна вещь, которую я нашел измененной, состоит в том, что объектам больше не разрешается перезаписывать свое поле «это». Я бы сказал, что с самого начала это была действительно плохая идея (и я думаю, что она не была преднамеренной функцией в PHP4), но я определенно нашел несколько частей нашей системы, которые полагались на нее.
Надеюсь, что это поможет.
У нас было приложение, которое в значительной степени зависело от функций PHP 4 XML DOM, и для его замены потребовалось много перенастройки.
Помимо этого, большинство изменений были улучшены в таких вещах, как обработка ошибок (чтобы воспользоваться исключениями) и PHP-классы.
Лучший совет, который я могу дать любому, кто работает с PHP4:
error_reporting( E_ALL );
Это в значительной степени скажет вам именно то, что вам нужно сделать.
ООП является одним из самых больших отличий. Он не сломается, так как стили ООП PHP4 и PHP5 взаимозаменяемы, но я бы рекомендовал воспользоваться преимуществами новых стилей ООП PHP5. Преобразовать существующие классы в PHP5 не так уж много работы, и это дает вам некоторые дополнительные магические методы, которые могут помочь в решении некоторых существующих хаков (я помню, что в большинстве классов у меня почти бесполезный эквивалентный метод __toString).