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

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

Парад релизов: обновление языка — 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 8.0.0 — Долгожданный релиз языка доставлен строго по расписанию. Спасибо всем контрибьюторам и релиз-менеджерам Gabriel Caruso и Sara Golemon!

    Облако контрибьюторов PHP 8 от php.watch


    ru Наиболее заметные изменения:
    • Именованные аргументы
    • Атрибуты
    • Объединенные типы
    • Объявление свойств в конструкторе
    • Выражение match
    • Оператор nullsafe
    • Улучшенное сравнение строк и чисел
    • Ошибки согласованности типов для встроенных функций
    • JIT

    Максимально полный список изменений есть в документе php-src/UPGRADING

    Документация по большинству изменений еще в процессе. Присоединиться к ее дополнению можно отправляя пул-реквесты в репозиторий php/doc-en.

    А пока можно посмотреть обзоры релиза:
    • php.watch: PHP 8.0: What's New and Changed
    • stitcher.io: What's new in PHP 8
    • stitcher.io: PHP 8: before and after
    • PHP 8 — try out all new features — Обзор изменений с интерактивными демо от Marcel Pociot. habr Перевод.
    • Использование PHP 8 в PhpStorm 2020.3, который выйдет на этой неделе.
    • habr PHP 8 — Что нового?

    video Видео
    • ru Обзор Валентина Удальцова.
    • Laracasts: PHP 8 Crash Course — Шикарный курс по PHP 8 от Jeffrey Way.
    • Серия видеороликов по всем новым фичам от Spatie.
    • Видеокурс по новым фичам от Marcel Pociot и BeyondCode.

    С выходом 8.0 закончился период поддержки PHP 7.2, а PHP 7.3 перешел в режим только секьюрити фиксов. Вот инструкция как установить PHP 8.0 на Ubuntu, Debian, CentOS, macOS и в Docker.

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


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

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

    Сравнительные бенчмарки Xdebug 2 и Xdebug 3 показывают значительный прирост производительности x. Для сбора покрытия он даже быстрее, чем phpdbg, хоть и медленнее PCOV.
  • Bref 1.0 — Релиз инструмента, который облегчает создание serverless-приложений на PHP и AWS Lambda. Кстати, теперь с поддержкой WebSocket — удержание соединения берет на себя API Gateway.
  • doctrine/dbal 3.0 — После 10 лет с выхода DBAL 2.0 наконец-то мажорное обновление популярной библиотеки для работы с базами данных. Короткий обзор есть в анонсе релиза. Главные изменения касаются отвязки DBAL от PDO. Все fetch-методы перенесены из класса Statement в новый Result.
  • thephpleague/flysystem 2.0 — Обновление библиотеки, абстрагирующей работу с файловыми системами. Что нового в версии 2.
  • PHP 7.4.13
  • PHP 7.3.25
  • В твиттере продолжились споры о том, стоит ли поддерживать старые версии PHP в опенсорс инструментах. Никита написал, что инструменты, в которых минимальная версия PHP повышается слишком резко, в действительности приносят больше проблем на пути к обновлению PHP.
    .
    Ранее эта же проблема обсуждалась, когда Марко Ocramius бампнул версию в своем пакете Ocramius/PackageVersions до 7.4 (уже и до 8.0). В результате чего в Composer 2 пакет заменили на форк composer/package-versions-deprecated.

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


PHP Internals


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

Инструменты


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

Symfony


  • Symfony 5.2 — Список новых возможностей.
  • Бенчмарки Symfony 5.2 на PHP 8.0 и 7.4.
  • Неделя Symfony #726 (23-29 ноября 2020)

Laravel


  • Защита от спама в Laravel приложениях
  • Как отправлять уведомления в Laravel с помощью пакетов beyondcode/laravel-websockets и laravel/echo.
  • video Laravel Internals #1: 18 Nov, 2020 — Стрим с Nuno Maduro и James Brooks, участниками команды Laravel, о новостях в разработке фреймворка и инструментов экосистемы
  • habr Laravel–Дайджест (9–22 ноября 2020)

Разное


  • dollar Front Line PHP — Книга про разработку на современном PHP от Brent Roose и Freek Van der Herten. В канале было как получить дополнительную скидку.
  • Памятка по фишкам синтаксиса PHP 7.4 и 8
  • Brent Roose пишет о том, как вести блог разработчику — Он стартовал свой stitcher.io s 2017 и сейчас блог посещает больше 1.5 млн пользователей в неделю.
  • PHP Tools — назад в 90е — Запускаем и анализируем PHP 1.0.
  • Как безопасно реализовать восстановление пароля на PHP.
  • PHP 7.4 FFI: Что вам нужно знать
  • habr API для QA: тестируем фичи без доступа к коду
  • habr Ускоряем и стабилизируем автотесты на codeception + selenium
  • habr Финальные классы в PHP, Java и других языках
  • habr Сейчас я буду убеждать вас использовать статический анализ в PHP — Расшифровка подкаста Между Скобок № 11.

Аудио/Видео


  • ruvideo PHP 8: что нового, туда ли двигается, что будет дальше — Стрим с обзором PHP 8 от Валентина Удальцова (Пых), и ответами на вопросы от Никиты Попова и Дмитрия Стогова, двух топовых разработчиков PHP 8.
  • ruvideo Публичное собеседование: PHP-разработчик [Хекслет] — Пока мы с Валентином прокрастинируем готовим открытое собеседование на PHP Point, можно посмотреть альтернативу от Хекслета.
  • ruaudio Подкаст Remote Talk — В гостях Сергей Жук: про PHP, плохо ли на нём писать, книги в IT, подкаст «Между скобок».
  • ruvideo Видеозаписи с прошедших митапов:
    • Запись с митапа PHP NN #3 – Опыт перехода с MySQL на Postgres на реальном проекте, советы по написанию кода и жизни после 30.
    • Доклады от краснодарского PHP-сообщества: легаси, автотесты и работа с реляционныи БД.
    • Как устроен деплой в Лайфхакере (Александр Нагорнов, Lifehacker.ru) – Опыт перехода на автодеплой.
    • Вырастили легаси-мамонта и не смогли с ним жить (Андрей Мягков, Simtech Development) — Опыт переписывания внутреннего продукта на PHP.
    • Чем страшны шутки со временем в PHP (Алексей Сундуков, ZeBrains) — Советы по работе с таймзонами в PHP.
    • Как найти общий язык с API в микросервисах (Михаил Самаркин, Skyeng) — Создаем единый формат ответа об ошибках в микросервисах.

  • video PHP Release Radar — Episode 1: Composer 2.0 — Новый (видео-)подкаст про релизы в PHP-мире. В первом выпуске один из главных разработчиков композера Nils Adermann.
  • audio PHP Internals News #72 :: PHP 8.0 Celebrations! — Каждый автор RFC в PHP 8 говорит по паре слов о своей фиче.
  • audio PHP Internals News #71 — О том, что не попало в итоге в PHP 8:
    • __toArray();
    • перегрузка операторов;
    • readonly свойства;
    • компактное присвоение для объектов;
    • return if ($condition);
    • модификаторы доступа на чтение и запись для свойств.

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

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

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

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


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

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

Свежая подборка со ссылками на новости и материалы. В выпуске: Последний релиз-кандидат PHP 8.0 перед финальным релизом и свежие материалы по PHP 8, RFC и обсуждения из PHP Internals, п...
В этом дайджесте обсуждаем ужасную документацию Apple, запуск Android Studio на любом устройстве, переезд на Kotlin (в том числе и Multiplatform), создание бэкенда без серверных разработч...
TL;DR: Все CNI работают как надо, за исключением Kube-Router и Kube-OVN, Calico за исключением автоматического определения MTU — лучше всех. Читать дальше → ...
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него. Читать дальше →
Некоторое время назад мне довелось пройти больше десятка собеседований на позицию php-программиста (битрикс). К удивлению, требования в различных организациях отличаются совсем незначительно и...