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


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

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 9

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

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

        +1

        А там автор в ридми как раз отвечает на этот вопрос https://github.com/mnavarrocarter/php-fetch#why-another-http-client


        По крайней мере, в этом больше смысла, чем в том, чтобы делать еще один PSR-18-совместимый клиент.

          0

          Спасибо, недоскроллил :(

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

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

              +1

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

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

          rectified от слова rectum.


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

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

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

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

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