PHP 5.6.0RC1
20 июня 2014
Вышел первый кандидат в релизы PHP 5.6.0. Можно помочь разработчикам, проверив свои проекты на этой версии (не на боевых серверах, конечно) и сообщив о проблемах.
Изменения радуют. Рассмотрим самое интересное.
Можно использовать простые выражения в константах и значениях по умолчанию:
class PostCache { const EXPIRE_HOUR = 60 * 60; const EXPIRE_DAY = self::EXPIRE_HOUR * 24; public function put($data, $expire = 3 * EXPIRE_HOUR) { // ... } }
function queue($name, $delay = null, ...$data) { foreach ($data as $item) { Queue::put($name, $item, $delay); } }
Можно на лету распаковать массив в аргументы функции:
function updatePerson($id, $firstName, $lastName) { // ... } $person = ['Alexander', 'Makarov']; updatePerson(42, ...$person)
Ввели оператор для возведения в степень:
echo 2 ** 8; // 256 $n = 2; $n **= 8; echo $n; // 256
При помощи use
теперь можно импортировать функции и константы:
namespace My\Space { const FOO = 42; function f() { echo __FUNCTION__."\n"; } } // global namespace namespace { use const My\Space\FOO; use function My\Space\f; echo FOO."\n"; f(); }
- В ядро включили phpdbg.
- Кодировка для htmlspecialchars и других функций, которым она нужна теперь берётся из default_charset. По умолчанию используется UTF-8.
iconv
официально помечен какdeprecated
.- Можно повторно использовать
php://input
. - Можно загружать файлы больше двух гигабайт.
- Уменьшили потребление памяти при обработке POST-запросов.
Об остальных изменениях можно почитать на соответствующей странице документации, которая ещё будет дописываться.
Комментарии RSS по email OK
Автолоадить функции тоже можно будет?
Davert - как я понимаю для автолоада надо придумтаь соглашение имён Функции и Файла в которой она хранится.
Жаль, что PhpStorm пока не сделал поддержки phpdbg.
А что вместо него?
а что вместо iconv рекомендуют теперь ?
Интересные изменения, но не могу понять в каком файле автолоадер должен искать импортируемые функции. Вроде фича есть, а маловостребована и трудна в применении.
Да вроде ничего на тему автозагрузки как раз нет.
Прочитал RFC. Я и правда настолько плохо знаю английский, что мне показалось, что это всего лишь опции из php.ini убирают для iconv/mbstring или же я перевёл правильно, а топик - от лукавого?
UPD: а теперь прочёл и оригинал топика: да, там немного непонятно написано. Это лишь опции помечены как deprecated.
Аргументы переменной длины - не нравится мне это добавления в язык. Знатно можно будет говнокодить.
Изменения 5.6 абсолютно не впечатлили. Лучше бы выпустили обратно несовместимый 6.0 с встроенной поддержкой unicode и приведенной в порядок стандартной библиотекой.
Creocoder, этого не будет. В 6.0 будет переписанный движок (phpng), что даст крутой прирост производительности.
Ну наконец-то можно использовать константы в свойствах класса!
Кстати, уже вышел, вот ссылка в тему - plutov.by/post/php5_6_release