PHP-Дайджест № 161 (15 – 29 июля 2019)
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 beta 1, PhpStorm 2019.2, PSR-12, обзор RFC предложений из PHP Internals, новости с Laracon US, подкасты, порция полезных инструментов, и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.4.0 beta 1 — С первым бета-релизом заканчивается фаза активной разработки, а значит список новых возможностей и изменений в ветке 7.4 можно считать финальным. (За исключением short tags). Следующая бета ожидается 8 августа.
- PhpStorm 2019.2 — Типизированные свойства PHP 7.4, поиск дубликатов, подсветка и проверка регулярных выражений, EditorConfig, Shell-скрипты и многое другое.
- Стартовало голосование по PSR-12, расширенному стандарту стиля кодирования, который должен прийти на смену PSR-2.
- PHP Meetup в Москве (офис SkyEng), 22 августа 2019 — Анонс митапа, плавно переходящего в BeerPHP дринкап (в Москве и онлайне)
- Let’s play a little game with Lamoda — 16 августа в московском офисе Lamoda пройдёт PHP Quest. Чтобы поучаствовать, необходимо до 5 августа заполнить анкету и решить головоломку.
- PHP fwdays»20 — Сall for papers — Стартовал приём заявок на доклады на конференцию PHP fwdays»20, которая пройдёт 30 мая 2020 в Киеве.
PHP Internals
- [RFC] Deprecations for PHP 7.4 — Все пункты из предложения преодолели порог на голосовании и будут объявлены устаревшими в PHP 7.4.
- [RFC] Escape PDO »?» parameter placeholder — Предложение экранировать символ? в PDO принято и смержено в PHP 7.4.
- [RFC] Explicit call-site pass-by-reference — Старое предложение от Никиты снова на обсуждении. На данный момент тот факт, что функция принимает аргумент по ссылке обозначается только в определении самой функции:
Предлагается сделать возможным явное указание передачи по ссылке. Тем самым предупреждая разработчика о том, что переданная переменная изменится:function byRef(&$ref) {...} byRef($var);
function byRef(&$ref) {...} byRef(&$var);
- [RFC] Namespace-scoped declares — Ещё один старый RFC поднят на обсуждение. Изначально предлагалось сделать возможным установку директив интерпретатора для целых пространств имён, вместо обявления
declare();
в каждом файле. Это может быть удобно, особенно если будут приняты strict_operators.Скрытый текстТеперь обсуждается возможность объявления для папок вместо пространств имён — это решает проблемы реализации.namespace_declare('Vendor\Lib', [ 'strict_types' => 1, 'strict_operators' => 1, ... ]);
- [RFC] Deprecate PHP Short open tags v2 — В оригинальном предложении рассматривалась идея убрать возможность использования коротких тегов
. Однако уже после того, как оно было принято, посыпались возмущения и споры. Данный RFC предлагает более мягкий путь: если в php.ini включёна опция
short_open_tag
, то при первом использованиибудет брошен Notice. Несмотря на то что PHP 7.4 уже в бете, в случае принятия, реализация будет вмержена с разрешения релиз-менеджеров.
Инструменты
- krakjoe/tombs — Расширение для поиска «мёртвого» кода. Подключаете на продакшене не опасаясь проблем с производительностью, ждёте день/неделю/месяц, затем смотрите статистику и видите, какие функции/методы ни разу не выполнялись. Подробнее в посте автора.
- krakjoe/stat — Ещё один крутой концепт от Joe Watkins. Расширение для профайлинга PHP-приложений на продакшене. Отдаёт информацию в параллельном потоке выполнения без накладных расходов по производительности. Подробнее в посте.
- jeremeamia/iter8 — Итерация и трансформация массивов с помощью генераторов. Альтернатива классике от Никиты Попова: Nikic/Iter.
- cpliakas/git-wrapper — PHP-оболочка для работы с Git.
- exussum12/coverageChecker — Инструмент позволяет инкрементально внедрять хорошие практики. По сути, baseline для других инструментов. Например, можно требовать 90% покрытия тестами, но не для всего кода, я для того, который был добавлен в коммите.
Symfony
Laravel
- Выступление Тейлора на Laracon US:
• Laravel 6 выйдет в августе
• Фреймворк перейдёт на Semver (компоненты уже)
• Новый брендинг
• Представлен Laravel Vapor — Платный сервис для развёртывания Laravel-приложений в инфраструктуре AWS: Lambda, RDS, CloudFront, S3, CloudWatch. Работает на кастомном рантайме (не SAM или Serverless.com). Описываете yaml, деплоите с помощью консольной утилиты, настраиваете и мониторите в веб-интерфейсе или CLI.
• Конспект доклада - Что такое AWS Lambda и как Laravel Vapor его использует.
- calebporzio/livewire — Фронтенд фреймворк для Laravel, который позволяет делать биндинги из Blade к PHP-классам и не писать дополнительного JS-кода. (Как работает под капотом не понял. Похоже, используется turbolinks. Поправьте, пожалуйста, кто смотрел).
- orchestral/testbench — Пакет для упрощения тестирования при разработке собственных пакетов для Laravel.
- Рекомендации о том, как ускорить написание тестов для Laravel-приложений.
- Laravel Event Projector и концепция порождения событий.
Yii
Async PHP
Serverless
Материалы для обучения
Аудио/Видео
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 160