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


    Свежая подборка со ссылками на новости и материалы. В выпуске: принят 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

    • +65
    • 13.9k
    • 3
    Share post

    Comments 3

      +2
      Прикольный эмулятор java на php
        0
        А в чём суть symfony/mailer? Чем лучше swiftmailer? Ни документации, ни преимуществ. Просто потому, что новый?

      Only users with full accounts can post comments. Log in, please.