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

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

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

Парад релизов: обновление языка — PHP 8.0, а также Xdebug 3, DBAL 3.0, Bref 1.0, Symfony 5.2, Flysystem 2.0. Первый принятый RFC для PHP 8.1, долгосрочная поддержка PHPUnit, порция полезных инструментов, подкасты, стримы, статьи.

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

PHP 8

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

  • Xdebug 3 [31] — Большое обновление популярного отладчика. Теперь он быстрее в работе и значительно проще в конфигурации.

    Для старта достаточно одной опции xdebug.mode [32], а дефолтный порт сменен на 9003, чтоб не было конфликта с PHP-FPM. Подробнее в руководстве по обновлению [33].

    Сравнительные бенчмарки Xdebug 2 и Xdebug 3 [34] показывают значительный прирост производительности. Для сбора покрытия он даже быстрее, чем phpdbg, хоть и медленнее PCOV.

  • Bref 1.0 [35] — Релиз инструмента, который облегчает создание serverless-приложений на PHP и AWS Lambda. Кстати, теперь с поддержкой WebSocket — удержание соединения берет на себя API Gateway.
  • doctrine/dbal 3.0 [36] — После 10 лет с выхода DBAL 2.0 наконец-то мажорное обновление популярной библиотеки для работы с базами данных. Короткий обзор есть в анонсе релиза [37]. Главные изменения касаются отвязки DBAL от PDO. Все fetch-методы перенесены из класса Statement в новый Result.
  • thephpleague/flysystem 2.0 [38] — Обновление библиотеки, абстрагирующей работу с файловыми системами. Что нового в версии 2. [39]
  • PHP 7.4.13 [40]
  • PHP 7.3.25 [41]
  • PHP-Дайджест № 193 (16 – 30 ноября 2020) - 10 В твиттере продолжились споры о том, стоит ли поддерживать старые версии PHP в опенсорс инструментах. Никита написал, что инструменты, в которых минимальная версия PHP повышается слишком резко, в действительности приносят больше проблем на пути к обновлению PHP.

    .
    Ранее эта же проблема обсуждалась, когда Марко Ocramius бампнул версию в своем пакете Ocramius/PackageVersions [42] до 7.4 (уже и до 8.0). В результате чего в Composer 2 пакет заменили на форк composer/package-versions-deprecated [43].

    Так или иначе, а PHPUnit 9 и PHPUnit 8.5 получат Life Support [44]. Это значит, что в них будет гарантирована работа на PHP 7.3 (7.2 соответственно) и всех последующих версиях PHP.

PHP-Дайджест № 193 (16 – 30 ноября 2020) - 11 PHP Internals

  • check [RFC] Explicit octal integer literal notation [45] — Не успели выпустить PHP 8.0, а уже принят первый RFC для PHP 8.1! В следующей версии языка восьмеричные числа можно будет записывать с префиксом 0o.
    0o16 === 14; // true
    016 === 0o16; // true
    

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

  • phpsandbox.io [46] — Аналог codepen/jsfiddle только для PHP. Веб-сайт для быстрого тестирования и демонстрации кода. Кроме голого PHP можно сделать код на Laravel, ReactPHP или импортировать любой проект с Гитхаба.
  • beyondcode/httpdump [47] — Приложение на Laravel для отладки водящих HTTP-запросов (отладка веб-хуков и т.п.). Создает случайные URL и дампит в красивом виде все запросы к ним. Демо httpdump.app [48].
  • clue/php-socket-raw [49] — Легковесная ООП-обертка для низкоуровневого расширения сокетов PHP (ext-sockets).
  • zenstruck/foundry [50] — Фабрика для создания удобных фикстур с автодополнением в IDE для Symfony и Doctrine.
  • spatie/backtrace [51] — Обертка над debug_backtrace() для удобной работы со стеком вызовов.
  • nette/tracy [52] — Инструмент для отладки: дебагбар, красивые ексепшены, логирование, профилирование, все в одном.
  • JetBrains/phpstorm-attributes [53] — В PhpStorm 2020.3 будут из коробки доступны несколько атрибутов PHP 8. Теперь они вынесены в отдельный пакет.

PHP-Дайджест № 193 (16 – 30 ноября 2020) - 14 Symfony

PHP-Дайджест № 193 (16 – 30 ноября 2020) - 15 Laravel

PHP-Дайджест № 193 (16 – 30 ноября 2020) - 18 Разное

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

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

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

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

Прислать ссылку [103]
Поиск ссылок по всем дайджестам [104]
Предыдущий выпуск: PHP-Дайджест № 192 [105]

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

Источник [106]


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

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

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

[1] PHP 8.0.0: https://www.php.net/releases/8.0/ru.php?lang=ru

[2] Gabriel Caruso: https://twitter.com/carusogabriel

[3] Sara Golemon: https://phpc.social/@pollita

[4] php.watch: https://php.watch/articles/php80-posters

[5] Именованные аргументы: https://www.php.net/releases/8.0/ru.php?lang=ru#named-arguments

[6] Атрибуты: https://www.php.net/releases/8.0/ru.php?lang=ru#attributes

[7] Объединенные типы: https://www.php.net/manual/ru/language.types.declarations.php#language.types.declarations.union

[8] Объявление свойств в конструкторе: https://www.php.net/manual/ru/language.oop5.decon.php#language.oop5.decon.constructor.promotion

[9] Выражение match: https://www.php.net/manual/ru/control-structures.match.php

[10] Оператор nullsafe: https://www.php.net/releases/8.0/ru.php?lang=ru#nullsafe-operator

[11] Улучшенное сравнение строк и чисел: https://www.php.net/releases/8.0/ru.php?lang=ru#saner-string-to-number-comparisons

[12] Ошибки согласованности типов для встроенных функций: https://www.php.net/releases/8.0/ru.php?lang=ru#consistent-type-errors-for-internal-functions

[13] JIT: https://www.php.net/releases/8.0/en.php#:~:text=Just-In-Time%20compilation

[14] php-src/UPGRADING: https://github.com/php/php-src/blob/PHP-8.0/UPGRADING

[15] еще в процессе: https://github.com/php/php-tasks/issues/26

[16] php/doc-en: https://github.com/php/doc-en

[17] PHP 8.0: What's New and Changed: https://php.watch/versions/8.0

[18] What's new in PHP 8: https://stitcher.io/blog/new-in-php-8

[19] PHP 8: before and after: https://stitcher.io/blog/php-8-before-and-after

[20] PHP 8 — try out all new features: https://pociot.dev/32-php-8-try-out-all-new-features

[21] Перевод: https://habr.com/ru/company/mailru/blog/525614/

[22] Использование PHP 8 в PhpStorm 2020.3: https://blog.jetbrains.com/phpstorm/2020/10/phpstorm-2020-3-early-access-program-is-now-open/

[23] PHP 8 — Что нового?: https://habr.com/ru/post/526220/

[24] Обзор от Валентина Удальцова: https://youtu.be/QSszmWIrRyw?t=1745

[25] Laracasts: PHP 8 Crash Course: https://laracasts.com/series/php8-crash-course

[26] Jeffrey Way: https://twitter.com/jeffrey_way

[27] Серия видеороликов по всем новым фичам: https://www.youtube.com/playlist?list=PLjzBMxW2XGTwEwWumYBaFHy1z4W32TcjU

[28] Видеокурс по новым фичам: https://beyondco.de/course/whats-new-in-php-8/new-features/union-types

[29] закончился: https://www.php.net/supported-versions.php

[30] как установить PHP 8.0: https://www.colinodell.com/blog/202011/how-install-php-80

[31] Xdebug 3: https://xdebug.org/announcements/2020-11-25

[32] xdebug.mode: https://xdebug.org/docs/all_settings#mode

[33] руководстве по обновлению: https://xdebug.org/docs/upgrade_guide

[34] бенчмарки Xdebug 2 и Xdebug 3: https://php.watch/articles/xdebug2-vs-3-benchmark

[35] Bref 1.0: https://bref.sh/docs/news/01-bref-1.0.html

[36] doctrine/dbal 3.0: https://github.com/doctrine/dbal/releases/tag/3.0.0

[37] анонсе релиза: https://www.doctrine-project.org/2020/11/17/dbal-3.0.0.html

[38] thephpleague/flysystem 2.0: https://github.com/thephpleague/flysystem

[39] Что нового в версии 2.: https://flysystem.thephpleague.com/v2/docs/what-is-new/

[40] PHP 7.4.13: https://www.php.net/ChangeLog-7.php#7.4.13

[41] PHP 7.3.25: https://www.php.net/ChangeLog-7.php#7.3.25

[42] Ocramius/PackageVersions: https://github.com/Ocramius/PackageVersions

[43] composer/package-versions-deprecated: https://github.com/composer/package-versions-deprecated

[44] получат Life Support: https://github.com/sebastianbergmann/phpunit/issues/4533

[45] [RFC] Explicit octal integer literal notation: https://wiki.php.net/rfc/explicit_octal_notation

[46] phpsandbox.io: https://phpsandbox.io/create

[47] beyondcode/httpdump: https://github.com/beyondcode/httpdump

[48] httpdump.app: https://httpdump.app/

[49] clue/php-socket-raw: https://github.com/clue/php-socket-raw

[50] zenstruck/foundry: https://github.com/zenstruck/foundry

[51] spatie/backtrace: https://github.com/spatie/backtrace

[52] nette/tracy: https://github.com/nette/tracy

[53] JetBrains/phpstorm-attributes: https://github.com/JetBrains/phpstorm-attributes

[54] Symfony 5.2: https://symfony.com/blog/symfony-5-2-0-released

[55] Список: https://symfony.com/blog/symfony-5-2-curated-new-features

[56] Бенчмарки Symfony 5.2 на PHP 8.0 и 7.4: https://developers.ibexa.co/blog/benchmarks-php-7.4-8.0-jit-opcache-preloading-symfony

[57] Неделя Symfony #726 (23-29 ноября 2020): https://symfony.com/blog/a-week-of-symfony-726-23-29-november-2020

[58] Защита от спама в Laravel приложениях: https://laracasts.com/blog/the-6-stages-of-spam

[59] Как отправлять уведомления в Laravel: https://christoph-rumpel.com/2020/11/laravel-real-time-notifications

[60] beyondcode/laravel-websockets: https://github.com/beyondcode/laravel-websockets

[61] laravel/echo: https://github.com/laravel/echo

[62] Laravel Internals #1: 18 Nov, 2020: https://www.youtube.com/watch?v=B57vddRZPC8

[63] Nuno Maduro: https://twitter.com/enunomaduro

[64] James Brooks: https://twitter.com/jbrooksuk

[65] Laravel–Дайджест (9–22 ноября 2020): https://habr.com/ru/post/529268/

[66] Front Line PHP: https://front-line-php.com/

[67] канале было: https://t.me/phpdigest/195

[68] Памятка по фишкам синтаксиса PHP 7.4 и 8: https://front-line-php.com/cheat-sheet

[69] Brent Roose пишет о том, как вести блог разработчику: https://stitcher.io/blogs-for-devs/01-intro

[70] PHP Tools — назад в 90е: https://balint-juhasz.medium.com/revive-php-tools-a-journey-to-the-90s-9cb51ef77d6d

[71] Как безопасно реализовать восстановление пароля на PHP: https://nicolasfar.medium.com/how-to-implement-password-recovery-securely-in-php-db2275ab3560

[72] PHP 7.4 FFI: Что вам нужно знать: https://jolicode.com/blog/php-7-4-ffi-what-you-need-to-know

[73] API для QA: тестируем фичи без доступа к коду: https://habr.com/ru/company/badoo/blog/528742/

[74] Ускоряем и стабилизируем автотесты на codeception + selenium: https://habr.com/ru/post/525984/

[75] Финальные классы в PHP, Java и других языках: https://habr.com/ru/company/funcorp/blog/529378/

[76] Сейчас я буду убеждать вас использовать статический анализ в PHP: https://habr.com/ru/company/skyeng/blog/529350/

[77] Между Скобок № 11: https://soundcloud.com/between-braces/11-valentin-udaltsov-staticheskiy-analiz

[78] PHP 8: что нового, туда ли двигается, что будет дальше: https://www.youtube.com/watch?v=QSszmWIrRyw&t=33s

[79] Пых: https://t.me/phpyh

[80] двух топовых: https://github.com/php/php-src/graphs/contributors?from=2016-01-07&to=2020-11-23&type=c

[81] Публичное собеседование: PHP-разработчик [Хекслет]: https://www.youtube.com/watch?v=7sT-4_R4prA

[82] PHP Point: https://www.youtube.com/c/PHPPoint/videos

[83] Подкаст Remote Talk: https://soundcloud.com/csssr/sergey-zhuk-bryansk-php-i-plokho-li-na-nyom-pisat-knigi-v-it-podkast-mezhdu-skobok

[84] Запись с митапа PHP NN #3: https://www.youtube.com/watch?v=pe3b0DHVnq8

[85] Доклады от краснодарского PHP-сообщества: https://www.youtube.com/watch?v=Uezd5ocJQ9I

[86] Как устроен деплой в Лайфхакере (Александр Нагорнов, Lifehacker.ru): https://www.youtube.com/watch?v=onSdhzcGzsU

[87] Вырастили легаси-мамонта и не смогли с ним жить (Андрей Мягков, Simtech Development): https://www.youtube.com/watch?v=gU-U-gv1tKg

[88] Чем страшны шутки со временем в PHP (Алексей Сундуков, ZeBrains): https://www.youtube.com/watch?v=bZoGeJBcMyY

[89] Как найти общий язык с API в микросервисах (Михаил Самаркин, Skyeng): https://www.youtube.com/watch?v=ZNsHfU_1l6A

[90] PHP Release Radar — Episode 1: Composer 2.0: https://www.youtube.com/watch?v=ZJFe8qq2-kQ

[91] Nils Adermann: https://twitter.com/naderman

[92] PHP Internals News #72 :: PHP 8.0 Celebrations!: https://phpinternals.news/72

[93] PHP Internals News #71: https://phpinternals.news/71

[94] __toArray(): https://wiki.php.net/rfc/to-array

[95] перегрузка операторов: https://github.com/php/pecl-php-operator

[96] readonly свойства: https://wiki.php.net/rfc/write_once_properties

[97] компактное присвоение для объектов: https://wiki.php.net/rfc/compact-object-property-assignment

[98] return if ($condition): https://wiki.php.net/rfc/conditional_break_continue_return

[99] модификаторы доступа на чтение и запись для свойств: https://wiki.php.net/rfc/property_write_visibility

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

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

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

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

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

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

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