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

PHP Дайджест № 221 (24 января – 7 февраля января 2022)

PHP Дайджест № 221 (24 января – 7 февраля января 2022) - 1

.

Подборка свежих новостей, инструментов, видео и материалов из мира PHP.

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

Этот дайджест подготовлен совместно с Insolita [1]. Если понравился выпуск, плюсаните пост, пожалуйста.

⚡️️ Новости

  • Официально начата работа над Coding style PER [2]
    Coding Style PER официально одобрен PHP-FIG и заменит PSR-12. Работы начаты в php-fig/per-coding-style [2].

    Это первый документ типа PER (PHP Evolving Recommendation) [3], то есть «живой» стандарт. Теперь не надо будет выпускать очередной PSR-стандарт каждый раз при добавлении нового синтаксиса в PHP. Вместо этого PER будет обновляться по SemVer [4].
    Спасибо samdark [5].

  • 2021 год в русскоговорящем PHP-сообществе [6]
    PHP Дайджест № 221 (24 января – 7 февраля января 2022) - 2

    Подводим итоги 2021 года в PHP-сообществе, живая трансляция на YouTube [7] 12 февраля 11:00 Мск/Минск, 10:00 Киев.

    На стриме будут: Александр Макаров, Валентин Удальцов, Кирилл Несмеянов, Адель Файзрахманов, Дмитрий Елисеев.

  • [RFC] Remove support for libmysql from mysqli [8]
    В PHP 8.2 будет убрана поддержка libmysql в mysqli. Вряд ли это кто-то заметит, потому что по умолчанию используется mysqlnd.

  • PhpStorm 2022.1 Early Access Program [9]
    Стартовала программа раннего доступа первого мажорного релиза IDE в этом году. Каждую неделю публикуем новые бесплатные для использования билды, в которых можно первым пощупать новые фичи.

    Фокус релиза — багфикс и производительность, но и без новых фич не обойдется. В первом билде обновления для метадаты .phpstorm.meta.php [10], улучшения для редактирования Markdown и другое.

  • [RFC] final class CollectionsDeque [11]
    В рамках инициативы по добавлению оптимизированных структур данных в PHP готово первое предложение.
    Deque — это двухсторонняя очередь, то есть элементы можно добавлять и удалять как в начало, так и в конец.

    Использовать можно везде, где были SplQueue или SplDoublyLinkedList и с ходу получить выигрыш в производительности, и уменьшить расход памяти. Также Deque актуален для долгоиграющих приложений, в которых используются большие массивы.

    Есть демо на WebAssembly: PHP 8.2 Deque RFC Demo [12].

    Скрытый текст

    $deque = new CollectionsDeque(['first', 'second', 'third']);
    foreach ($deque as $offset => $value) {
        if ($value === 'second') {
            $deque->shift();
        } elseif ($value === 'third') {
            $deque->push('fourth');
        }
    }
    

🛠 Инструменты

  • sj-i/php-profiler [13] — Сэмплирующий профайлер для PHP, который реализован на чистом PHP (FFI). Можно сгенерировать флейм-диаграммы, запустить вывод трейсов в режиме команды top и другое.
  • IvanGrigorov/VMValidator [14] — Коллекция аттрибутов-валидаторов.
  • mrsuh/php-var-sizeof [15] — Функция для получения размера памяти для любой переменной и обещает более точный результат по сравнению с memory_get_usage() [16]. Требует PHP >=7.4 с FFI.
  • spiral/framework [17] — Релиз long-running фреймворка теперь с поддержкой RoadRunner v2 и CycleORM v2.
  • Chetkov/php-clean-architecture [18] — Инструмент для измерения качества, упрощения анализа и автоматизации контроля архитектуры приложений на PHP.
  • Hi-Folks/statistics [19] — Пакет предоставляет набор разных статистических функций: медиана, мода, отклонение выборки и т.п.
  • php-soap [20] — В рамках организации разрабатываются инструменты для работы с SOAP. Встроенное в PHP расширение ext-soap давно не поддерживается, поэтому вместо него стоит использовать имплементации на чистом PHP: php-soap/ext-soap-engine [21].
  • williarin/wordpress-interop [22] — Пакет на основе Doctrine/DBAL для более удобного доступа к базе Вордпресса из других приложений на PHP.
  • Phel [23] — Функциональный язык программирования, который компилируется в PHP. Является диалектом Lisp и вдохновлен Clojure.
  • tuqqu/go-parser [24] — Парсер Golang на PHP 8.1. Транслирует Golang-код в AST. Применение пока не ясно.

PHP Дайджест № 221 (24 января – 7 февраля января 2022) - 3 Symfony

PHP Дайджест № 221 (24 января – 7 февраля января 2022) - 4 Laravel

📝 Статьи

📣 Сообщество

  • Mage-OS update January 2022 [60] — После анонса форка Magento, Adobe одумались и обещают развивать опенсорсную Magento и не депрекейтить монолит. Но вот на своих ресурсах упоминать опенсорс версию не будут.
  • PHP Russia 2022 [61] — Прием докладов открыт до 25 апреля 2022.
    Если вдруг у вас доклад не вписывается в темы на сайте [62], но тема всё-таки про PHP или на PHP — подавайте обязательно. Мы обожаем сюрпризы.
  • В PHP есть операторы с одной точкой, двумя, тремя и четырьмя. А как бы мог выглядеть с пятью?


Подписывайтесь на Telegram-канал PHP Digest [63].

Этот дайджест подготовлен совместно с Insolita [1]. Если вам понравился выпуск, подпишитесь на Юлию в твиттере [1] и поставьте плюс в пост, пожалуйста.

Заметили ошибку или опечатку? Сообщите в личку хабра [64] или телеграм [65].

Прислать ссылку можно через форму [66] или просто напишите мне в телеграм [65].
Поиск ссылок по всем дайджестам [67]
Предыдущий выпуск: PHP-Дайджест № 220 [68]

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

Источник [69]


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

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

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

[1] Insolita: https://twitter.com/DonnaInsolita

[2] Coding style PER: https://github.com/php-fig/per-coding-style

[3] типа PER (PHP Evolving Recommendation): https://www.php-fig.org/bylaws/per-workflow/

[4] SemVer: https://semver.org/lang/ru/

[5] samdark: https://habr.com/ru/users/samdark/

[6] 2021 год в русскоговорящем PHP-сообществе: https://phpcommunity.ru/2021-php

[7] на YouTube: https://www.youtube.com/watch?v=Nx39a7n9KIQ

[8] [RFC] Remove support for libmysql from mysqli: https://wiki.php.net/rfc/mysqli_support_for_libmysql

[9] PhpStorm 2022.1 Early Access Program: https://blog.jetbrains.com/phpstorm/2022/01/phpstorm-2022-1-early-access-program-is-open/

[10] .phpstorm.meta.php: https://www.jetbrains.com/help/phpstorm/ide-advanced-metadata.html

[11] [RFC] final class CollectionsDeque: https://wiki.php.net/rfc/deque

[12] PHP 8.2 Deque RFC Demo: https://tysonandre.github.io/php-rfc-demo/deque/

[13] sj-i/php-profiler: https://github.com/sj-i/php-profiler

[14] IvanGrigorov/VMValidator: https://github.com/IvanGrigorov/VMValidator

[15] mrsuh/php-var-sizeof: https://github.com/mrsuh/php-var-sizeof

[16] по сравнению с memory_get_usage(): https://github.com/mrsuh/php-var-sizeof#var_sizeof-vs-memory_get_usage

[17] spiral/framework: https://github.com/spiral/framework/releases/tag/2.9.0

[18] Chetkov/php-clean-architecture: https://github.com/Chetkov/php-clean-architecture

[19] Hi-Folks/statistics: https://github.com/Hi-Folks/statistics

[20] php-soap: https://github.com/php-soap

[21] php-soap/ext-soap-engine: https://github.com/php-soap/ext-soap-engine

[22] williarin/wordpress-interop: https://github.com/williarin/wordpress-interop

[23] Phel: https://github.com/phel-lang/phel-lang

[24] tuqqu/go-parser: https://github.com/tuqqu/go-parser

[25] CSRF уязвимость: https://symfony.com/blog/cve-2022-23601-csrf-token-missing-in-forms

[26] в GitHub Advisory Database: https://github.com/advisories/GHSA-vvmr-8829-6whx

[27] не могли обновиться: https://github.com/Roave/SecurityAdvisories/issues/90

[28] chrome: https://habr.com/ru/users/chrome/

[29] Light Kernel для приложений на symfony/console: https://tomasvotruba.com/blog/introducing-light-kernel-for-symfony-console-apps/

[30] 4 способа правильного внедрения сервисов в Symfony: https://medium.com/@OCharnyshevich/4-ways-to-inject-dependencies-in-symfony-that-you-probably-dont-know-about-65e8efe02af5

[31] Efficient JSON Streaming with Symfony and Doctrine: https://github.com/alexander-schranz/efficient-json-streaming-with-symfony-doctrine#efficient-json-streaming-with-symfony-and-doctrine

[32] violet-php/streaming-json-encoder: https://github.com/violet-php/streaming-json-encoder

[33] nicoverbruggen/phpmon: https://github.com/nicoverbruggen/phpmon

[34] cerbero90/eloquent-inspector: https://github.com/cerbero90/eloquent-inspector

[35] glhd/laravel-dumper: https://github.com/glhd/laravel-dumper

[36] tonysm/importmap-laravel: https://github.com/tonysm/importmap-laravel

[37] Importmaps: https://github.com/WICG/import-maps

[38] Safer Staging Environments with Blackhole Storage: https://laravel-news.com/safer-staging-environments-with-blackhole-storage

[39] BLACKHOLE: https://dev.mysql.com/doc/refman/8.0/en/blackhole-storage-engine.html

[40] Testing Laravel Environment Checks: https://downing.tech/posts/testing-laravel-environments

[41] Руководство по обновлению до Laravel 9: https://laravel.demiart.ru/upgrade-guide-to-laravel-9/

[42] LaravelProTips.com: https://laravelprotips.com/

[43] Laravel Worldwide Meetup:: https://www.youtube.com/watch?v=7XTbHVlJdIs

[44] Termwind: https://github.com/nunomaduro/termwind

[45] Inertia: https://github.com/inertiajs

[46] Laravel Origins: The Documentary (Trailer): https://www.youtube.com/watch?v=mH7cgoX3K0g

[47] Тейлор отвечает на разные вопросы: https://www.youtube.com/watch?v=FfFCzj6Ts0o

[48] Долгий путь оптимизации памяти и быстродействия композера: https://medium.com/@yanick.witschi/the-long-journey-of-making-phps-composer-memory-efficient-and-fast-63d12944aaa8

[49] Организация деплоя с помощью Ansible и Github Actions: https://laravel-news.com/deploy-your-php-app-with-ansible-and-github-actions

[50] Ускоряем array_merge(): https://www.exakat.io/en/speeding-up-array_merge/

[51] Потоковый HTTP ответ на PHP: https://itsrav.dev/articles/streaming-http-response-in-php-to-turn-long-running-process-into-realtime-experience

[52] Решаем проблему Supply Chain атак для экосистемы PHP: https://paragonie.com/blog/2022/01/solving-open-source-supply-chain-security-for-php-ecosystem

[53] Gossamer: https://gossamer.tools/

[54] Paseto: https://github.com/paragonie/paseto

[55] другие инструменты: https://github.com/paragonie

[56] Я протестировал 4 различных сервиса сбора отчетов об ошибках для PHP: https://betterprogramming.pub/i-tested-4-different-error-reporting-services-with-for-php-1a5228018c67

[57] Статический анализ и уже выросший проект: внедрять нельзя откладывать: https://habr.com/ru/company/rusprofile/blog/649257/

[58] Эффективная работа с ошибками в PHP-продукте: https://youtu.be/gU7_CKeOyGE?t=553

[59] Поиск по нескольким словам в проекте: https://t.me/phpyh/280

[60] Mage-OS update January 2022: https://www.mage-os.community/blog/mage-os-update-january-2022

[61] PHP Russia 2022: https://cfp.phprussia.ru/

[62] темы на сайте: https://cfp.phprussia.ru/#topics

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

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

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

[66] через форму: https://bit.ly/php-digest-add-link

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

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

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