После около двух лет разработки выпущен (http://php.net/releases/5_3_0.php) релиз интерпретатора языка программирования PHP 5.3. Наиболее интересные изменения:
- Значительное увеличение производительности. Например при сравнении одного из снапшотов php 5.3 и последнего стабильного релиза, было замечено увеличение производительности Drupal на 20%, Qdig на 2%, typo3 на 30%, wordpress на 15%, xoops - на 10%.- Namespaces (http://php.net/namespaces) - изолированные от остального кода пространства имен для классов, функций и констант.
- "Late static binding (http://php.net/lsb)" - привязка к вызываемому классу, вне контекста наследования (возможность получить имя класса, вызванного для выполнения статического метода);
- Mysqlnd (http://php.net/mysqli.mysqlnd) - новый MySQL драйвер, работающий напрямую с MySQL, без использования libmysql.
- Из состава пакета удален модуль ext/msql, ext/ereg помечен как устаревший, ext/mhash заменен на ext/hash;
- Реализован метод __...
URL: http://php.net/releases/5_3_0.php
Новость: http://www.opennet.me/opennews/art.shtml?num=22392
релиз релизом, но нужно ещё ждать пока это счастье попадёт в продакшн дистрибутивы (Debian Stable, RHEL(centOS), SLES)
Компилить самому.
тестировать, нести ответственность , поддерживать тоже самому?
>тестировать, нести ответственность , поддерживать тоже самому?Епть, зато халява! :)
>ограниченная поддержка GOTOЗачем это нужно? Наоборот, GOTO необходимо выкидывать изо всех нормальных высокоуровневых языков.
А те языки где этот оператор поддерживается как же тогда должны называться? %)
>Зачем это нужно? Наоборот, GOTO необходимо выкидывать изо всех нормальных высокоуровневых языков.
>зачем? тебя ним в детстве пугали, что ли? или ты однажды прочитал, что «goto — плохо», вспомнил, какой ужас писал на гв-васике и решил, что заместо выпрямления рук надо ампутировать ногу?
>>Зачем это нужно? Наоборот, GOTO необходимо выкидывать изо всех нормальных высокоуровневых языков.
>>
>
>зачем? тебя ним в детстве пугали, что ли? или ты однажды прочитал,
>что «goto — плохо», вспомнил, какой ужас писал на гв-васике и
>решил, что заместо выпрямления рук надо ампутировать ногу?Не, это одни из первых слов, которые говорят на первых уроках информатики, не на IT кафедрах :)
>Не, это одни из первых слов, которые говорят на первых уроках информатики,
>не на IT кафедрах :)к сожалению. увы, заместо пояснить, как надо себя вести, чтобы не подхватить заразу, сразу рубят правду-матку: «будешь заниматься сексом — заразишься СПИДом!» %-)
FastCGI снесли? Не нашел я --enable-fastcgi .
>FastCGI снесли? Не нашел я --enable-fastcgi .Или теперь он включен по умолчанию и впринципе не может быть отключен?
Именно.
Какая ирония - когда пользователи требовали late static binding'а, их посылали, говоря, что это никому не нужно. Стоило Zend оплошать с ActiveRecord в демонстрации, так сразу сделали.В общем-то, большая часть новых фишек языку просто необходима, и была необходима уже давено. Что раздражает - это все большее и большее продвижение в сторону дубово написанных приложений в стиле Java, т.е. с кучей ничего не представляющих собой классов, обязательных методов и так далее. Я имею ввиду как SPL, так и надоедливые варнинги по поводу "неправильных" типов. (О ужас, foreach для null!)
goto вроде бы ввели для конечных автоматов. Хотя кому и для чего нужны эти автоматы в скриптовом языке - не понимаю. Парсеры писать? Устройствами управлять?
>goto вроде бы ввели для конечных автоматовGOTO является плохим стилем программирования. И тут не важно, для чего он применяется. А автоматы можно и без goto писать.
Как например в этой книге:
http://is.ifmo.ru/books/_book.pdf
>GOTO является плохим стилем программирования.значит не используйте goto.
ладно бы поддержка этого оператора делала интерпретатор медленнее или неустойчивее. но ведь всё прекрасно. так из-за чего шум?
>>GOTO является плохим стилем программирования.
>
>значит не используйте goto.
>ладно бы поддержка этого оператора делала интерпретатор медленнее или неустойчивее. но ведь
>всё прекрасно. так из-за чего шум?Отчего шум понятно, и не надо сыпать фразами-клише типа "не нравится - не используй". Шум потому, что вместо поиска нормальной логической структуры программ некоторые программисты начнут писать лапшу, справленную goto. А потом другим людям в этом надо будет разбираться.
>не надо сыпать фразами-клишепростить мой плохо русский. я стараться
>некоторые программисты начнут писать лапшу, справленную goto
не беспокойтесь, таких программистов уволят или уже уволили
Чувак, ты никогда не правил код за индусами... В этом аспекте, разрешить в PHP goto -- очень опасная затея..
не надо сказок про индусов,
порадался код с Индии и довольно умно написан
>не надо сказок про индусов,
>порадался код с Индии и довольно умно написанИндус индусу рознь, конечно. И среди русских девелоперов порой такие кадры встречаются =)
Но в массе своей, индусский код какой-то непонятный. У них какая-то особенная уличная магия^Wлогика.. Как вам в таком стиле код?
if (i == 1) {
...
}
elseif (i == 1+1) {
...
}
elseif (i == 1+1+1) {
...
}
elseif (i == 1+1+1+1) {
...(за дословность не учаюсь, но было что-то типа того)
А вообще, я хотел сказать что плохие песатели смогут писать код еще менее читабельный и обслуживаемый чем сейчас :>
Ветвления, основанные на гото невозможно отлаживать/модифицировать без хорошей блок-схемы.Помню как у меня, привыкшего уже к нормальнму C и более-менее нормальнму VisualBasic, голова взрывалась когда нас в техникуме заставляли пейсать на первобытном диалекте BASIC где строки нумеруются и потом между ними по GOTO переходы осуществляются.
>>не беспокойтесь, таких программистов уволят или уже уволилиэто утопия. Никуда их не уволят, потому что "увольняющие" обычно понимают еще меньше этих программистов.
>не используй". Шум потому, что вместо поиска нормальной логической структуры программ
>некоторые программисты начнут писать лапшу, справленную goto. А потом другим людям
>в этом надо будет разбираться.ну и при чём средства языка к отсутствию мозга? гвоздь, например, можно в ухо запихать — это значит, что все гвозди должны быть такой ширины, чтобы в ухо не влазили? O_O
> GOTO является плохим стилем программирования. И тут не важно, для чего он применяется.Вы бы лучше пробовали объяснить, _почму_ он является плохим стилем программирования.
> А автоматы можно и без goto писать.
goto напрямую передает суть автомата. Лейбел - сотояние, а goto - переход. Это удобно читать и писать, то есть как раз является хорошим стилем программирования. Я не говорю, что goto - великолепаня идея. Но ввели его скорее всего из-за этого.
А _можно_ автоматы описывать хоть лямбда-выражениями. Чтобы не скучать. Только кому это нужно?
>Вы бы лучше пробовали объяснить, _почму_ он является плохим стилем программирования.Так это уже давно известно со времен Дейкстры. Почитайте:
http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/pp/...>goto напрямую передает суть автомата.
>Я не говорю, что goto - великолепаня идея. Но ввели его скорее всего из-за этого.Это слабый аргумент - из-за одних автоматов вводить опасную конструкцию в язык. Теперь PHP станет еще более быдлокодерским языком. Причем опасности подвержены не только индусы, но и студенты, абы как пишущие (без понимания) свои студенческие поделки.
> Так это уже давно известно со времен Дейкстры.Кого волнует что 42 года назад думали о программировании?
Да, goto примитивен. Но в этом его сила - он позволяет делать конкретно то что нужно, а не выдумывать как, например, выйти из стака циклов не используя заклеймённые инквизицией конструкции.
>> Так это уже давно известно со времен Дейкстры.
>
>Кого волнует что 42 года назад думали о программировании?
>Да, goto примитивен. Но в этом его сила - он позволяет делать
>конкретно то что нужно, а не выдумывать как, например, выйти из
>стака циклов не используя заклеймённые инквизицией конструкции.В этом его опасность - с помощью goto мы переходим в другое пространство имён мимо объявления переменных. В Фортране пространств имён не было, и проблемы не было. В современных языках контексты видимости переменных очень разные, и проблемы появились.
Выход из стека циклов иногда нужен, но не настолько часто, чтобы ради этого поддерживать goto ( некоторые языки имеют для этого специальные конструкции). Отсутствие goto полезно для начинающих программистов - они не стимулируются создавать Гордиев узел из циклов, и больше думают над стройностью алгоритмов. Для профессионалов отсутствие или наличие goto вообще не представляет проблемы.
>Причем опасности подвержены не
>только индусы, но и студенты, абы как пишущие (без понимания) свои
>студенческие поделки.Да, когда в школьные годы учил C++ и туманно представлял себе алгоритм глядя на код, помню иногда вставкой гото решались все проблемы с точки зрения решения задачи (как данные из условия на входе, правильный ответ на выходе), но я таки брал себя в руки и разбирался по-человечески...
Осталось теперь искоренить идиотский механизм warning/notice, отказаться от никому не нужного знака $ перед переменными (если в перле он имел смысл, то в пхп это только лишняя трата времени на набор этого символа), сделать объект и array взиамозаменяемыми в написании ( a->x == a['x'] ), выкинуть провальную концепцию глобал переменных и ... получится javascript? хм... давно бы надо было (и было бы проще и эффективнее) взять и доделать javascript в полноценный скриптовый инструмент, а не изобретать велосипед с пирамидальными колёсами и рихтовать их в течение 15 лет.
Символ имеет смысл так как точно позволяет отделять переменную от функции и тем самым позволяет юзать что то типа:"Результат=$result чегото" вместо "Результат"+$result+" чегото"
>"Результат=$result чегото" вместо "Результат"+$result+" чегото"Как правило программа по большей части состоит из написания имен переменных и функций, чем из выводов их значений в какой либо поток. А точно отделять переменную от функции можно, как это часто принято, частями речи и регистром символов: result getResult ..ю
>Как правило программа по большей части состоит из написания имен переменных и
>функций, чем из выводов их значений в какой либо потоктолько не язык-шаблонник
Что-то в ебилдах из сорцов только 3.0.11 последний :(
PHP давно представляет из себя мешанину заимствований из других языков, так что новые фичи ни хуже, ни лучше ему уже не сделают.
А чем плох для выхода из N циклов
break N;