Статьи

Что удерживает вас от PHP5?

Сначала: как PHP-программист, работающий в SitePoint, я присоединяюсь к Гарри в качестве гостевого блоггера, пока он копается в февральском Цюрихском снегопаде. Надеюсь, мы увидим его снова и скоро все разморозятся 😉

Что удерживает вас от PHP5? Для меня этот вопрос относится к трем направлениям. Она включает в себя работу, которую мы выполняем над базой PHP-кода SitePoint, работу, которую мы выполняем для проектов клиентов, и работу, которую я выполняю в свободное время.

Только в последнем — 2 часа ночи, которые обещают сделать фанаты PHP во время церемонии приведения к присяге — я сделал какое-то подобие перехода на PHP5. SitePoint.com прочно укоренился в PHP4, хотя PHP5 предлагает множество улучшений, которыми я хотел бы воспользоваться.

Я подозреваю, что многие, в действительности, большинство крупномасштабных пользовательских сайтов, использующих PHP, все еще работают на PHP4 без каких-либо планов (по крайней мере, на короткий срок). На самом деле — возможно, потому что это мой первый блог — я не буду бросать необоснованные претензии на ветер; Итак, давайте посмотрим:

http://www.php.net/
X-Powered-By: PHP / 4.3.3-dev

http://www.vbulletin.com/
X-Powered-By: PHP / 4.3.11-dev

http://www.friendster.com/
X-Powered-By: PHP / 4.3.8

Friendster очень интересен, учитывая их широко разрекламированный и сравнительно недавний переход с JSP на PHP.

Конечно, есть ли время когда-нибудь запрыгнуть на платформу PHP5 с возвышенной объектно-ориентированной и обработанной исключениями, это во время переписывания?

Тот факт, что php.net все еще работает на PHP 4, говорит о многом. Не удалось найти сплетни о том, почему, может быть, кто-то что-то знает об этом?

Наш опыт, вероятно, очень похож на другие давно работающие PHP-сайты; у нас есть большая кодовая база, большая часть которой ласково описывается как «наследие».

Само по себе, однако, это не проблема. Совместимость с PHP5 / PHP4 близка к идеальной, пока вы не столкнетесь с некоторыми более липкими областями объектов и ссылок. Они также могут быть исправлены достаточно легко, хотя, вероятно, будет почти невозможно выследить всех snafus прежде, чем начать жить. Как и в любом новом выпуске программного обеспечения, на самом деле следует ожидать несовместимости.

Настоящая проблема возникает, когда вы сталкиваетесь с более эзотерической несовместимостью; те, которые не могут быть легко предсказаны или обнаружены без определенной комбинации программных состояний. Пример, с которым я столкнулся при попытке запустить WordPress на PHP5 .

«Где юнит-тесты?» Я слышу, как Гарри думает…

PHP, конечно, не может быть обвинен в этой ситуации. Ошибка — это ошибка, полагаться на «неопределенное поведение» никогда не бывает хорошей практикой. Но это сценарии, которые могут быть почти подавляющими в крупномасштабном приложении, которое эволюционировало с PHP по мере развития языка.

Я не помню ощущения такого трения, когда мы перешли с PHP3 на PHP4. Я думаю, что ключом к этому была относительная простота, с которой мы могли запускать PHP3 и PHP4 в одной установке Apache. К сожалению, то же самое нельзя сказать о PHP5.

На персональном сервере я делюсь с другими коллегами SitePointers, которые мы (возможно, наивно) решили использовать с PHP5, и я в значительной степени собираюсь получить дополнительные IP-адреса, чтобы я мог запустить совершенно отдельный процесс Apache для PHP4.

PHP5 имеет многое из того, что я хочу; это премиальное пиво в минуту, но все говорят, что я пока не могу переключиться.

Так что тебя останавливает? А какие крупные сайты используют PHP5?