- PVSM.RU - https://www.pvsm.ru -
Парад релизов: обновление языка — 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.watch [4]
Наиболее заметные изменения:
• Именованные аргументы [5]
• Атрибуты [6]
• Объединенные типы [7]
• Объявление свойств в конструкторе [8]
• Выражение match [9]
• Оператор nullsafe [10]
• Улучшенное сравнение строк и чисел [11]
• Ошибки согласованности типов для встроенных функций [12]
• JIT [13]
Максимально полный список изменений есть в документе php-src/UPGRADING [14]
Документация по большинству изменений еще в процессе [15]. Присоединиться к ее дополнению можно отправляя пул-реквесты в репозиторий php/doc-en [16].
А пока можно посмотреть обзоры релиза:
Видео
С выходом 8.0 закончился [29] период поддержки PHP 7.2, а PHP 7.3 перешел в режим только секьюрити фиксов. Вот инструкция как установить PHP 8.0 [30] на Ubuntu, Debian, CentOS, macOS и в Docker.
Для старта достаточно одной опции xdebug.mode [32], а дефолтный порт сменен на 9003, чтоб не было конфликта с PHP-FPM. Подробнее в руководстве по обновлению [33].
Сравнительные бенчмарки Xdebug 2 и Xdebug 3 [34] показывают значительный прирост производительности. Для сбора покрытия он даже быстрее, чем phpdbg, хоть и медленнее PCOV.
Statement
в новый Result
..
Ранее эта же проблема обсуждалась, когда Марко 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.
0o
.
0o16 === 14; // true
016 === 0o16; // true
debug_backtrace()
для удобной работы со стеком вызовов.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку хабра [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
Нажмите здесь для печати.