PHP-Дайджест № 153 (25 марта – 8 апреля 2019) +64



Свежая подборка со ссылками на новости и материалы. В выпуске: принят PSR-14 Event Dispatcher, JIT в PHP 8, тройка RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое.

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



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


  • PHP 7.3.4
  • PHP 7.2.17
  • PHP 7.1.28
  • Packagist.org переезжает на AWS
  • habr PhpStorm 2019.1 — Отладка шаблонов Twig и Blade, поиск мертвого кода, улучшенное автодополнение и многое другое.
  • Принят PSR-14 Event Dispatcher — Новый стандарт регламентирует работу с событиями в приложении. Документ определяет три интерфейса: EventDispatcherInterface, StoppableEventInterface и ListenerProviderInterface, а также описывает характеристики, которым должны соответствовать все элементы и рекомендации по реализации. Подробнее можно прочитать в серии постов от одного из участников рабочей группы стандарта Ларри Гарфильда.
    Примечательно, что новый диспатчер в Symfony 4.3, по сути, совместим со стандартом, но как минимум из-за использования тайпхинта object, который доступен только в PHP 7.2+, использовать стандарт непосредственно в Symfony пока нельзя.
    Другой пример реализации стандарта yiisoft/event-dispatcher, вероятно, будет использоваться в Yii 3.

PHP Internals


  • [RFC] JIT — Предложение принято для PHP 8.0, а вот идея включить возможность в экспериментальном режиме в PHP 7.4 не нашла поддержки.
    В тему отличная статья Joe Watkins о том, что такое JIT вообще и что даст его реализация для PHP.
  • [RFC] Change the precedence of the concatenation operator — На данный момент операторы конкатенации . и математические +, - имеют одинаковый приоритет и выполняются слева направо. Предлагается понизить приоритет конкатенации:
    Скрытый текст
    echo "sum: " . $a + $b;
     
    // текущее поведение
    echo ("sum: " . $a) + $b;
     
    // предлагаемое поведение
    echo "sum :" . ($a + $b);
    
  • [RFC] Nullable Casting — При кастинге в примитивный тип предлагается сделать возможность кастить в null, то есть возможность использовать (?int)$x помимо (int)$x.
  • [RFC] Spread Operator in Array Expression — Снова предлагается добавить оператор ... для массивов. В обновленном предложении убрана поддержка массивов с нечисловыми ключами.
    Скрытый текст
    $parts = ['apple', 'pear'];
    $fruits = ['banana', 'orange', ...$parts, 'watermelon'];
    // ['banana', 'orange', 'apple', 'pear', 'watermelon'];
    
  • video Подкаст PHP Internals News #4: Short Arrow Functions with Nikita Popov, #3: Abolish Narrow Margins and Weak References with Joe Watkins

Инструменты


  • ivanakimov/hashids.php — Удобная библиотека для обфускации целочисленных идентификаторов.
  • smalot/pdfparser — Библиотека для парсинга PDF-файлов и извлечения информации.
  • YOURLS/YOURLS — Сервис сокращения ссылок.
  • cyrus-and/fracker — Инструмент позволяет в удобном виде отслеживать вызовы функций в PHP и будет полезен для исследователей безопасности.
  • wasmerio/php-ext-wasm — Экспериментальное расширение, которое позволяет запускать бинарники WebAssembly прямо из PHP, подгружая их динамически. В последней версии автор увеличил производительность в 29 раз и теперь модули выполняются уже быстрее, чем аналогичные реализованные на PHP.

Symfony



Laravel



Yii


  • Preparing Yii for the long run — Теперь фреймворк можно официально поддержать материально. Особенно актуально для тех, у кого мало времени, но поддержать хочется.
  • Yii development notes #27

Async PHP



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




Занимательное



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

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

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

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




К сожалению, не доступен сервер mySQL