PHP 5.3 - стоит ли на нем писать?

Духовность™

Продвинутый новичок
nerezus
понятно. Просто у меня не стоит вопрос о переделке кода для версии 5.3 - почти все нормально.
 

korchasa

LIMB infected
Автор оригинала: fixxxer
> куда вызов gc_collect_cycles куда в дизайне пихаешь?
У меня в долгоживущих скриптах сделано примерно так:
Ты украл мой код :)

По теме:
1. Пространства имен годятся только для "префиксования" библиотек, из-за того, что в локаль нельзя вытянуть несколько пространств. Пытались на них построить autoload, в итоге, вчера вернул все на подчеркивание.
2. __DIR__, strstr($haystack, $needle, true) и прочие мелочи радуют. Хотя сделаны они "по РНР-шному" - тут сделали, а тут не стали.
3. lsb нравится. __callStatic правда пока только трогал, но надежды на него большие. Строить всякие User::findByName('Vasya') на лету - это круто.
4. Иногда глючят сопутствующие продукты. Из последнего - при использовании APC, во время записи в сессию, терялись классы. Т.е. объект есть, а класса его нет.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
я пишу пол-года уже, использую без проблем сейчас

фича, которая мне очень нужна - работа с датами
точно буду юзать GC
пачка новых функций в разных расширениях - просто удобно

до NS еще не добрался, LSB еще не осознал как применить

в переходе с 5.2 на 5.3 была только одна проблема: в сторонних библиотеках перестал работать egrep

остальное заработало без изменений - проще, чем при переходе с 5.1 на 5.2

-~{}~ 03.02.10 15:11:

лямбда-функции немного огорчили громоздкостью синтаксиса
я ж к JS привык
 

AmdY

Пью пиво
Команда форума
да ладно, в 5.3 есть куча плюшек lsb - великолепная штука в купе с __callStatic. Наконец-то можно делать статикой то, что нужно делать статикой.
наконец-то можно проверять тип всех переменных на входе в функцию, а не долько объекты.
в spl куча плюшек.
увеличение скорости.
минусы: не завёл пока xdebug, и пришлось переделать проверку gd. в остальном никаких несовместимостей. вчера хотел симпатичный трекер поставить на хостинге, но он _только_ под php 5.3 и выше. Жду пока приедет сервак и можно будет писать продакшен код на php 5.3.
 

whirlwind

TDD infected, paranoid
Вот никак не могу взять в толк, чем же так нрявятся магические методы __call* ? Они ведь напрочь убивают и без того хилую типизацию. Если говорить на общепонятном языке, как минимум - это нерабочий автокомплит. При более глубоком рассмотрении - паттерны все равно магическими методами не реализуешь, потому что они обязаны реализовывать интерфейс. Ну не вижу я смысла ооп без type hinting. Ведь оо код без этого разбирать так же тяжело, как и говнокоды типа

PHP:
function do_something(&$vseOboVsemArrayKotoryVozvrashaetHzChto) {}
 

pilot911

Новичок
Автор оригинала: whirlwind
Вот никак не могу взять в толк, чем же так нрявятся магические методы __call* ? Они ведь напрочь убивают и без того хилую типизацию. Если говорить на общепонятном языке, как минимум - это нерабочий автокомплит. При более глубоком рассмотрении - паттерны все равно магическими методами не реализуешь, потому что они обязаны реализовывать интерфейс. Ну не вижу я смысла ооп без type hinting. Ведь оо код без этого разбирать так же тяжело, как и говнокоды типа

PHP:
function do_something(&$vseOboVsemArrayKotoryVozvrashaetHzChto) {}
ну как чем? можно писать расширение кода ядра чего-либо без изменений самого ядра

например, если нет функции внутри класса - просматриваем конфигурационный массив и ищем в нем имя класса и отсутствующую функцию, путь к файлу с функцией

что может быть проще ?

раньше для этого приходилось делать не очень красивую магию
 

HraKK

Мудак
Команда форума
Проще подучить ООП, а не юзать магические методы для удаления гланд через анус.
 

confguru

ExAdmin
Команда форума
Сейчас готовлю переезд на новый сервер клуба
форум запустился на ура на php 5.3.1
шаблонизатор su1id не собирается.. переписали на кохану
faq пришлось перетянуть на новую версию wikki
в целом пришлось пофиксить парочку deprecated

По работе - держу у себя - 5.3.1 и код не работающий под 5.3.1 не попадает в продакшен.
 

whirlwind

TDD infected, paranoid
Автор оригинала: pilot911
можно писать расширение кода ядра чего-либо без изменений самого ядра
....
раньше для этого приходилось делать не очень красивую магию
А что, проблема что-либо написать? Проблема потом разобраться в том, что написано. lsb - средство выражения каши в голове в виде размазни в коде. Я уж тут сцылками на лурк кидаться не буду и сами знаете как такой код называется. Все магические методы нарушают инкапсуляцию.

PS. Давайте все возьмем и поглядим, а есть ли в реализациях наших магических методов выброс исключений, в случае необработанных ситуаций, или там это просто замалчивается.
 

AmdY

Пью пиво
Команда форума
whirlwind
@property и @method вернут автокомплит, в php 5.3 уже можно указывать тип входных и возвращаемых параметров. магические методы порождают свои паттерны, почему бы не использовать возможности языка.
 

whirlwind

TDD infected, paranoid
AmdY лучше бы сразу ссылкой, но и на том спасибо, не знал. Если так, то надо поглядеть.

-~{}~ 03.02.10 21:55:

AmdY

PHP:
php 5.3 уже можно указывать тип входных и возвращаемых параметров
Эммм... Пруфлинк плз. дай на возвращаемые значения. Пруф на аннотации тоже интересно, хотя это и не так актуально.
 

whirlwind

TDD infected, paranoid
Аннотации. Наверно это к IDE относится, например к зенду.
 

AmdY

Пью пиво
Команда форума
ой. извиняюсь, соврал, только что проверил. действительно, нет пока полной поддержки хинтинга, видел где-то в вики статью, где был примеры и со стринг и с возвращаемым значением, сейчас роюсь. нашёл где видел http://wiki.php.net/rfc/typehint

pilot911 http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.property.pkg.html
 

pilot911

Новичок
Автор оригинала: AmdY
ой. извиняюсь, соврал, только что проверил. действительно, нет пока полной поддержки хинтинга, видел где-то в вики статью, где был примеры и со стринг и с возвращаемым значением, сейчас роюсь.

pilot911 http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.property.pkg.html
спасибо
 
Сверху