PHP-Дайджест № 192 (2 – 16 ноября 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: Последний релиз-кандидат PHP 8.0 перед финальным релизом и свежие материалы по PHP 8, RFC и обсуждения из PHP Internals, порция полезных инструментов, стримы, подкасты, статьи.
Приятного чтения!
Новости и релизы
- PHP 8.0 RC 4 — Последний релиз-кандидат перед финальным выпуском PHP 8, который намечен на 26 ноября.
Свежие материалы по PHP 8:
Кроме того, в PHP 8 по умолчанию удален PECL. Из-за этого могут поломаться Dockerfile, в которых с его помощью устанавливались расширения. Вместо PECL можно использовать FriendsOfPHP/pickle.
Скрытый текстRUN curl -L -o /tmp/pickle.phar https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar; \ mv /tmp/pickle.phar /usr/local/bin/pickle; \ chmod +x /usr/local/bin/pickle; \ pickle install xdebug; \ RUN echo "extension=xdebug.so" >> $PHP_INI_DIR/conf.d/php.ini; \
Или так:RUN mkdir -p /usr/src/php/ext/xdebug && \ curl -fsSL https://pecl.php.net/get/xdebug | \ tar xvz -C "/usr/src/php/ext/xdebug" --strip 1 && docker-php-ext-install xdebug
- phpcommunity.ru — PHP-сообщества в России, Беларуси, Украине.
Ближайшие митапы: PHP-митап Иннополис онлайн, 19 ноября; Online-митап по PHP от SimbirSoft, 20 ноября.
PHP Internals
- [Draft] Closure self reference — Ранний черновик на обсуждении. Предлагается в замыканиях добавить псевдопеременную
$lambda
, которая указывает на само замыкание. По аналогии с$this
для классов.$fibonacci = function (int $n) use (&$fibonacci) { if ($n === 0) return 0; if ($n === 1) return 1; return $fibonacci($n-1) + $fibonacci($n-2); }; // => $fibonacci = function (int $n) { if ($n === 0) return 0; if ($n === 1) return 1; return $lambda($n-1) + $lambda($n-2); };
- [PR] Support for
:: function syntax — Концепт синтаксиса ::function
(или::fn
) для получения полного неймспейса и имени функции по аналогии с::class
. Подобное предложение обсуждалось раньше и имеет проблемы, но вполне вероятно будет принято. - [Discussion] Alias for `int|float` — Обсуждалась возможность ввести псевдоним
number
илиnumeric
для объединенного типаint | float
. В комментариях указали, что уж лучше позже сделать полноценные алиасы для типов как в TypeScript:type Number = Foo|Bar;
.
Инструменты
- mnavarrocarter/php-fetch — Порт fetch WebApi на PHP без сторонних зависимостей. Лаконичный HTTP-клиент в одной функции: Скрытый текст
use function MNC\Http\fetch; $response = fetch('https://habr.com'); echo $response->status()->code(); // 200 echo buffer($response->body()); // or while (($chunk = $response->body()->read()) !== null) { echo $chunk; }
- themsaid/ibis — Поможет сгенерировать полноценную электронную книгу в PDF из markdown-файлов.
- i582/phpstats — Инструмент для сбора метрик кода и графов зависимостей для PHP. Реализован на базе VKCOM/noverify, то есть на Go.
- mihaeu/dephpend — Инструмент статического анализа, который поможет выявить проблемы в архитектуре путям анализа зависимостей классов.
- httpsoft/http-message — Строгая и быстрая реализация стандартов #PSR-7 и #PSR-17.
- spatie/crypto — Небольшая обертка над openssl для шифрования данных с помощью приватного/публичного ключа. Вводный пост.
- icanhazstring/systemctl-php — PHP-обертка над systemctl.
Symfony
Laravel
Yii
Async PHP
PhpStorm
Разное
Аудио/Видео
Занимательное
- vincentpontier.com/elephpant/ — Официальный магазин слоников снова доступен! Можно заказать розового и синего.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку хабра или телеграм.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 191