Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 RC5, Xdebug 2.8, критическая уязвимость в PHP-FPM, новости из PHP Internals, порция полезных инструментов, подкасты, стримы и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.4.0 RC5 — Предпоследний релиз-кандидат из запланированных.
- PHP 7.3.11, 7.2.24, 7.1.33 — В обновлениях устранена критическая уязвимость (CVE-2019-11043). Причиной уязвимости являлась ошибка в PHP-FPM. Запросив определённым образом оформленный URL, атакующий может добиться выполнения произвольного кода. Если вы используете PHP-FPM, то рекомендуется обновиться немедленно, чтобы получить исправление, потому что эксплойт давно в публичном доступе. Подробнее об уязвимости. Кстати, версии PHP 5.* уже давно не поддерживаются и соответственно фикса не получили.
- Xdebug 2.8.0 — Стабильная версия отладчика с поддержкой PHP 7.4. Исправлено множество ошибок, а также добавлена возможность подтверждения установки брейкпоинта в IDE.
- skyeng/php-communities — Открытый список PHP-событий, спикеров и организаторов на GitHub. Ближайшие мероприятия:
• 7 ноября, Москва: BeerPHP Moscow #7
• 14 ноября, Екатеринбург: PUM: PHP Ural Meetups 1.1
• 21 ноября, Москва: Митап про страхи в PHP
• 29 ноября, Уфа: PHP-митап с Сергеем Жуком и Антоном Моревым
• 30 ноября, Иваново: PHP: Неправильный путь
PHP Internals
- [RFC] Union Types 2.0 — Голосование по объединённым типам продвигается весьма бодро. Подробнее о данном предложении в подкасте PHP Internals News #33 с Никитой Поповым. Также опыт использования GitHub для обсуждения и доработки данного RFC оказался в целом успешным, и предлагается продолжить использовать такой флоу в опциональном/тестовом режиме.
- [PHP] Deprecate Backtick Operator (V2) — А вот голосование об упразднении обратных кавычек
` `
в качестве алиаса дляshell_exec()
не такое успешное. О деталях RFC в PHP Internals News #34 с автором предложения Mark Randall. - [RFC] Object Initializer — Предложение в текущем виде не преодолело необходимый порог на голосовании.
Инструменты
- webmozarts/console-parallelization — Позволяет распараллеливать команды symfony/console.
- matteosister/GitElephant — Библиотека для работы с Git из PHP.
- mnapoli/bof — Обёртка над Guzzle с более простым интерфейсом для создания запросов.
- danog/MadelineProto — Асинхронный клиент/сервер протокола Telegram MTProto. Позволяет взаимодействовать с Telegram без использования бот-API.
Symfony
- Symfony 5: The Fast Track — Фабьен запустил краудфандинговую кампанию для издания новой книги, которая будет описывать создание приложения на Symfony 5 с нуля до продакшн версии.
- У вас могут быть утечки памяти в тестах Symfony на PHP 7
- Неделя Symfony #670 (28 октября — 3 ноября 2019)
Laravel
- Доменно-ориентированный Laravel — Один из постов серии о разработке крупных приложений на Laravel. Также в дополнение, как использовать PhpStorm для рефакторинга по принципам описанным в статье.
- Почему следует использовать дефолтную архитектуру Laravel-приложения
- Поддерживаем конфиги Laravel
- О разработке легко поддерживаемых приложений на Laravel
- Развёртывание Laravel-проектов в Kubernetes
- Еще один способ тестирования запросов в Laravel
- Laravel: разбираем основные понятия. Часть третья: «Заключительная»
- Laravel Snippet #17: Motivation and Discipline — Продолжение серии подкастов от Тейлора, где он рассказывает о том, как строить бизнес на опенсорсе.
Yii
Zend/Laminas
- В апреле было объявлено, что Zend Framework будет переименован в Laminas. В репозитории проекта появился пакет для миграции проектов laminas/laminas-migration (пока в тестовом режиме) и инструкция по проверке миграции.
Async PHP
- Building RESTful API With ReactPHP — Новая книга на основе серии видео-туториалов.
- apisearch-io/symfony-react-server — Асинхронный сервер для Symfony на основе ReactPHP.
Материалы для обучения
- Что такое сборка мусора в PHP и как извлечь максимум пользы из этого? Также в дополнение выпуск подкаста The Undercover ElePHPant с Derick Rethans с обсуждением этой темы.
- Codeception 4.0 и дальше — В четвёртой версии ядро Codeception будет отделено от модулей и расширений.
- Пример реализации кастомной инспекции в PhpStorm для проверки на зарезервированные слова MySQL в миграциях Laravel.
- Решаем проблему N+1 в ORM'ках
- PHP: Прошлое и будущее — Небольшое напоминание о том, как изменился PHP за 11 лет. Бенчмарк PHP 4 (6.069 сек) против PHP 8 (0.108 с JIT и 0.383 сек без).
- Как выглядит zip-архив и что мы с этим можем сделать. Часть 2 — Data Descriptor и сжатие
- Docker + php-fpm + PhpStorm + Xdebug
- Пробуем preload (PHP 7.4) и RoadRunner
- Пара примеров использования FFI из PHP 7.4:
• Бенчмарки сжатия алгоритмом zstd с помощью PHP-расширения и через FFI.
• vdechenaux/PhpWebcam — Концепт библиотеки для захвата кадров с веб-камеры.
Аудио/Видео
- Beachcasts: Храним секретные данные в переменных окружения с помощью phpdotenv.
- SDCast #109 — В гостях Антон Титов, автор RoadRunner и CycleORM.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 166
Автор: Роман Пронский