Вопрос

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

error_reporting( E_ALL );

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top