PHP-Дайджест № 192 (2 – 16 ноября 2020) +35


AliExpress RU&CIS


Свежая подборка со ссылками на новости и материалы. В выпуске: Последний релиз-кандидат PHP 8.0 перед финальным релизом и свежие материалы по PHP 8, RFC и обсуждения из PHP Internals, порция полезных инструментов, стримы, подкасты, статьи.

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


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



PHP Internals


  • [Draft] Closure self reference — Ранний черновик на обсуждении. Предлагается в замыканиях добавить псевдопеременную $lambda, которая указывает на само замыкание. По аналогии с $this для классов.
    $fibonacci = function (int $n) use (&$fibonacci) {
        if ($n === 0) return 0;
        if ($n === 1) return 1;
        return $fibonacci($n-1) + $fibonacci($n-2);
    };
    
    // =>
    
    $fibonacci = function (int $n) {
        if ($n === 0) return 0;
        if ($n === 1) return 1;
        return $lambda($n-1) + $lambda($n-2);
    };
    
  • [PR] Support for <func>::function syntax — Концепт синтаксиса ::function (или ::fn) для получения полного неймспейса и имени функции по аналогии с ::class. Подобное предложение обсуждалось раньше и имеет проблемы, но вполне вероятно будет принято.
  • [Discussion] Alias for `int|float` — Обсуждалась возможность ввести псевдоним number или numeric для объединенного типа int | float. В комментариях указали, что уж лучше позже сделать полноценные алиасы для типов как в TypeScript: type Number = Foo|Bar;.

Инструменты


  • mnavarrocarter/php-fetch — Порт fetch WebApi на PHP без сторонних зависимостей. Лаконичный HTTP-клиент в одной функции:
    Скрытый текст
    use function MNC\Http\fetch;
    
    $response = fetch('https://habr.com');
    
    echo $response->status()->code();   // 200
    
    echo buffer($response->body());
    // or
    while (($chunk = $response->body()->read()) !== null) {
        echo $chunk;
    }
    
  • themsaid/ibis — Поможет сгенерировать полноценную электронную книгу в PDF из markdown-файлов.
  • i582/phpstats — Инструмент для сбора метрик кода и графов зависимостей для PHP. Реализован на базе VKCOM/noverify, то есть на Go.
  • mihaeu/dephpend — Инструмент статического анализа, который поможет выявить проблемы в архитектуре путем анализа зависимостей классов.
  • httpsoft/http-message — Строгая и быстрая реализация стандартов #PSR-7 и #PSR-17.
  • spatie/crypto — Небольшая обертка над openssl для шифрования данных с помощью приватного/публичного ключа. Вводный пост.
  • icanhazstring/systemctl-php — PHP-обертка над systemctl.

Symfony



Laravel



Yii



Async PHP



phpstorm PhpStorm



Разное



Аудио/Видео



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


  • vincentpontier.com/elephpant/ — Официальный магазин слоников снова доступен! Можно заказать розового и синего.

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

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

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

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




Комментарии (9):

  1. VolCh
    /#22312064

    Порт fetch WebApi на PHP без сторонних зависимостей

    Вот зачем такое делают? Для привычности при переключении между языками? Или подготовка к компиляции PHP в wasm? )

    • Fantyk
      /#22319046

      Также странно видеть HTTP клиент без настройки timeout соединения. У автора какой-то свой опыт работы с сетью. Я бы смотрел на этот пакет лишь с целью ознакомиться.

      • pronskiy
        /#22319482

        Интересно было бы провести исследование о том, как часто используется опция таймаута. Мое предположение, что в 83% случаев используется дефолтное значение

        • VolCh
          /#22320218

          Давеча столкнулся, что в каком-то клиенте дефолтное было без таймаута...

  2. OnYourLips
    /#22315764

    php-fig-rectified/fig-rectified-standards — Попытка создать альтернативные стандарты. В частности, сделан PSR-2-R с табами вместо пробелов и скобками для классов и методов на одной строке с декларацией.

    rectified от слова rectum.


    laravel/breeze — Новый пакет от Тейлора. По сути, одна консольная команда для быстрого разворачивания приложения на Laravel + Tailwind CSS + контроллеры для аутентификации.

    Посмотрел на этот пакет и в недоумении: он пытается тесно склеить бекенд и фронт, хотя отрасль идет в обратном направлении. Rectified пакеты меньше недоумения вызывают.

  3. aliday
    /#22316298

    А где купить такого слона?

    • pronskiy
      /#22316300

      В конце дайджеста есть ссылка.