Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 alpha 1, DevConfX, принятые и новые RFC из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.4.0 alpha 1 — Вышла первая альфа-версия новой ветки PHP! Впереди полугодовой цикл тестирования, финальный выпуск ожидается в конце ноября.
Количество новых возможностей впечатляет: типизированные свойства, стрелочные функции, FFI, предзагрузка и много другого! Список всех изменений в документе UPGRADING.
Обзор новых фич можно посмотреть в хабрапереводе Новое в PHP 7.4 или в докладе Никиты Попова на PHP Russia. - DevConf 2019 (Москва, 21 июня) — Юбилейный десятый DevConf. По традиции доклады отбираются голосованием. Обзор поданных заявок слушайте в подкасте Пятиминутка PHP №54.
PHP Internals
- [RFC] Allow throwing exceptions from __toString() — Предложение принято единогласно.
- [RFC] Numeric Literal Separator — Предложение преодолело порог на голосовании, и значит в PHP 7.4 можно будет использовать символ подчёркивания в качестве разделителя в числах:
$i = 197_823_459; // 197823459
- [RFC] Nullsafe Calls — Старое предложение снова обсуждается в Internals. В нём рассматривается возможность добавления нового оператора
?->
, который бы позволил делать безопасные цепочки вызовов методов, в случае когда возвращаемое значение может бытьnull
:$o?->mayFail1()?->mayFail2()?->mayFail3()?->mayFail4();
Подобное предложение есть и в ECMAScript, а в Hack данная возможность уже реализована.
- [RFC] Alternative «use» syntax for Closures — Автор предложения считает синтаксис use в замыканиях не очень удобным и предлагает перенести его в тело функции:
Скрытый текст
// Так сейчас $closure = function ( ArgumentType $argument1, ArgumentType $argument2, ArgumentType $argument3, ArgumentType $argument4 ) use ($importVariable1, &$importVariable2, $importVariable3, &$importVariable4): ReturnType { // ... }; // Предлагается вот так $closure = function ( ArgumentType $argument1, ArgumentType $argument2, ArgumentType $argument3, ArgumentType $argument4 ): ReturnType { use $importVariable1, &$importVariable2; use $importVariable3, &$importVariable4; // ... };
- PHP Internals News #13 — Sara Goleman (релиз мнеджер PHP 7.2) и Derick Rethans (PHP 7.4) общаются на тему менеджмента релизов.
- PHP Internals News #14 — С Никитой Поповым об исключениях в __toString().
Инструменты
- badoo/liveprof — Инструмент мониторинга производительности приложений. На Хабре о нём был пост и можно посмотреть демо.
- BrainMaestro/composer-git-hooks — Управление Git-хуками из сomposer.json.
- hirak/prestissimo — Плагин Composer для параллельного скачивания пакетов. Значительно ускоряет установку зависимостей.
- ronanguilloux/IsoCodes — Библиотека для валидации различных стандартных кодов: почтовые индексы (zip) всех стран, телефонные номера, кредитные карты, национальные идентификационные коды и другие.
- zetrider/BotAuth — Аутентификация при помощи ботов в соцсетях. Пост в поддержку.
Symfony
- Неделя Symfony #650 (10-16 июня 2019)
- Symfony CLI — новый инструмент для локальной разработки
Laravel
- illuminatech/config — Переносит конфиги Laravel в БД.
- pipe-dream/laravel — Позволяет описать сущности в текстовом файлике и на основе него сгенерировать скелет приложения. Видеобзор.
- spatie/laravel-webhook-server, spatie/laravel-webhook-client — Пара простых пакетов для быстрого старта с вебхуками.
- Анализ сервис-контейнера Laravel от Matthias Noback, эксперта Zend/Symfony.
- Рефакторинг в Actions
- 40 дополнительных правил валидации для Laravel
- Core-разработчик Laravel Dries Vints показывает как он мейнтейнит Laravel.
Yii
- Интервью с Александром Макаровым, Yii core team
- Используем Yii2. Пишем очередную CMS или попытка значительно ускорить разработку при минимальных накладных расходах
Security
- MyBB <= 1.8.20: From Stored XSS to RCE — Анализ двух критических уязвимостей, которые позволяли захватить контроль над форумом.
- Критическая уязвимость в WordPress admin-ajax.php
Материалы для обучения
- Дженерики в PHP — Что это такое и для чего они нужны + обзор реализаций в Psalm/Phan.
- Всегда актуальный вопрос: Почему операции с float не точные и что с этим делать в PHP —
0.1 + 0.2 === 0.30000000000000004
- Нюансы и особенности работы isset()
- Как замокать финальные классы — В посте автор рекомендует dg/bypass-finals.
- О том что такое Явная архитектура (Explicit architecture) — В качестве примера автор отрефакторил демоприложение Symfony hgraca/explicit-architecture-php.
- О тестах и типах
- Курсоры БД в Doctrine
- PHP в 2019: лучше, чем вы о нём думаете
- PHP Мeetup #27, Минск
- Лучшие доклады PHP Russia 2019
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 157
Автор: Роман Пронский