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

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

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

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



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


  • PHP 8.0 RC 4 — Последний релиз-кандидат перед финальным выпуском PHP 8, который намечен на 26 ноября.

    Свежие материалы по PHP 8:
    • Обновление серии постов от Larry Garfield: про атрибуты и объявление свойств в конструкторе.
    • video Видеокурс по основным фичам PHP 8 от Spatie.
    • В PHP 8 оператор `@` не будет подавлять фатальные ошибки, а именно ошибки типов: E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR, E_RECOVERABLE_ERROR, E_PARSE.
    • О WeakMap в PHP 8 с примерами реального применения.
    • Как сконфигурировать JIT в PHP 8.


    Кроме того, в PHP 8 по умолчанию удален PECL. Из-за этого могут поломаться Dockerfile, в которых с его помощью устанавливались расширения. Вместо PECL можно использовать FriendsOfPHP/pickle.
    Скрытый текст
    RUN curl -L -o /tmp/pickle.phar https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar; \
        mv /tmp/pickle.phar /usr/local/bin/pickle; \
        chmod +x /usr/local/bin/pickle; \
        pickle install xdebug; \
    
    RUN echo "extension=xdebug.so" >> $PHP_INI_DIR/conf.d/php.ini; \
    

    Или так:
    RUN mkdir -p /usr/src/php/ext/xdebug && \
        curl -fsSL https://pecl.php.net/get/xdebug | \
        tar xvz -C "/usr/src/php/ext/xdebug" --strip 1 && docker-php-ext-install xdebug
    

  • phpcommunity.ru — PHP-сообщества в России, Беларуси, Украине.
    • Полезные привычки программиста после 30, MySQL vs Postgres и как поговорить об этом в субботу.
    • Как обстоят дела с PHP в Краснодаре (и не только).

    Ближайшие митапы: PHP-митап Иннополис онлайн, 19 ноября; Online-митап по PHP от SimbirSoft, 20 ноября.

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


  • ru Symfony Panther: PHP-библиотека для тестирования из браузера и парсинга веб-страниц.
  • Что нового будет в Symfony 5.2 .
  • video Несколько видеотуториалов по Symfony.
  • Неделя Symfony #723 (9-15 ноября 2020)

Laravel


  • laravel/breeze — Новый пакет от Тейлора. По сути, одна консольная команда для быстрого разворачивания приложения на Laravel + Tailwind CSS + контроллеры для аутентификации. video Видеообзор пакета.
  • spatie/laravel-settings — Позволяет работать с конфигом приложения в типизированном стиле. Вводный пост.
  • ksassnowski/venture — Инструмент позволяет строить сложные цепочки задач на основе системы очередей Laravel.
  • audio Laravel Podcast S4:E17 — C Christoph Rumpel про сервис-контейнер Laravel.
  • video Стрим об обновлении пакета spatie/laravel-event-sourcing на PHP 8.
  • video Обзор плагина Laravel Idea для PhpStorm.
  • ru Laravel–Дайджест (2–8 ноября 2020)

Yii


  • habr Новости Yii 2020, выпуск 7 — Релизы Yii 2, прогресс по Yii 3, важные вести о Yii 1 и другие новости.

Async PHP


  • clue/reactphp-term — Потоковый эмулятор терминала.
  • clue/reactphp-utf8 — Потоковый парсер UTF-8.

phpstorm PhpStorm


  • PhpStorm 2020.3 EAP #6 — В раннем доступе поддержка Tailwind CSS и Xdebug 3.
  • Подборка трюков и советов по PhpStorm в твитах.
  • IntelliJ плагин для Alpine.js — Добавляет автокомплит директив.
  • Elephpant Progress Bar — Заменяет прогресс бары на слоника.

Разное


  • habr ВКонтакте снова выкладывает VKCOM/kphp — Ребята из ВКонтакте заопенсорсили свой компилятор PHP. Коротко было в канале, а подробнее в анонсе на Хабре.
  • Как разрабатывать на PHP 7.4 и деплоить на PHP 7.1 с помощью rectorphp/rector GitHub Actions. Когда хочется использовать новые фичи языка, но обновить целевую систему нет возможности.
  • О поддержке атрибутов PHP 8 в Psalm.
  • php-fig-rectified/fig-rectified-standards — Попытка создать альтернативные стандарты. В частности, сделан PSR-2-R с табами вместо пробелов и скобками для классов и методов на одной строке с декларацией.

Аудио/Видео


  • PHP Internals News — подкаст, в котором Derick Rethans (Xdebug) берет интервью у авторов RFC.
    • audio Episode 69: Short Functions — C Larry Garfield про однострочные именованные функции / методы.
    • audio Episode 70: Explicit Octal Literal — C George Peter Banyard про запись восьмеричных чисел в PHP.

  • audio ОНТИКО подкаст — В первом выпуске в гостях Александр Макаров.
  • video PHPBenelux Virtual Meetup: Damien Seguy — Modernize your PHP with Exakat, Wim Godden — Why and How of moving to PHP 8.
  • video О создании дев-окружения для PHP с помощью Docker Compose.
  • videoru Митап «Фреймворки и инструменты PHP»: Александр Макаров – Yii: уроки прошлого и будущее, Антон Титов – Cycle ORM и графы, Дмитрий Елисеев — Выбор фреймворка для ентерпрайза.

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


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

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

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

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

Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 191
Источник: https://habr.com/ru/post/528256/


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

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

Всем привет! Продолжаем дайджесты новостей и других материалов о свободном и открытом ПО и немного о железе. Всё самое главное про пингвинов и не только, в России и мире. Инициатив...
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него. Читать дальше →
Перенос legacy-проекта на Laravel. Ускорение приложения на 80% с помощью Swoole. Оптимизация кода с помощью Debugbar. Логирование всех запросов к базе данных. Читать д...
Тема статьи навеяна результатами наблюдений за методикой создания шаблонов различными разработчиками, чьи проекты попадали мне на поддержку. Порой разобраться в, казалось бы, такой простой сущности ка...
Один из самых острых вопросов при разработке на Битрикс - это миграции базы данных. Какие же способы облегчить эту задачу есть на данный момент?