- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

PHP-Дайджест № 192 (2 – 16 ноября 2020) - 2 Новости и релизы

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

  • [Draft] Closure self reference [14] — Ранний черновик на обсуждении. Предлагается в замыканиях добавить псевдопеременную $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 [15] — Концепт синтаксиса ::function (или ::fn) для получения полного неймспейса и имени функции по аналогии с ::class. Подобное предложение обсуждалось раньше и имеет проблемы [16], но вполне вероятно будет принято.
  • [Discussion] Alias for `int|float` [17] — Обсуждалась возможность ввести псевдоним number или numeric для объединенного типа int | float. В комментариях указали, что уж лучше позже сделать полноценные алиасы для типов как в TypeScript: type Number = Foo|Bar;.

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

  • mnavarrocarter/php-fetch [18] — Порт fetch WebApi на PHP без сторонних зависимостей. Лаконичный HTTP-клиент в одной функции:
    Скрытый текст

    use function MNCHttpfetch;
    
    $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 [19] — Поможет сгенерировать полноценную электронную книгу в PDF из markdown-файлов.
  • i582/phpstats [20] — Инструмент для сбора метрик кода и графов зависимостей для PHP. Реализован на базе VKCOM/noverify [21], то есть на Go.
  • mihaeu/dephpend [22] — Инструмент статического анализа, который поможет выявить проблемы в архитектуре путем анализа зависимостей классов.
  • httpsoft/http-message [23] — Строгая и быстрая реализация стандартов #PSR-7 [24] и #PSR-17 [25].
  • spatie/crypto [26] — Небольшая обертка над openssl для шифрования данных с помощью приватного/публичного ключа. Вводный пост [27].
  • icanhazstring/systemctl-php [28] — PHP-обертка над systemctl.

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

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

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

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

phpstorm PhpStorm

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

PHP-Дайджест № 192 (2 – 16 ноября 2020) - 22 Аудио/Видео

PHP-Дайджест № 192 (2 – 16 ноября 2020) - 30 Занимательное

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

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

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

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

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

Автор: Роман Пронский

Источник [77]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/php-2/358887

Ссылки в тексте:

[1] PHP 8.0 RC 4: https://www.php.net/archive/2020.php#2020-11-12-1

[2] про атрибуты: https://platform.sh/blog/2020/php-8-0-feature-focus-attributes/

[3] объявление свойств в конструкторе: https://platform.sh/blog/2020/php-80-feature-focus-constructor-property-promotion/

[4] Видеокурс по основным фичам PHP 8 от Spatie: https://spatie.be/videos/front-line-php

[5] оператор `@` не будет подавлять фатальные ошибки: https://php.watch/versions/8.0/fatal-error-suppression

[6] О WeakMap в PHP 8 с примерами реального применения: https://php.watch/articles/practical-weakmap

[7] Как сконфигурировать JIT в PHP 8: https://stitcher.io/blog/php-8-jit-setup

[8] FriendsOfPHP/pickle: https://github.com/FriendsOfPHP/pickle

[9] phpcommunity.ru: https://phpcommunity.ru/

[10] Полезные привычки программиста после 30, MySQL vs Postgres и как поговорить об этом в субботу: https://habr.com/ru/company/skyeng/blog/527156/

[11] Как обстоят дела с PHP в Краснодаре (и не только): https://habr.com/ru/company/skyeng/blog/526146/

[12] PHP-митап Иннополис онлайн, 19 ноября: https://oez-innopolis.timepad.ru/event/1471081/

[13] Online-митап по PHP от SimbirSoft, 20 ноября: https://simbirsoft.timepad.ru/event/1467649/

[14] [Draft] Closure self reference: https://wiki.php.net/rfc/closure_self_reference

[15] [PR] Support for <func>::function syntax: https://github.com/adsr/php-src/commit/07bb24243022ccef5823f6977d231f3535a48a07

[16] проблемы: https://externals.io/message/112201#112212

[17] [Discussion] Alias for `int|float`: https://externals.io/message/112209

[18] mnavarrocarter/php-fetch: https://github.com/mnavarrocarter/php-fetch

[19] themsaid/ibis: https://github.com/themsaid/ibis

[20] i582/phpstats: https://github.com/i582/phpstats

[21] VKCOM/noverify: https://github.com/VKCOM/noverify

[22] mihaeu/dephpend: https://github.com/mihaeu/dephpend

[23] httpsoft/http-message: https://github.com/httpsoft/http-message

[24] #PSR-7: https://pronskiy.com/php-digest/?q=PSR-7

[25] #PSR-17: https://pronskiy.com/php-digest/?q=PSR-17

[26] spatie/crypto: https://github.com/spatie/crypto

[27] пост: https://freek.dev/1829-encrypting-and-signing-data-using-privatepublic-keys-in-php

[28] icanhazstring/systemctl-php: https://github.com/icanhazstring/systemctl-php

[29] Symfony Panther: PHP-библиотека для тестирования из браузера и парсинга веб-страниц: https://phpprofi.ru/blogs/post/106

[30] Что нового будет в Symfony 5.2 : https://symfony.com/blog/symfony-5-2-curated-new-features

[31] Несколько видеотуториалов по Symfony: https://www.youtube.com/playlist?list=PLQH1-k79HB39w7dmGtLj4JGJ7HoucbcMx

[32] Неделя Symfony #723 (9-15 ноября 2020): https://symfony.com/blog/a-week-of-symfony-724-9-15-november-2020

[33] laravel/breeze: https://github.com/laravel/breeze

[34] Видеообзор пакета: https://www.youtube.com/watch?v=dofUcI1PkUA

[35] spatie/laravel-settings: https://github.com/spatie/laravel-settings

[36] пост: https://freek.dev/1828-store-strongly-typed-settings-in-a-laravel-app

[37] ksassnowski/venture: https://github.com/ksassnowski/venture

[38] Laravel Podcast S4:E17: https://laravelpodcast.simplecast.com/episodes/the-service-container-with-christoph-rumpel

[39] об обновлении пакета spatie/laravel-event-sourcing на PHP 8: https://www.youtube.com/watch?v=X3fmQ5Rs9GY

[40] Обзор плагина Laravel Idea: https://www.youtube.com/watch?v=o5WJIS9yWCo

[41] Laravel–Дайджест (2–8 ноября 2020): https://habr.com/ru/post/526934/

[42] Новости Yii 2020, выпуск 7: https://habr.com/ru/post/527634/

[43] clue/reactphp-term: https://github.com/clue/reactphp-term

[44] clue/reactphp-utf8: https://github.com/clue/reactphp-utf8

[45] PhpStorm 2020.3 EAP #6: https://blog.jetbrains.com/phpstorm/2020/11/phpstorm-2020-3-eap-6/

[46] Подборка трюков и советов по PhpStorm в твитах: https://twitter.com/i/events/1268886882013917184

[47] IntelliJ плагин для Alpine.js: https://github.com/inxilpro/IntellijAlpine

[48] Elephpant Progress Bar: https://plugins.jetbrains.com/plugin/15291-elephpant-progress-bar

[49] ВКонтакте снова выкладывает: https://habr.com/ru/company/vk/blog/527420/

[50] VKCOM/kphp: https://github.com/vkcom/kphp

[51] в канале: https://t.me/phpdigest/193

[52] Как разрабатывать на PHP 7.4 и деплоить на PHP 7.1: https://blog.logrocket.com/coding-in-php-7-4-and-deploying-to-7-1-via-rector-and-github-actions/

[53] rectorphp/rector: https://github.com/rectorphp/rector/

[54] О поддержке атрибутов PHP 8 в Psalm: https://psalm.dev/articles/php-8-attributes

[55] php-fig-rectified/fig-rectified-standards: https://github.com/php-fig-rectified/fig-rectified-standards

[56] PSR-2-R: https://github.com/php-fig-rectified/fig-rectified-standards/blob/master/PSR-2-R-coding-style-guide.md

[57] Episode 69: Short Functions: https://phpinternals.news/69

[58] Larry Garfield: https://twitter.com/crell

[59] однострочные именованные функции / методы: https://wiki.php.net/rfc/short-functions

[60] Episode 70: Explicit Octal Literal: https://phpinternals.news/70

[61] George Peter Banyard: https://twitter.com/Girgias

[62] восьмеричных чисел в PHP: https://wiki.php.net/rfc/explicit_octal_notation

[63] ОНТИКО подкаст: https://anchor.fm/ontico/episodes/ep-em0h40

[64] Damien Seguy — Modernize your PHP with Exakat: https://youtu.be/XKjiAWxwFR0?t=1643

[65] Wim Godden — Why and How of moving to PHP 8: https://youtu.be/XKjiAWxwFR0?t=6392

[66] О создании дев-окружения для PHP с помощью Docker Compose: https://www.youtube.com/watch?v=BFJe-uxB_Nk

[67] Александр Макаров – Yii: уроки прошлого и будущее: https://youtu.be/MuVMe7oMoyM?t=160

[68] Антон Титов – Cycle ORM и графы: https://youtu.be/MuVMe7oMoyM?t=3419

[69] Дмитрий Елисеев — Выбор фреймворка для ентерпрайза: https://youtu.be/MuVMe7oMoyM?t=5872

[70] vincentpontier.com/elephpant/: https://www.vincentpontier.com/elephpant/

[71] личку хабра: https://habrahabr.ru/conversations/pronskiy/

[72] телеграм: https://t.me/pronskiy

[73] PHP Digest: https://t.me/phpdigest

[74] Прислать ссылку: https://bit.ly/php-digest-add-link

[75] Поиск ссылок по всем дайджестам: https://pronskiy.com/php-digest/

[76] Предыдущий выпуск: PHP-Дайджест № 191: https://habr.com/ru/post/526098/

[77] Источник: https://habr.com/ru/post/528256/?utm_source=habrahabr&utm_medium=rss&utm_campaign=528256