Миграция с PHP4 на PHP5 [закрыто]

Какие шаги следует предпринять для плавного перехода с PHP4 на PHP5. Какие типы кодов могут сломаться?

9.08.2008 03:49:36
4 ОТВЕТА
РЕШЕНИЕ

Я также однажды работал над приложением, которое довольно интенсивно использовало поддержку XML в PHP4, и для перехода на PHP5 потребовалось бы немало усилий.

Одним из других существенных изменений, на которые я смотрел в то время, было изменение обработки параметров функции по умолчанию. В PHP4, если я помню, они передавались путем копирования, если не указано иное, но в PHP5 по умолчанию они заменяются передачей по ссылке. В хорошо написанном коде это, вероятно, не будет иметь большого значения для вас, но это, безусловно, может вызвать проблемы.

Я думаю, что еще одна вещь, которую я нашел измененной, состоит в том, что объектам больше не разрешается перезаписывать свое поле «это». Я бы сказал, что с самого начала это была действительно плохая идея (и я думаю, что она не была преднамеренной функцией в PHP4), но я определенно нашел несколько частей нашей системы, которые полагались на нее.

Надеюсь, что это поможет.

8
2.05.2011 00:36:06
Я случайно заметил этот пост в верхней части результатов поиска Google, когда искал PHP4 против PHP5, передавая аргументы поведению функции. Руководство php утверждает иное; передача по значению (передача по копии) по- прежнему используется по умолчанию.
Salman A 23.04.2011 05:40:56

У нас было приложение, которое в значительной степени зависело от функций PHP 4 XML DOM, и для его замены потребовалось много перенастройки.

Помимо этого, большинство изменений были улучшены в таких вещах, как обработка ошибок (чтобы воспользоваться исключениями) и PHP-классы.

1
9.08.2008 04:12:31

Лучший совет, который я могу дать любому, кто работает с PHP4:

error_reporting( E_ALL );

Это в значительной степени скажет вам именно то, что вам нужно сделать.

2
9.08.2008 05:00:11

ООП является одним из самых больших отличий. Он не сломается, так как стили ООП PHP4 и PHP5 взаимозаменяемы, но я бы рекомендовал воспользоваться преимуществами новых стилей ООП PHP5. Преобразовать существующие классы в PHP5 не так уж много работы, и это дает вам некоторые дополнительные магические методы, которые могут помочь в решении некоторых существующих хаков (я помню, что в большинстве классов у меня почти бесполезный эквивалентный метод __toString).

1
21.08.2008 16:18:59