Каковы некоторые хорошие шаги для плавной миграции с PHP4 на PHP5. Каковы некоторые типы кода, которые могут сломаться?PHP4 to PHP5 Migration
ответ
Я также однажды работал над приложением, которое использовало XML-поддержку PHP4 довольно сильно, и потребовалось бы немало работы для перехода на PHP5.
Одно из существенных изменений, на которые я смотрел в то время, это изменение обработки параметров по умолчанию. В PHP4, если я помню, они были pass-by-copy, если вы не указали иначе, но по-прежнему PHP5 по умолчанию передается по ссылке. В хорошо написанном коде это, вероятно, не будет иметь для вас большого значения, но это может вызвать проблемы.
Я думаю, что еще одна вещь, которую я нашел измененной, заключается в том, что объекты больше не могут перезаписывать свое «это» поле. Я бы сказал, что это была действительно плохая идея для начала (и я думаю, что это, возможно, не было преднамеренной функцией в PHP4), но я определенно нашел несколько частей нашей системы, которые опирались на нее.
Надеюсь, что это помогает.
У нас было приложение, которое в значительной степени опиралась на функции XML DOM PHP 4 и потребовалось много переоснащение изменить над PHP 5.
Помимо того, что большинство изменений были улучшения в такие вещи, как ошибка обработки (чтобы воспользоваться исключений) и классов PHP.
Лучший совет, который я мог бы дать, кто работает с PHP4 это:
error_reporting(E_ALL);
Это в значительной степени будет сказать вам точно, что вам нужно сделать.
До или после миграции? – 2010-09-04 11:26:46
ООП является одним из самых больших различий. Он не сломается, поскольку стили OOP для PHP4 и PHP5 являются взаимозаменяемыми, но я рекомендую использовать новые стили OOP для PHP5. Это не огромная работа по преобразованию существующих классов в PHP5, и это дает вам дополнительные магические методы, которые могут помочь решить некоторые существующие хаки (я помню, что в большинстве классов был почти бесполезным эквивалентный метод __toString).
Я только что заметил это сообщение в верхней части результатов поиска Google, когда я искал PHP4 vs PHP5, передавая аргументы в поведение функции. [руководство по php] (http://php.net/manual/en/functions.arguments.php) заявляет иное; передача по значению (по-копии) равна _still_ по умолчанию. – 2011-04-23 05:40:56