Свежая подборка со ссылками на новости и материалы. В выпуске:
Последний релиз-кандидат PHP 8.0 перед финальным релизом и свежие
материалы по PHP 8, RFC и обсуждения из PHP Internals, порция
полезных инструментов, стримы, подкасты, статьи.
Приятного чтения!
Новости и релизы
- PHP 8.0 RC 4 Последний релиз-кандидат
перед финальным выпуском PHP 8, который намечен на 26 ноября.
Свежие материалы по PHP 8:
- Обновление серии постов от Larry Garfield: про атрибуты и объявление свойств в конструкторе.
- Видеокурс по основным фичам PHP 8 от Spatie.
- В PHP 8 оператор `@` не будет подавлять фатальные
ошибки, а именно ошибки типов:
E_ERROR
,E_CORE_ERROR
,E_COMPILE_ERROR
,E_USER_ERROR
,E_RECOVERABLE_ERROR
,E_PARSE
. - О WeakMap в PHP 8 с примерами реального применения.
- Как сконфигурировать JIT в 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-сообщества в
России, Беларуси, Украине.
- Полезные привычки программиста после 30, MySQL vs Postgres и как поговорить об этом в субботу.
- Как обстоят дела с 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 <func>::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('http://personeltest.ru/aways/habr.com');echo $response->status()->code(); // 200echo buffer($response->body());// orwhile (($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
- Symfony Panther: PHP-библиотека для тестирования из браузера и парсинга веб-страниц.
- Что нового будет в Symfony 5.2 .
- Несколько видеотуториалов по Symfony.
- Неделя Symfony #723 (9-15 ноября 2020)
Laravel
- laravel/breeze Новый пакет от Тейлора. По сути, одна консольная команда для быстрого разворачивания приложения на Laravel + Tailwind CSS + контроллеры для аутентификации. Видеообзор пакета.
- spatie/laravel-settings Позволяет работать с конфигом приложения в типизированном стиле. Вводный пост.
- ksassnowski/venture Инструмент позволяет строить сложные цепочки задач на основе системы очередей Laravel.
- Laravel Podcast S4:E17 C Christoph Rumpel про сервис-контейнер Laravel.
- Стрим об обновлении пакета spatie/laravel-event-sourcing на PHP 8.
- Обзор плагина Laravel Idea для PhpStorm.
- LaravelДайджест (28 ноября 2020)
Yii
- Новости Yii 2020, выпуск 7 Релизы Yii 2, прогресс по Yii 3, важные вести о Yii 1 и другие новости.
Async PHP
- clue/reactphp-term Потоковый эмулятор терминала.
- clue/reactphp-utf8 Потоковый парсер UTF-8.
PhpStorm
- PhpStorm 2020.3 EAP #6 В раннем доступе поддержка Tailwind CSS и Xdebug 3.
- Подборка трюков и советов по PhpStorm в твитах.
- IntelliJ плагин для Alpine.js Добавляет автокомплит директив.
- Elephpant Progress Bar Заменяет прогресс бары на
слоника.
Разное
- ВКонтакте снова выкладывает VKCOM/kphp Ребята из ВКонтакте заопенсорсили свой компилятор PHP. Коротко было в канале, а подробнее в анонсе на Хабре.
- Как разрабатывать на PHP 7.4 и деплоить на PHP 7.1 с помощью rectorphp/rector GitHub Actions. Когда хочется использовать новые фичи языка, но обновить целевую систему нет возможности.
- О поддержке атрибутов PHP 8 в Psalm.
- php-fig-rectified/fig-rectified-standards Попытка создать альтернативные стандарты. В частности, сделан PSR-2-R с табами вместо пробелов и скобками для классов и методов на одной строке с декларацией.
Аудио/Видео
- PHP Internals News подкаст, в котором Derick
Rethans (Xdebug) берет интервью у авторов RFC.
- Episode 69: Short Functions C Larry Garfield про однострочные именованные функции / методы.
- Episode 70: Explicit Octal Literal C George Peter Banyard про запись восьмеричных чисел в PHP.
- ОНТИКО подкаст В первом выпуске в гостях Александр Макаров.
- PHPBenelux Virtual Meetup: Damien Seguy Modernize your PHP with Exakat, Wim Godden Why and How of moving to PHP 8.
- О создании дев-окружения для PHP с помощью Docker Compose.
- Митап Фреймворки и инструменты PHP: Александр Макаров Yii: уроки прошлого и будущее, Антон Титов Cycle ORM и графы, Дмитрий Елисеев Выбор фреймворка для ентерпрайза.
Занимательное
- vincentpontier.com/elephpant/ Официальный магазин слоников снова доступен! Можно заказать розового и синего.
Спасибо за внимание!
Если вы заметили ошибку или неточность сообщите, пожалуйста, в
личку хабра или телеграм.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
Предыдущий выпуск: PHP-Дайджест 191