Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 alpha 2, BeerPHP, обзор свежих RFC из PHP Internals, включая Strict operators directive, порция полезных инструментов, видео и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.4.0 alpha 2 — Второй плановый альфа-релиз с исправлениями ошибок. Полный список новых возможностей и изменений доступен в документе UPGRADING. Ожидается ещё одна альфа и затем feature-freeze 22 июля.
Обзоры: Новое в PHP 7.4, What’s New in PHP 7.4 (Features, Deprecations, Speed). - BeerPHP Moscow #4, 4 июля 2019 — Пятая юбилейная встреча PHP-сообщества в Москве для неформального общения. Кстати, для того чтоб организовать BeerPHP в своём городе, можно создать issue в репозитории beerphp/meta. Движение весьма популярно и хорошо заходит в JS-мире. Даёшь BeerPHP в каждый город!
- PHP Meetup в Москве (офис SkyEng), 22 августа 2019
PHP Internals
- [RFC] Normalize arrays' «auto-increment» value on copy on write — Предлагается сбрасывать значение “автоинкремента” при копировании массива, так, как если при копировании новый пустой массив был бы по одному заполнен элементами из старого.
Скрытый текст
$array = [0, 1, 2, 3]; unset($array[3], $array[2]); $arrayCopy = $array; $arrayCopy[] = 2; // Если предложение будет принято, то следующее выражение будет истинно. // А на данный момент массивы не эквивалентны. assert($arrayCopy === [0, 1, 2]);
- [RFC] Strict operators directive — PHP производит неявное преобразование типов для большинства операторов. И поскольку правила конвертации довольно сложные, то часто это может приводить к непредсказуемым результатам. В этом RFC предлагается ввести новую директиву
strict_operators
, которая ограничит преобразования типов и позволит бросать ошибкуTypeError
для несовместимых операндов. Документ очень подробный и описывает множество примеров, рекомендую просмотреть весь. Также директива меняет поведение конструкцииswitch
. - [RFC] Deprecations for PHP 7.4 — Ещё пачку функциональностей предлагается объявить устаревшими в 7.4 и затем удалить в 8.0. Из интересного:
• Cейчас вimplode()
аргументы можно передавать в любом порядке – предлагается оставить только каноническийimplode(string $glue, array $pieces)
;
• Вместоfloat
можно использовать типreal
– последний будет убран. - [RFC] Add str begin and end functions — Предлагается добавить функции
str_begins()
,str_ibegins()
,str_ends()
,str_iends()
,mb_str_begins()
,mb_str_ibegins()
,mb_str_ends()
, иmb_str_iends()
. - Для репозитория php-src добавили пайплайн в Azure DevOps.
- PHP Internals News #15 — Об улучшениях
base_convert()
с Scott Dutton. - PHP Internals News #16 — С Joe Watkins об [RFC] Unbundle ext/recode.
Инструменты
- cycle/orm — Мощная ORM для долгоживущих приложений и не только. Готова подробная документация c примером динамического определения схемы и связей.
- SerafimArts/pipe — Обёртка для записи операций в виде цепочки вызовов (пайп оператор). Прислал Ostap34JS.
- postaddictme/instagram-php-scraper — Библиотека имитирует поведение клиентов Instagram для получения данных без использования официального API. Также есть библиотека mgp25/Instagram-API.
- helhum/dotenv-connector — Удобный плагин для Composer, который читает переменные из .env и делает их доступными во всём приложении.
- patrickschur/language-detection — По заданной строке определяет с какой вероятностью она написана на том или ином языке.
- thephpleague/commonmark — Парсер Markdown. Обзор релиза 1.0.0.
Symfony
- Новый участник в Symfony Core команде: Yonel Ceruto
- PHP 7.4 Preload в Symfony — Nikolas Grekas подготовил PR в Symfony с реализацией предзагрузки, которая добавлена в PHP 7.4. Тесты производительности ещё не проводились. Прислал dmitrybalabka
- Улучшения в Twig: контроль пробельных символов, простые макросы, добавлены Filter, Map и Reduce.
- Эффективно тестирование с помощью фикстур в Symfony 4
- Работа с JSON RPC в Symfony 4
Laravel
- mpociot/laravel-test-factory-helper — Генерирует тестовые фабрики на основе существующих моделей.
- laravel-preload/preload.php — Концепт PHP 7.4 предзагрузки для Laravel.
- Макросы в Laravel
- Unit тестирование в Laravel
- Разработка чат-бота (laravel+botman)
- Laravel Core Adventures: Accessors & Mutators
- Подкаст Тейлора Laravel Snippet #14 — Laravel Live UK, whereHasMorph, laravel/ui, front-end authorization, performance, Lumen.
Yii
- cebe/yii2-app-api — Шаблон приложения на Yii2 для быстрого создания API на основе спеки OpenAPI.
Async PHP
- Пишем RESTful API с помощью ReactPHP: Plans and First Steps, What is a RESTful API?
- Пятиминутка PHP #5 — В гостях Сергей Жук рассказывает об асинхронном PHP и ReactPHP. Подкаст теперь также можно слушать на YouTube.
Материалы для обучения
- PHP Wishlist — Годная подборка фич, которые бы хотелось видеть в PHP.
- Возможно вам не нужна query bus
- Мутационное тестирование: тестируем тесты
- Логирование в распределённом php-приложении
- PHP дженерики уже сегодня (ну, почти) — Ещё немного примеров использования дженериков в посте о реализации в PHPStan.
- Haxe и PHP: статическая типизация, стрелочные функции, метапрограммирование и многое другое.
- Чистый код на PHP — Принципы разработки ПО, взятые из книги Clean Code Роберта Мартина и адаптированные для PHP.
- Видео с Dutch PHP Conference 2019
- Видео с PHPfwdays 2019
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 158
Автор: Роман Пронский