Выход PHP 5.3.0

1/07/2009 10:37

После около двух лет разработки выпущен релиз интерпретатора языка программирования PHP 5.3.0, сообщает opennet.ru. Наиболее интересные изменения:
- Значительное увеличение производительности. Например при сравнении одного из снапшотов 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; у некоторых функций ужесточились требования к передаваемым параметрам.
Пресс-релиз