30.06.2009 16:58
Увидел свет релиз интерпретатора языка программирования PHP 5.3
|
 |
|
После около двух лет разработки выпущен релиз интерпретатора языка программирования PHP 5.3. Наиболее интересные изменения:
- Значительное увеличение производительности. Например при сравнении одного из снапшотов php 5.3 и последнего стабильного релиза, было замечено увеличение производительности Drupal на 20%, Qdig на 2%, typo3 на 30%, wordpress на 15%, xoops - на 10%.
- Namespaces - изолированные от остального кода пространства имен для классов, функций и констант.
- "Late static binding" - привязка к вызываемому классу, вне контекста наследования (возможность получить имя класса, вызванного для выполнения статического метода);
- Mysqlnd - новый MySQL драйвер, работающий напрямую с MySQL, без использования libmysql.
- Из состава пакета удален модуль ext/msql, ext/ereg помечен как устаревший, ext/mhash заменен на ext/hash;
- Реализован метод __callStatic для организации перегрузки статических методов;
- Поддержка OpenID
- Изменение техники округления чисел с плавающей точкой;
- Возможность определения в ini-файле блоков конфигурации с привязкой к директории и имени хоста, для получения функциональности подобной .htaccess;
- XSLT профайлинг
- Многоплатформенный getopt()
- Поддержка Sqlite3 (расширение ext/sqlite3);
- Опционально включаемый циклический сборщик мусора;
- Новый синтаксис для определения строковых блоков, ограниченная поддержка GOTO, оператор "?:";
- Новые расширения: ext/phar,
ext/intl,
ext/fileinfo,
ext/enchant;
- Поддержка замыканий и лямбда-функций;
- Возможность ведения подробного лога отправки почты через функцию mail(), что полезно для выявления источника спама в системах хостинга, на которых нередко пытаются рассылать спам через взломанные скрипты пользователей. Кроме ведения лога предусмотрена возможность включения в тело письма заголовка с уточнением из какого именно скрипта и от какого пользователя осуществлена отправка;
- Более 140 исправлений ошибок.
Список несовместимостей и особенности миграции с прошлых версий PHP описаны в документе "Migrating from PHP 5.2.x to PHP 5.3.x". Например, из комплекта поставки удалены расширения
ext/mhash (см. ext/hash),
ext/msql,
ext/pspell (см. ext/enchant),
ext/sybase (см. ext/sybase_ct); перемещены в PECL:
ext/ming,
ext/fbsql,
ext/ncurses,
ext/fdf; удалена поддержка режима совместимости zend.ze1; у некоторых функций ужесточились требования к передаваемым параметрам.
|
|
|
- Главная ссылка к новости (http://php.net/releases/5_3_0.php...)
- OpenNews: Вышел второй кандидат в релизы PHP 5.3
- OpenNews: Релиз PHP 5.3 перенесен с 25 на 30 июня
- OpenNews: Вышел кандидат в релизы PHP 5.3
- OpenNews: PHP 5.3 перешел в фазу бета тестирования
- OpenNews: В PHP 5.3 ожидается значительное увеличение производительности.
|
| Тип: Программы |
| Ключевые слова: php, (найти похожие документы) |
| При перепечатке указание ссылки на opennet.ru обязательно |
| Реклама |
|
|
|
| |
| 1.4, croster, 19:56, 30/06/2009 [ответить] [смотреть все]
| –1 +/– | |
>ограниченная поддержка GOTO
Зачем это нужно? Наоборот, GOTO необходимо выкидывать изо всех нормальных высокоуровневых языков.
|  | | |
| 1.8, Gambler, 23:04, 30/06/2009 [ответить] [смотреть все]
| +1 +/– | |
Какая ирония - когда пользователи требовали late static binding'а, их посылали, говоря, что это никому не нужно. Стоило Zend оплошать с ActiveRecord в демонстрации, так сразу сделали.
В общем-то, большая часть новых фишек языку просто необходима, и была необходима уже давено. Что раздражает - это все большее и большее продвижение в сторону дубово написанных приложений в стиле Java, т.е. с кучей ничего не представляющих собой классов, обязательных методов и так далее. Я имею ввиду как SPL, так и надоедливые варнинги по поводу "неправильных" типов. (О ужас, foreach для null!)
goto вроде бы ввели для конечных автоматов. Хотя кому и для чего нужны эти автоматы в скриптовом языке - не понимаю. Парсеры писать? Устройствами управлять?
|  | | |
| |
| |
| |
| |
| 5.26, ИмяЖ, 04:12, 02/07/2009 [ответить] [смотреть все]
| +/– | |
> Так это уже давно известно со времен Дейкстры.
Кого волнует что 42 года назад думали о программировании?
Да, goto примитивен. Но в этом его сила - он позволяет делать конкретно то что нужно, а не выдумывать как, например, выйти из стака циклов не используя заклеймённые инквизицией конструкции.
|  | | |
| |
| 6.29, Pilat, 13:17, 02/07/2009 [ответить] [смотреть все]
| +/– |
>> Так это уже давно известно со времен Дейкстры.
>
>Кого волнует что 42 года назад думали о программировании?
>Да, goto примитивен. Но в этом его сила - он позволяет делать
>конкретно то что нужно, а не выдумывать как, например, выйти из
>стака циклов не используя заклеймённые инквизицией конструкции.
В этом его опасность - с помощью goto мы переходим в другое пространство имён мимо объявления переменных. В Фортране пространств имён не было, и проблемы не было. В современных языках контексты видимости переменных очень разные, и проблемы появились.
Выход из стека циклов иногда нужен, но не настолько часто, чтобы ради этого поддерживать goto ( некоторые языки имеют для этого специальные конструкции). Отсутствие goto полезно для начинающих программистов - они не стимулируются создавать Гордиев узел из циклов, и больше думают над стройностью алгоритмов. Для профессионалов отсутствие или наличие goto вообще не представляет проблемы.
|  | | |
|
| 5.28, Ivan, 11:41, 02/07/2009 [ответить] [смотреть все]
| +/– |
>Причем опасности подвержены не
>только индусы, но и студенты, абы как пишущие (без понимания) свои
>студенческие поделки.
Да, когда в школьные годы учил C++ и туманно представлял себе алгоритм глядя на код, помню иногда вставкой гото решались все проблемы с точки зрения решения задачи (как данные из условия на входе, правильный ответ на выходе), но я таки брал себя в руки и разбирался по-человечески...
|  | | |
|
|
|
|
| 1.13, terr0rist, 00:53, 01/07/2009 [ответить] [смотреть все]
| –1 +/– |
Осталось теперь искоренить идиотский механизм warning/notice, отказаться от никому не нужного знака $ перед переменными (если в перле он имел смысл, то в пхп это только лишняя трата времени на набор этого символа), сделать объект и array взиамозаменяемыми в написании ( a->x == a['x'] ), выкинуть провальную концепцию глобал переменных и ... получится javascript? хм... давно бы надо было (и было бы проще и эффективнее) взять и доделать javascript в полноценный скриптовый инструмент, а не изобретать велосипед с пирамидальными колёсами и рихтовать их в течение 15 лет.
|  | | |
| 1.15, SkyRanger, 01:52, 01/07/2009 [ответить] [смотреть все]
| –1 +/– | |
Символ имеет смысл так как точно позволяет отделять переменную от функции и тем самым позволяет юзать что то типа:
"Результат=$result чегото" вместо "Результат"+$result+" чегото"
|  | | |
| |
| 2.17, дядька, 02:20, 01/07/2009 [ответить] [смотреть все] [показать ветку]
| +/– | |
>"Результат=$result чегото" вместо "Результат"+$result+" чегото"
Как правило программа по большей части состоит из написания имен переменных и функций, чем из выводов их значений в какой либо поток. А точно отделять переменную от функции можно, как это часто принято, частями речи и регистром символов: result getResult ..ю
|  | | |
| |
| 3.19, ., 10:46, 01/07/2009 [ответить] [смотреть все]
| +/– |
>Как правило программа по большей части состоит из написания имен переменных и
>функций, чем из выводов их значений в какой либо поток
только не язык-шаблонник
|  | | |
|
|
| 1.21, Pilat, 13:19, 01/07/2009 [ответить] [смотреть все]
| +/– |
PHP давно представляет из себя мешанину заимствований из других языков, так что новые фичи ни хуже, ни лучше ему уже не сделают.
|  | | |
|
|
| Ваш комментарий |
|
|
| |
|