Перевёл свой сайт на PHP 5.3.4

Решил поднять свои старые проекты на PHP под MacOS, чтобы на ноуте их нормально разрабатывать. В том числе, перетащил свой сайт. У меня движок сплошной эксперимент, так что используются различные тонкие вещи (например, ленивые вычисления при помощи __toString), которые в PHP 5.3 (который у меня на «Маке») как-то поломали. На хостинге у меня 5.2.x, убил около часа, чтобы всё портировать.

Мелочи вспоминать не хочется, из того что запомнилось — PHP 5.3 нервно, с какой-то невнятной ошибкой, среагировал на «&new», оставшиеся в коде со времён PHP4 (там объекты не передавались по ссылке и объект, порождаемый через «new» копировался при присваивании, если явно не указать, что его надо передать по ссылке), помимо этого, вызов метода объекта через call_user_func работает теперь как-то иначе (не выяснял как именно), но пришлось менять на явный вызов через $object->$method.

С веткой PHP 5.3 я почти не работал, когда эта версия стала появляться в пакетах стабильных версий систем, я уже перешёл на «Пайтон».
13 июня 2011 21:52

pan Ramon (rembish.livejournal.com)
14 июня 2011, 00:48

Если я правильно помню (сам перешёл на python), то call_user_func(array($instance, 'method'), $param1, $param2, ...). Ну или вместо $instance строка с названием класса для вызова статического метода. С точки зрения python'а очень дико.

bolk (bolknote.ru)
14 июня 2011, 09:07, ответ предназначен pan Ramon (rembish.livejournal.com):

Да, я именно о таком вызове и говорю. Он почему-то стал источником глюков, пришлось заменить его на $instance->method(param1, param2).
С точки зрения python'а очень дико.
С точки зрения Пайтона PHP многословен. Но ничего дикого в такой конструкции нет.

Кстати: http://avva.livejournal.com/2346628.html?mode=reply

Аноним (инкогнито)
14 июня 2011, 09:45

Уровень отображения об ошибках E_ALL, да?

bolk (bolknote.ru)
14 июня 2011, 10:11, ответ предназначен Анониму

Ошибки логируются, не отображаются. Но E_ALL, конечно же. Только как это связано? Конструкция именно делала не то, что нужно, а не выдавала ошибку. Вот в этом коде, кстати: http://bolknote.ru/files/akyn.phps Там она почти в начале.

test (инкогнито)
13 августа 2011, 21:09, ответ предназначен Анониму

2.2250738585072011e-308

bolk (bolknote.ru)
13 августа 2011, 23:30, ответ предназначен test

Это, типа, попытка поломать сайт?

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)