PHP-Дайджест № 184 (6 – 20 июля 2020)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Свежая подборка со ссылками на новости и материалы. В выпуске: Что будет с поддержкой PHP на Windows, PHP 8 Alpha 2, ReactPHP — официально продакшн-реди, 2 новых RFC предложения и 6 на голосовании, порция полезных инструментов, статьи, видео и подкасты.

Приятного чтения!



Новости и релизы


  • PHP 8.0.0 Alpha 2 — Заморозка фич запланирована на 4 августа. Учитывая регламент с 2-недельным обсуждением и голосованием, это значит, что добавиться могут только фичи, которые уже в обсуждении/голосовании.
  • PHP 7.4.8, PHP 7.3.20, PHP 7.2.32 — Секьюрити релизы для Windows, исправляющие уязвимость CVE-2020-8169 в libcurl. Для прочих систем — обычный багфикс.
  • PHP Russia 2020, 29 ноября, Москва — Дату и место определили — отметим релиз PHP 8 вместе!
  • Microsoft, Windows и поддержка PHP — Сначала представитель Microsoft написал, что компания продолжит поддерживать разработку и сборку PHP под Windows для версий 7.2, 7.3 и 7.4 до тех пор, пока они официально поддерживаются. Но не будет поддерживать разработку PHP для Windows начиная с версии 8.0.

    Позже он уточнил, что Microsoft предоставляла билд-инфраструктуру для сообщества PHP, а после ежегодного пересмотра бюджетов решили, что не будут этого делать. И хотя они больше не будут заниматься билдами PHP для Windows, тем не менее, останутся вовлечены в PHP, продолжат поддерживать PHP-разработчиков и сотрудничество с сообществом по секьюрити-фиксам.

    Это подтвердил Joe Watkins, который вместе с Никитой и настраивал все пайпланы в Azure:

PHP Internals


PHP 8.0


  • check [RFC] Match expression v2 — Пара отличных постов с подробным описанием нового выражения: match или switch и о выражении match со сравнительной таблицей.

    К вопросу о синтаксисе или почему =>, а не : — принятый синтаксис привычен для match-выражений и используется в других языках, например, в точности такой же в C#, Rust, Scala, а похожий (->) в Java и Kotlin.
  • [RFC] StackFrame class — Сейчас функция debug_backtrace() возвращает стек вызовов в виде массива массивов. Предлагается возвращать массив объектов StackFrame, который реализует ArrayAccess.
  • cross [RFC] Rename T_PAAMAYIM_NEKUDOTAYIM to T_DOUBLE_COLON — Предложение отклонено, но в 8.1 планируется полностью убрать имена токенов в сообщениях об ошибках.

Целая пачка предложений находится на стадии голосования и, похоже, все пройдут:

  • [RFC] Named Arguments49:17 Голосование по именованным аргументам вызвало немало споров и поляризовало сообщество.

    Те, кто против опасаются проблем с обратной совместимостью и раздутыми API.

    В поддержку предложения отличный пост зачем нужны именованные аргументы в PHP. А также подробный ответ Никиты в Internals.

    И пример использования вместе с объявлением свойств в конструкторе:

    Скрытый текст
    Сейчас:

    В PHP 8 с именованными аргументами:

  • [RFC] Treat namespaced names as single token28:3.
  • [RFC] Saner numeric strings20:3.
  • [RFC] Saner string to number comparisons31:1.
  • [RFC] Nullsafe operator44:2.
  • [RFC] Allow trailing comma in closure use lists44:0.

PHP 8.1


  • [RFC] Deprecations for PHP 8.1 — Несколько возможностей предлагается объявить устаревшими. Сначала изменения предлагалось внести изменения в PHP 8.0, но Nikolas Grekas посоветовал сделать релиз 8.0 без депрекейшнов, по аналогии с *.0 релизами Symfony.
  • [RFC] Objects can be declared falsifiable — В RFC предлагается добавить новый интерфейс Falsifiable с магическим методом __toBool(), который позволит объектам определять и объявлять себя истинными или ложными и соответственно использоваться как bool во всех подходящих контекстах.

    В тему интересная мысль о том, что интерфейсы с суффиксами -able — плохая идея:
  • FFI Improvements — Пока неофициальное предложение от камрада SerafimArts по исправлениям для FFI.
  • В PHP 8.1 планируется Enum — Ilija Tovilo написал, что планирует реализовать тип Enum в PHP 8.1. А Larry Garfield уже подготовил подробное исследование и сравнил перечисления и подобные им типы в разных языках.

Инструменты


  • JBZoo/Composer-Diff — Показывает разницу между двумя версиями файла composer.lock, помогает делать подробные changelog'и в MR/PR после «composer update». Прислал smetdenis.
  • JBZoo/Composer-Graph — Визуализация графа зависимости для composer.json.
  • ergebnis/factory-bot — Фабрика фикстур для Doctrine ORM. Подробнее об использовании и мотивации в посте.
  • phpsandbox.io — Аналог codepen/jsfiddle только для PHP. Веб-сайт для быстрого тестирования и демонстрации кода.

Symfony


  • habr Управление секретами в Symfony
  • habr REST API в Symfony (без FosRestBundle) с использованием JWT аутентификации. Часть 1
  • 10 преимуществ конфигов на PHP вместо YAML
  • Неделя Symfony #707 (13-19 July 2020)

Laravel


  • spatie/laravel-schedule-monitor — Пакет показывает статус задач выполняемых по расписанию (cron) в Laravel. Вводный пост.
  • Использование подписанных Laravel URL-адресов для добавления ссылок на действия в сообщениях электронной почты
  • Туториал по возможностям Illuminate\Http\Request.
  • habr Laravel-Дайджест (13–19 июля 2020)
  • video Запускаем Laravel на AWS Lambda с помощью Bref — и brefphp/laravel-bridge.
  • video Laravel Worldwide Meetup #1 — Ленивые коллекции в Laravel, Мощь очередей Laravel.

Yii


  • habr Новости Yii 2020, выпуск 5
  • tbreuss/yii2-inertia — Адаптер для использования Inertia.js с Yii 2.

Async PHP


  • reactphp/http 1.0 — Первый стабильный релиз асинхронных HTTP клиента и сервера на базе ReactPHP.

    Все основные компоненты экосистемы ReacPHP теперь официально продакшн-реди и имеют долгосрочную поддержку не менее 2х лет.

phpstorm PhpStorm


  • В PhpStorm будет поддержка Psalm и PHPStan — С большой вероятностью уже в релизе 2020.3, который выйдет в конце года.

    Плагины оформлены в виде опенсорс-проектов на GitHub JetBrains/phpstorm-psalm-plugin и JetBrains/phpstorm-phpstan-plugin. Можно наблюдать и участвовать в процессе, или использовать в качестве источника вдохновения для своих плагинов.
  • Общие (расшаренные) индексы в IDE от JetBrains — С помощью нового плагина можно использовать предварительно сгенерированный индекс для проекта. В будущем можно будет считать индекс для пакета и поставлять его вместе с релизом.
  • PhpStorm, But Better — Tips & Tricks Newsletter — Рассылка с советами и трюками по PhpStorm. Уже доступен первый выпуск.
  • video Новое видео от Christoph Rumpel: О плагинах PhpStorm для работы с Laravel.
  • PhpStorm 2020.2 Beta — До релиза осталось совсем недолго. Обзор основных фич уже можно посмотреть в серии видеороликов What’s Coming in PhpStorm 2020.2.

Материалы для обучения


  • Serverless LAMP: заменяем веб-сервер.
  • GitHub Actions как CI и PHP проектов.
  • habr Inertia.js – современный монолит.
  • habr readable — еще один линтер для PHP, но в этот раз на JS.
  • habr Как я писал кодогенератор на PHP и что из этого получилось.
  • habr POST запрос, составное содержимое (multipart/form-data).

Аудио/Видео


  • videoru Открытое собеседование PHP Point #1: Валентин Удальцов vs Патрик Фельдеш.
  • audioru Подкаст Между скобок № 10: Владимир Янц — Нужны ли Unit-тесты.
  • video Еще видео с PHP fwdays 2020: Никита Попов — What’s new in PHP 8.0?, Интервью с Jordi Boggiano, ru Макс Рафалко — Принципы проектирования пакетов на практике, Derick Rethans — Introduction to PHP Extensions.
  • video Интервью с Marco Pivetta про опенсорс в формате стрима.
  • audio PHP Internals News #61 — С Никитой Поповым о стабильной сортировке в PHP 8.
  • audio PHP Internals News #62 — С George Peter Banyard об изменениях обработки строк с числами.



Спасибо за внимание!

Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.

Больше новостей и комментариев в Telegram-канале PHP Digest.

Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 183

Источник: https://habr.com/ru/post/511686/


Интересные статьи

Интересные статьи

Подборка новых статей по фреймворку Laravel. Разберемся как работает шифрование во фреймворке. Аутентифицируем пользователя по отпечатку пальца. Развернём приложение по методу zero-do...
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него. Читать дальше →
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него. Читать дальше →
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него. Читать дальше →
Свежая подборка со ссылками на новости и материалы. В выпуске: обновления PHP и Composer 1.10, переносы конференций, 3 новых RFC предложения из PHP Internals, порция полезных инструментов, виде...