В PHP 8.1 будет оператор new в инициализаторах
https://wiki.php.net/rfc/new_in_initializers
Объекты можно будет использовать в качестве дефолтных значений параметров, статических переменных, глобальных констант и в аргументах атрибутов.
А вот со свойствами — нет. Вернее, можно будет использовать через constructor property promotion. Но это в действительности аргументы параметров, а не дефолтные значения свойств. Смотрите сами: 3v4l.org/r9iv4
C константами классов тоже нельзя будет использовать из-за проблем с порядком выполнения инициализации.
Зато этот RFC фактически добавляет поддержку вложенных атрибутов.
https://wiki.php.net/rfc/new_in_initializers
Объекты можно будет использовать в качестве дефолтных значений параметров, статических переменных, глобальных констант и в аргументах атрибутов.
А вот со свойствами — нет. Вернее, можно будет использовать через constructor property promotion. Но это в действительности аргументы параметров, а не дефолтные значения свойств. Смотрите сами: 3v4l.org/r9iv4
C константами классов тоже нельзя будет использовать из-за проблем с порядком выполнения инициализации.
Зато этот RFC фактически добавляет поддержку вложенных атрибутов.
В PHP 8.1 будут readonly свойства
https://wiki.php.net/rfc/readonly_properties_v2
Такие свойства нельзя изменить после инициализации.
Инициализировать можно только в том же скоупе, то есть в объявлении или в методе класса (можно обойти через Reflection или старый трюк с Closure::bind).
Свойства с флагом
Если
https://wiki.php.net/rfc/readonly_properties_v2
Такие свойства нельзя изменить после инициализации.
Инициализировать можно только в том же скоупе, то есть в объявлении или в методе класса (можно обойти через Reflection или старый трюк с Closure::bind).
Свойства с флагом
readonly
должны быть типизированные, но можно использовать тип mixed
.Если
readonly
свойство инициализировано объектом, то иммутабельным он не становится. То есть его внутреннее состояние все еще можно изменить.В PHP 8.1 можно будет получить ссылку на любую функцию
https://wiki.php.net/rfc/first_class_callable_syntax
Последнее из улучшений синтаксиса в PHP 8.1 принято единогласно.
Было так:
https://wiki.php.net/rfc/first_class_callable_syntax
Последнее из улучшений синтаксиса в PHP 8.1 принято единогласно.
Было так:
$fn = Closure::fromCallable('strlen');Или так:
$fn = fn(...$args) => strlen(...$args);Стало:
$fn = strlen(...);Новый синтаксис можно будет применять везде, где ожидается
callable
. Он лаконичнее и доступен для статического анализа.PHP Дайджест № 208 (12 – 26 июля 2021)
Первая бета PHP 8.1 — будут readonly-свойства, first-class callable, и new в инициализаторах кроме свойств и констант класса. Nikolas Grekas предложил сделать пересечения типов nullable. А также другие новости, порция полезных инструментов, статьи и видео.
https://habr.com/ru/post/569626/
Первая бета PHP 8.1 — будут readonly-свойства, first-class callable, и new в инициализаторах кроме свойств и констант класса. Nikolas Grekas предложил сделать пересечения типов nullable. А также другие новости, порция полезных инструментов, статьи и видео.
https://habr.com/ru/post/569626/
Хабр
PHP Дайджест № 208 (12 – 26 июля 2021)
Фото: Noriko Yamamoto . Подборка свежих новостей и материалов из мира PHP. В выпуске: первая бета PHP 8.1 — список новых возможностей и статус последних предложений; в PHP 8.1 будут readonly-свойства,...
Вышел PhpStorm 2021.2
В этом релизе сильно продвинулись с поддержкой дженериков и начали выкатывать поддержку PHP 8.1. Также исправили все проблемы с форматированием и улучшили рефакторинг Extract method.
Возможно вы уже успели обновиться, но если еще нет, то вот подробный разбор всех изменений и новых фич.
https://habr.com/ru/company/JetBrains/blog/571962/
В этом релизе сильно продвинулись с поддержкой дженериков и начали выкатывать поддержку PHP 8.1. Также исправили все проблемы с форматированием и улучшили рефакторинг Extract method.
Возможно вы уже успели обновиться, но если еще нет, то вот подробный разбор всех изменений и новых фич.
https://habr.com/ru/company/JetBrains/blog/571962/
Хабр
PhpStorm 2021.2: дженерики, перечисления, array shapes, новые инспекции и рефакторинги
Вышел второй мажорный релиз PhpStorm в этом году. Под катом подробный разбор всех изменений и новых возможностей с кучей гифок. Скачать PhpStorm можно на сайте или через приложение Toolbox...
PHP Дайджест № 209 (1 – 16 августа 2021)
Вторая бета PHP 8.1 и много материалов об этой версии, два свежих RFC для PHP 8.2, ReactPHP и Amphp объединяют усилия над базой для асинхронного PHP. А также другие новости и релизы, порция полезных инструментов, статьи и видео.
https://habr.com/ru/post/573184/
Вторая бета PHP 8.1 и много материалов об этой версии, два свежих RFC для PHP 8.2, ReactPHP и Amphp объединяют усилия над базой для асинхронного PHP. А также другие новости и релизы, порция полезных инструментов, статьи и видео.
https://habr.com/ru/post/573184/
Хабр
PHP Дайджест № 209 (1 – 16 августа 2021)
Фото: Florian Engelhardt . Подборка свежих новостей и материалов из мира PHP. В выпуске: вторая бета PHP 8.1 и много материалов об этой версии, два свежих RFC для PHP 8.2, ReactPHP и Amphp объединяют...
PHP Дайджест № 210 (16 – 30 августа 2021)
Вышла третья бета PHP 8.1, Swiftmailer больше не будет поддерживаться, PHP-FIG обсуждает обновляемые стандарты PER. Для PHP 8.2 предложены два новых RFC: про удаление динамических свойств и перегрузку операторов. Также в выпуске порция полезных инструментов, статьи и видео.
https://habr.com/ru/post/575354/
Вышла третья бета PHP 8.1, Swiftmailer больше не будет поддерживаться, PHP-FIG обсуждает обновляемые стандарты PER. Для PHP 8.2 предложены два новых RFC: про удаление динамических свойств и перегрузку операторов. Также в выпуске порция полезных инструментов, статьи и видео.
https://habr.com/ru/post/575354/
Хабр
PHP Дайджест № 210 (16 – 30 августа 2021)
Фото: Peter Kokot . Подборка свежих новостей и материалов из мира PHP. Вышла третья бета PHP 8.1, Swiftmailer больше не будет поддерживаться, PHP-FIG обсуждает обновляемые стандарты PER. Для PHP 8.2...
PHP Дайджест № 211 (1 – 13 сентября 2021)
Вышел первый релиз-кандидат PHP 8.1, в Packagist обнаружено два зловредных пакета, а репозиторий популярного пакета AliceBundle пропал с GitHub.
Для PHP 8.2 предложены два новых RFC: про
Как всегда, в выпуске порция полезных инструментов, статьи и видео.
https://habr.com/ru/post/577660/
Вышел первый релиз-кандидат PHP 8.1, в Packagist обнаружено два зловредных пакета, а репозиторий популярного пакета AliceBundle пропал с GitHub.
Для PHP 8.2 предложены два новых RFC: про
$this
в качестве тайпхинта для возвращаемых значений, и про удаление старых видов колбэков.Как всегда, в выпуске порция полезных инструментов, статьи и видео.
https://habr.com/ru/post/577660/
Хабр
PHP Дайджест № 211 (1 – 13 сентября 2021)
Фото: Иван Ганцев . Подборка свежих новостей и материалов из мира PHP. Вышел первый релиз-кандидат PHP 8.1, в Packagist обнаружено два зловредных пакета, а репозиторий популярного пакета AliceBundle...
PHP Дайджест № 212 (13 – 27 сентября 2021)
Вышел PHP 8.1 RC2 и уже доступен первый пакет с использованием перечислений, будет сделан форк Magento, новый тип стандартов PER в дополнение к PSR, стартовал PhpStorm 2021.3 EAP, Symfony 6 будет полностью типизирован — как обновляться?
Для PHP 8.2 предложены новые оптимизированные структуры данных.
Также в выпуске порция инструментов, полезные статьи, видео и анонсы двух митапов.
https://habr.com/ru/post/580210/
Вышел PHP 8.1 RC2 и уже доступен первый пакет с использованием перечислений, будет сделан форк Magento, новый тип стандартов PER в дополнение к PSR, стартовал PhpStorm 2021.3 EAP, Symfony 6 будет полностью типизирован — как обновляться?
Для PHP 8.2 предложены новые оптимизированные структуры данных.
Также в выпуске порция инструментов, полезные статьи, видео и анонсы двух митапов.
https://habr.com/ru/post/580210/
Хабр
PHP Дайджест № 212 (13 – 27 сентября 2021)
Подборка свежих новостей и материалов из мира PHP. Вышел PHP 8.1 RC2 и уже доступен первый пакет с использованием перечислений, будет сделан форк Magento, новый тип стандартов PER в дополнение к PSR,...
PHP Дайджест № 213 (27 сентября – 11 октября 2021)
Для PHP 8.2 предложили добавить тип null; опубликована уязвимость в PHP с disable_functions, которая на самом деле не уязвимость; новый сайт от сообщества — phpopendocs.com; PHP 8.1 RC 3, Xdebug 3.1 и другие релизы.
Также в выпуске порция инструментов, полезные статьи, видео.
https://habr.com/ru/post/582776/
Для PHP 8.2 предложили добавить тип null; опубликована уязвимость в PHP с disable_functions, которая на самом деле не уязвимость; новый сайт от сообщества — phpopendocs.com; PHP 8.1 RC 3, Xdebug 3.1 и другие релизы.
Также в выпуске порция инструментов, полезные статьи, видео.
https://habr.com/ru/post/582776/
Хабр
PHP Дайджест № 213 (27 сентября – 11 октября 2021)
Фото: Noriko YAMAMOTO . Подборка свежих новостей и материалов из мира PHP. Для PHP 8.2 предложили добавить тип null ; опубликована уязвимость в PHP с disable_functions, которая на самом деле не...
PHP Дайджест № 214 (11 – 25 октября 2021)
Конфликт вокруг расширения Swoole и создание форка OpenSwoole; асинхронные фреймворки Amp и ReactPHP выпустили общую реализацию ивент-лупа; PHP 8.1 RC 4; принят первый RFC для 8.2.
Также в выпуске два поста от Никиты Попова, полезные статьи, видео.
https://habr.com/ru/post/585326/
Конфликт вокруг расширения Swoole и создание форка OpenSwoole; асинхронные фреймворки Amp и ReactPHP выпустили общую реализацию ивент-лупа; PHP 8.1 RC 4; принят первый RFC для 8.2.
Также в выпуске два поста от Никиты Попова, полезные статьи, видео.
https://habr.com/ru/post/585326/
Хабр
PHP Дайджест № 214 (11 – 25 октября 2021)
Фото: Иван Ганцев . Подборка свежих новостей и материалов из мира PHP. Конфликт вокруг расширения Swoole и создание форка OpenSwoole; асинхронные фреймворки Amp и ReactPHP выпустили общую реализацию...
PHP Дайджест № 215 (1 – 15 ноября 2021)
Вышел последний релиз кандидат PHP 8.1 перед финальным релизом; доступны бенчмарки PHP 8.1; в PHP 8.2 планируется задепрекейтить динамические свойства — добро или зло?; про перенос багов с bugs.php.net на GitHub; немного обновлен PSR-16.
Также в выпуске полезные статьи, видео и другие новости сообщества
https://habr.com/ru/post/589229/
Вышел последний релиз кандидат PHP 8.1 перед финальным релизом; доступны бенчмарки PHP 8.1; в PHP 8.2 планируется задепрекейтить динамические свойства — добро или зло?; про перенос багов с bugs.php.net на GitHub; немного обновлен PSR-16.
Также в выпуске полезные статьи, видео и другие новости сообщества
https://habr.com/ru/post/589229/
Хабр
PHP Дайджест № 215 (1 – 15 ноября 2021)
Картинка: Gabriel Nunes . Подборка свежих новостей и материалов из мира PHP. В выпуске: последний релиз кандидат PHP 8.1 перед финальным релизом, бенчмарки PHP 8.1; в PHP 8.2 планируется...
PHP Дайджест № 215 (1 – 15 ноября 2021)
Вместе с Insolita пробуем новый формат дайджеста в телеграме. Напишите в комментариях как вам?
⚡️НОВОСТИ
🔹 PHP 8.1.0 RC 6
Вышел последний релиз кандидат, а значит PHP 8.1 выйдет уже меньше, чем через две недели.
▪️ Интересный обзор новых фич PHP 8.1 сделал Mohamed Said (Core Laravel): 📺 Getting Ready for PHP 8.1
▪️ Brent Roose: PHP 8.1 в 8 блоках кода
Кроме прочего, в PHP 8.1 сделано много улучшений по производительности. Судя по результатам свежих бенчмарков от одного из core PHP разработчиков, Symfony demo приложение работает на ~30% быстрее, чем на PHP 8.0.
🔹 [RFC] Migrating to Github Issues
Предлагается перенести баги со старой системы bugs.php.net на GitHub в репозиторий php/php-src. Это касается всех багов, кроме секьюрити-проблем, которые не должны быть публичными.
В тестовом репозитории настроены шаблоны для баг-репортов запросов на фичи. Можно создать и посмотреть, как это будет выглядеть.
🔹 [RFC] Deprecate dynamic properties
На голосовании RFC с предложением задепрекейтить и впоследствии убрать динамические (необъявленные) свойства.
Кроме того, в последней версии RFC добавлен еще атрибут
Предложение вызвало волну споров в твиттере. Вот пример треда с недовольными таким подходом. Это изменение обратной совместимости и потребуется обновлять много кода, да и вообще ломает динамическую сущность PHP — говорят они.
🔹 Обновлен PSR-16: Common Interface for Caching Libraries
Для пакета php-fig/simple-cache выпущены две новые версии. В 2.0.0 добавлены типы для аргументов, а в 3.0.0 — типы возвращаемых значений.
🔹 Локальная root-уязвимость в PHP-FPM
Уязвимость позволяет пользователю с низкими привилегиями (например, www-data) повысить свои привилегии до уровня root, используя ошибку в PHP-FPM. Хоть это серьезная проблема, но не RCE. То есть злоумышленнику сначала надо будет использовать другие техники, чтоб завладеть рабочим процессом PHP. По ссылке подробный разбор от исследователей.
Уязвимость исправлена в поддерживаемых ветках PHP 7.4.25 и PHP 8.0.12 и PHP 7.3.32.
🔸 PHPStan 1.0 — После шести лет разработки состоялся первый стабильный релиз статического анализатора. В релизе новый уровень проверки «9» и другие улучшения.
Есть свежее интервью с автором 📺 PHPStan: PHP Release Radar — Episode 13
📝 СТАТЬИ
🔸 Как ManyChat на PHP8 переезжал
🔸 Перевод аудио-сообщений в текст в telegram при помощи Wit
🔸 Сравнение php-fpm, nginx-unit и laravel-octane
🔸 Эволюция PHP-объектов
🔸 Современное шифрование в PHP с помощью библиотеки libsodium
🔸 Type variance in PHP — Никита Попов об особенностях системы типов в PHP.
🔸 Интересный трюк от Larry Garfield с ридонли свойствами в PHP 8.1.
—————
👉 В полном дайджесте на Хабре более подробно про эти новости, а также ссылки по фреймворкам.
Вместе с Insolita пробуем новый формат дайджеста в телеграме. Напишите в комментариях как вам?
⚡️НОВОСТИ
🔹 PHP 8.1.0 RC 6
Вышел последний релиз кандидат, а значит PHP 8.1 выйдет уже меньше, чем через две недели.
▪️ Интересный обзор новых фич PHP 8.1 сделал Mohamed Said (Core Laravel): 📺 Getting Ready for PHP 8.1
▪️ Brent Roose: PHP 8.1 в 8 блоках кода
Кроме прочего, в PHP 8.1 сделано много улучшений по производительности. Судя по результатам свежих бенчмарков от одного из core PHP разработчиков, Symfony demo приложение работает на ~30% быстрее, чем на PHP 8.0.
🔹 [RFC] Migrating to Github Issues
Предлагается перенести баги со старой системы bugs.php.net на GitHub в репозиторий php/php-src. Это касается всех багов, кроме секьюрити-проблем, которые не должны быть публичными.
В тестовом репозитории настроены шаблоны для баг-репортов запросов на фичи. Можно создать и посмотреть, как это будет выглядеть.
🔹 [RFC] Deprecate dynamic properties
На голосовании RFC с предложением задепрекейтить и впоследствии убрать динамические (необъявленные) свойства.
class User {Это изменение не будет касаться класса
public $name;
}
$user = new User;
// Assigns declared property User::$name.
$user->name = «foo»;
// Oops, a typo:
$user->nane = «foo»;
// PHP <= 8.1: Молча создает динамическое свойство $user->nane.
// PHP 8.2: Вызывает предупреждение, но все равно создает динамическое свойство.
// PHP 9.0: Выбрасывает исключение Error.
stdClass
и унаследованных от него. А также не касается классов с магическими __get/__set
.Кроме того, в последней версии RFC добавлен еще атрибут
#[AllowDynamicProperties]
. Его можно навесить на любой класс и в этом классе продолжат работать динамические свойства.Предложение вызвало волну споров в твиттере. Вот пример треда с недовольными таким подходом. Это изменение обратной совместимости и потребуется обновлять много кода, да и вообще ломает динамическую сущность PHP — говорят они.
🔹 Обновлен PSR-16: Common Interface for Caching Libraries
Для пакета php-fig/simple-cache выпущены две новые версии. В 2.0.0 добавлены типы для аргументов, а в 3.0.0 — типы возвращаемых значений.
🔹 Локальная root-уязвимость в PHP-FPM
Уязвимость позволяет пользователю с низкими привилегиями (например, www-data) повысить свои привилегии до уровня root, используя ошибку в PHP-FPM. Хоть это серьезная проблема, но не RCE. То есть злоумышленнику сначала надо будет использовать другие техники, чтоб завладеть рабочим процессом PHP. По ссылке подробный разбор от исследователей.
Уязвимость исправлена в поддерживаемых ветках PHP 7.4.25 и PHP 8.0.12 и PHP 7.3.32.
🔸 PHPStan 1.0 — После шести лет разработки состоялся первый стабильный релиз статического анализатора. В релизе новый уровень проверки «9» и другие улучшения.
Есть свежее интервью с автором 📺 PHPStan: PHP Release Radar — Episode 13
📝 СТАТЬИ
🔸 Как ManyChat на PHP8 переезжал
🔸 Перевод аудио-сообщений в текст в telegram при помощи Wit
🔸 Сравнение php-fpm, nginx-unit и laravel-octane
🔸 Эволюция PHP-объектов
🔸 Современное шифрование в PHP с помощью библиотеки libsodium
🔸 Type variance in PHP — Никита Попов об особенностях системы типов в PHP.
🔸 Интересный трюк от Larry Garfield с ридонли свойствами в PHP 8.1.
—————
👉 В полном дайджесте на Хабре более подробно про эти новости, а также ссылки по фреймворкам.
JetBrains и другие компании инициировали создание фонда PHP
https://blog.jetbrains.com/phpstorm/2021/11/the-php-foundation/
Никита Попов, кроме PHP, долгое время контрибьютил в LLVM и Rust. И теперь решил переключить свою профессиональную деятельность на LLVM. Он все еще будет частью PHP-сообщества, но контрибьютить будет значительно меньше.
Это подтолкнуло на создание фонда PHP, цель которого — обеспечить развитие языка.
JetBrains, Automattic, Acquia, Laravel, Private Packagist, Symfony, Zend, Craft CMS, Tideways и PrestaShop объединили усилия и стали основателями и первыми финансовыми спонсорами фонда.
Первичная цель фонда — нанять part-time или full-time core разработчиков для работы на PHP.
Поддержать фонд донатом можно по ссылке:
https://opencollective.com/phpfoundation
https://blog.jetbrains.com/phpstorm/2021/11/the-php-foundation/
Никита Попов, кроме PHP, долгое время контрибьютил в LLVM и Rust. И теперь решил переключить свою профессиональную деятельность на LLVM. Он все еще будет частью PHP-сообщества, но контрибьютить будет значительно меньше.
Это подтолкнуло на создание фонда PHP, цель которого — обеспечить развитие языка.
JetBrains, Automattic, Acquia, Laravel, Private Packagist, Symfony, Zend, Craft CMS, Tideways и PrestaShop объединили усилия и стали основателями и первыми финансовыми спонсорами фонда.
Первичная цель фонда — нанять part-time или full-time core разработчиков для работы на PHP.
Поддержать фонд донатом можно по ссылке:
https://opencollective.com/phpfoundation
The JetBrains Blog
The New Life of PHP – The PHP Foundation | The PhpStorm Blog
During PHP’s 26-year history, the language has been actively developed by a huge number of people, such as Rasmus Lerdorf, Zeev Suraski, Andi Gutmans, Nikita Popov, and many, many others. In 2021, PHP
Релиз PHP 8.1, запуск PHP Foundation и истории переезда на 8.0
Стрим закончился, доступна запись. Скоро будут таймкоды.
https://www.youtube.com/watch?v=5D337gaVPa4
Стрим закончился, доступна запись. Скоро будут таймкоды.
https://www.youtube.com/watch?v=5D337gaVPa4
YouTube
Релиз PHP 8.1, запуск PHP Foundation и истории переезда на 8.0
Обсудим апдейты нового релиза и новость о создании PHP Foundation — фонда в поддержку языка. А еще послушаем, как ребята из 4 компаний проекты на 8.0 перевозили: с чем столкнулись и что советуют.
https://opencollective.com/phpfoundation — о том, как поддержать…
https://opencollective.com/phpfoundation — о том, как поддержать…
Вышел PHP 8.1 🎉
https://www.php.net/releases/8.1/ru.php
Основные новые возможности:
🔹 Enums они же перечисления;
🔹 Readonly свойства;
🔹 First-class callable — получение ссылки на любую функцию;
🔹 Оператор
🔹 Файберы;
🔹 Новый тип
🔹 Запись восьмеричных чисел с префиксом
🔹 Оператор
🔹 Много улучшений по производительности
(+23% к скорости на демо приложении Symfony)
В релизе также много депрекейшнов, улучшений консистентности и обработки ошибок.
Основные депрекейшны:
🔺 Объявлено устаревшим неявное преобразование
🔺 Интерфейс
🔺 Ограничено использование
🔺 Объявлено устаревшим передача значения
🔺 Добавлены типы для возвращаемых значений встроенных классов (и новый атрибут
🔺 Продолжено удаление типа resource. Ресурсы file_info, imap FTP Connection, LDAP, PostgreSQL теперь будут объектами, соответственно
Еще почитать-посмотреть:
• Подробно: php.watch/versions/8.1
• Коротко в видео: What's New in PHP 8.1
• Валентин Удальцов: Лайв-кодинг-обзор PHP 8.1
• Максимально полный список изменений: php-8.1.0/UPGRADING
https://www.php.net/releases/8.1/ru.php
Основные новые возможности:
🔹 Enums они же перечисления;
🔹 Readonly свойства;
🔹 First-class callable — получение ссылки на любую функцию;
🔹 Оператор
new
в инициализаторах (и вложенные атрибуты);🔹 Файберы;
🔹 final
константы в классах;🔹 Новый тип
never
для (не)возвращаемых значений;🔹 Запись восьмеричных чисел с префиксом
0o
;🔹 Оператор
...
поддерживает массивы со строковыми ключами;🔹 Много улучшений по производительности
(+23% к скорости на демо приложении Symfony)
В релизе также много депрекейшнов, улучшений консистентности и обработки ошибок.
Основные депрекейшны:
🔺 Объявлено устаревшим неявное преобразование
float
в int
, где теряется дробная часть;🔺 Интерфейс
Serializable
объявлен устаревшим;🔺 Ограничено использование
$GLOBALS
;🔺 Объявлено устаревшим передача значения
null
в параметры встроенных функций, которые не nullable
;🔺 Добавлены типы для возвращаемых значений встроенных классов (и новый атрибут
#[ReturnTypeWillChange]
);🔺 Продолжено удаление типа resource. Ресурсы file_info, imap FTP Connection, LDAP, PostgreSQL теперь будут объектами, соответственно
finfo
, IMAP\Connection
, FTP\Connection
, PgSql\Connection
, PgSql\Result
.Еще почитать-посмотреть:
• Подробно: php.watch/versions/8.1
• Коротко в видео: What's New in PHP 8.1
• Валентин Удальцов: Лайв-кодинг-обзор PHP 8.1
• Максимально полный список изменений: php-8.1.0/UPGRADING
www.php.net
PHP 8.1 Released
PHP 8.1 — большое обновление языка PHP: перечисления, readonly-свойства, callback-функции как объекты первого класса, файберы, пересечение типов, улучшения производительности и многое другое.
PHP Дайджест № 216 (15 – 30 ноября 2021)
⚡️НОВОСТИ
🔹 Вышел PHP 8.1
Основные новые возможности:
-
-
- First-class callable — получение ссылки на любую функцию;
- Оператор
- Файберы;
-
- Новый тип
- Запись восьмеричных чисел с префиксом
- Оператор
Подробнее ⬆️
⚠️ Важно!
- Активная поддержка PHP 7.4 уже закончена, то есть будут только секьюрити фиксы в течение года.
- Поддержка PHP 7.3 будет полностью прекращена 6 декабря.
Обновляйтесь.
🔹 The New Life of PHP – The PHP Foundation
JetBrains совместно с компаниями Automattic (WordPress), Acquia (Drupal), Laravel, Private Packagist (Composer), Symfony, Zend, Craft CMS, Tideways и PrestaShop учредили некоммерческую организацию PHP Foundation, миссия которой — обеспечить долгосрочное развитие языка PHP.
Подробно об истории создания и работе фонда смотрите в записи стрима: Про PHP Foundation с Романом Пронским.
🔹[RFC] Deprecate dynamic properties
Несмотря на многочисленные споры, предложение принято с перевесом всего в два голоса 52:25!
Это значит, что в PHP 8.2 динамические (необъявленные) свойства будут объявлены устаревшими, а в PHP 9.0 они будут вовсе удалены.
Подробнее в PHP Дайджесте № 215.
🔹 Вышла Doctrine DBAL 3.2.0
Также обнаружена критическая SQL-инъекция в doctrine/dbal 3.0.0 — 3.1.3, стоит немедленно обновиться до 3.1.4 или новее.
🔹 Вышли Symfony 6.0, Symfony 5.4
Разница между ними в том, что Symfony 5.4 содержит устаревшие возможности и обратно совместим, а в Symfony 6.0 все deprecated удалены.
Что нового можно посмотреть тут symfony.com/blog/category/living-on-the-edge.
🔹[RFC] Readonly classes
Máté Kocsis предлагает для PHP 8.2 readonly классы. По сути, это просто класс в котором все свойства
📝 СТАТЬИ
🔸 Improve Symfony Tests Performance — Наиболее полный список практических советов для многократного уменьшения времени тестов от Макса Рафалко, автора Infection.
🔸 Шпаргалка по современному PHP.
🔸 A long way from Monolithic to Composable Architecture — Про изменение архитектуры Magento.
🔸 Настройка PHP-FPM — Полезная заметка на канале Beer::PHP 🍺.
🔸 Практики внедрения зависимостей — Мега-статья от Дмитрия Елисеева.
—————
👉 В полном дайджесте на Хабре более подробно про эти новости, а также инструменты, ссылки по фреймворкам.
Дайджест подготовлен совместно с Insolita.
🐘
⚡️НОВОСТИ
🔹 Вышел PHP 8.1
Основные новые возможности:
-
Enums
они же перечисления;-
Readonly
свойства;- First-class callable — получение ссылки на любую функцию;
- Оператор
new
в инициализаторах (и вложенные атрибуты);- Файберы;
-
final
константы в классах;- Новый тип
never
для (не)возвращаемых значений;- Запись восьмеричных чисел с префиксом
0o
;- Оператор
...
поддерживает массивы со строковыми ключами;Подробнее ⬆️
⚠️ Важно!
- Активная поддержка PHP 7.4 уже закончена, то есть будут только секьюрити фиксы в течение года.
- Поддержка PHP 7.3 будет полностью прекращена 6 декабря.
Обновляйтесь.
🔹 The New Life of PHP – The PHP Foundation
JetBrains совместно с компаниями Automattic (WordPress), Acquia (Drupal), Laravel, Private Packagist (Composer), Symfony, Zend, Craft CMS, Tideways и PrestaShop учредили некоммерческую организацию PHP Foundation, миссия которой — обеспечить долгосрочное развитие языка PHP.
Подробно об истории создания и работе фонда смотрите в записи стрима: Про PHP Foundation с Романом Пронским.
🔹[RFC] Deprecate dynamic properties
Несмотря на многочисленные споры, предложение принято с перевесом всего в два голоса 52:25!
Это значит, что в PHP 8.2 динамические (необъявленные) свойства будут объявлены устаревшими, а в PHP 9.0 они будут вовсе удалены.
Подробнее в PHP Дайджесте № 215.
🔹 Вышла Doctrine DBAL 3.2.0
Также обнаружена критическая SQL-инъекция в doctrine/dbal 3.0.0 — 3.1.3, стоит немедленно обновиться до 3.1.4 или новее.
🔹 Вышли Symfony 6.0, Symfony 5.4
Разница между ними в том, что Symfony 5.4 содержит устаревшие возможности и обратно совместим, а в Symfony 6.0 все deprecated удалены.
Что нового можно посмотреть тут symfony.com/blog/category/living-on-the-edge.
🔹[RFC] Readonly classes
Máté Kocsis предлагает для PHP 8.2 readonly классы. По сути, это просто класс в котором все свойства
readonly
и запрещены динамические свойства. То есть это небольшой синтаксический сахар для удобства.📝 СТАТЬИ
🔸 Improve Symfony Tests Performance — Наиболее полный список практических советов для многократного уменьшения времени тестов от Макса Рафалко, автора Infection.
🔸 Шпаргалка по современному PHP.
🔸 A long way from Monolithic to Composable Architecture — Про изменение архитектуры Magento.
🔸 Настройка PHP-FPM — Полезная заметка на канале Beer::PHP 🍺.
🔸 Практики внедрения зависимостей — Мега-статья от Дмитрия Елисеева.
—————
👉 В полном дайджесте на Хабре более подробно про эти новости, а также инструменты, ссылки по фреймворкам.
Дайджест подготовлен совместно с Insolita.
🐘
Хабр
PHP Дайджест № 216 (15 – 30 ноября 2021)
Подборка свежих новостей и материалов из мира PHP. В выпуске: вышел PHP 8.1, создана организация PHP Foundation с целью развития и поддержки PHP, критическая уязвимость в doctrine/dbal, в PHP 8.2...
Видео дайджест в новом формате
https://www.youtube.com/watch?v=6em31j_LrSo
Сделали дайджест новостей по PHP и Laravel совместно с ребятами с канала CutCode. Как вам?
https://www.youtube.com/watch?v=6em31j_LrSo
Сделали дайджест новостей по PHP и Laravel совместно с ребятами с канала CutCode. Как вам?
YouTube
PHP и Laravel дайджест ноябрь 2021. Обзор новостей по ПХП и Ларавел
Итак, ноябрь закончился и пришло время сделать обзор новостей PHP и laravel за месяц! Сегодня у нас будет новый формат - рассказывать PHP дайджест будет настоящий специалист - Роман Пронский! Роман уже много лет ведет дайджест PHP на Хабре. А во второй части…
Вышел PhpStorm 2021.3
Очень мощный релиз:
🔹 Полная поддержка PHP 8.1.
🔹 Улучшена поддержка дженериков (особенно для doctrine/collections и eloquent/collections из Laravel 9).
🔹 Рефакторинг перемещения классов и неймспесов с помощью drag-and-drop.
🔹 Инструменты удаленной разработки.
🔹 Улучшения деплоймента и других подсистем.
На Хабре смотрите разбор всех-всех изменений и новых фич:
https://habr.com/ru/company/JetBrains/blog/594473/
Очень мощный релиз:
🔹 Полная поддержка PHP 8.1.
🔹 Улучшена поддержка дженериков (особенно для doctrine/collections и eloquent/collections из Laravel 9).
🔹 Рефакторинг перемещения классов и неймспесов с помощью drag-and-drop.
🔹 Инструменты удаленной разработки.
🔹 Улучшения деплоймента и других подсистем.
На Хабре смотрите разбор всех-всех изменений и новых фич:
https://habr.com/ru/company/JetBrains/blog/594473/
Хабр
Вышел PhpStorm 2021.3
В этом релизе мы полностью поддержали PHP 8.1, улучшили обработку дженериков, реализовали drag-and-drop для перемещения классов и пространств имен, обновили HTTP-клиент, повысили удобство процесса...
PHP Дайджест № 217 (1 – 13 декабря 2021)
⚡️НОВОСТИ
🔹 Баги PHP теперь на GitHub
Предложение мигрировать баги с bugs.php.net на GitHub принято практически единогласно.
Раздел github.com/php/php-src/issues уже открыт и можно видеть первые созданные баги.
🔹 Вышел PhpStorm 2021.3
Мажорное обновление IDE с кучей улучшений. Из основного:
▫️ Полная поддержка PHP 8.1.
▫️ Улучшена поддержка дженериков.
▫️ Рефакторинг перемещения классов и неймспейсов с помощью drag-and-drop.
▫️ Инструменты удаленной разработки.
▫️ Улучшения деплоймента и других подсистем.
Проверки PhpStorm можно запускать в CI благодаря Qodana for PHP — это отдельный инструмент от JetBrains, который работает на движке PhpStorm. Можно использовать, например, для поиска проблем совместимости с PHP 8.0 / 8.1.
🔹 Закончена поддержка PHP 7.3
Для PHP 7.4 активная поддержка тоже завершена, но еще в течение года будут выходить исправления проблем безопасности в случае их обнаружения.
phpreleases.com — API для получения информации о поддерживаемых версиях PHP.
🔹 [RFC] User Defined Operator Overloads
Снова на обсуждении предложение добавить перегрузку операторов в PHP. На этот раз довольно интересный хоть и спорный подход.
Раньше предлагалось для каждого оператора определить магический метод, например,
В текущей редакции RFC предлагается ввести новое ключевое слово operator. Оно используется вместо function и по сути делает то же самое, но позволяет использовать символы операторов вместо имен функций.
🔹 2022 PHP Landscape Report Survey
Ежегодный опрос PHP-сообщества от Zend.
Скоро будет запущен опрос русскоязычного сообщества от Алексея Корнеева и PHP-чатов/каналов, ну а пока можно заполнить опрос от Zend.
🔹 Начата работа над PSR стандартом для i18n
Задачи интернационализации и локализации встречаются повсеместно и иметь общий стандарт было бы отлично.
Пока сформирован мета-документ, в котором описаны цели и не-цели стандарта. А также собирается рабочая группа, в которую среди прочих вошел Александр Макаров.
🌀 РАЗНОЕ
🔸 Строим эффективный сетевой обмен в PHP-микросервисах.
🔸 Самые заметные изменения языка php за последние годы.
📺 PHP in 2021 — Новое видео от Brent Roose. Также в виде статьи.
📺 Запись BeerPHP SPb Meetup #3
—————
👉 В полном дайджесте на Хабре про другие новости, а также инструменты и ссылки по фреймворкам.
Дайджест подготовлен совместно с Insolita.
🐘
⚡️НОВОСТИ
🔹 Баги PHP теперь на GitHub
Предложение мигрировать баги с bugs.php.net на GitHub принято практически единогласно.
Раздел github.com/php/php-src/issues уже открыт и можно видеть первые созданные баги.
🔹 Вышел PhpStorm 2021.3
Мажорное обновление IDE с кучей улучшений. Из основного:
▫️ Полная поддержка PHP 8.1.
▫️ Улучшена поддержка дженериков.
▫️ Рефакторинг перемещения классов и неймспейсов с помощью drag-and-drop.
▫️ Инструменты удаленной разработки.
▫️ Улучшения деплоймента и других подсистем.
Проверки PhpStorm можно запускать в CI благодаря Qodana for PHP — это отдельный инструмент от JetBrains, который работает на движке PhpStorm. Можно использовать, например, для поиска проблем совместимости с PHP 8.0 / 8.1.
🔹 Закончена поддержка PHP 7.3
Для PHP 7.4 активная поддержка тоже завершена, но еще в течение года будут выходить исправления проблем безопасности в случае их обнаружения.
phpreleases.com — API для получения информации о поддерживаемых версиях PHP.
🔹 [RFC] User Defined Operator Overloads
Снова на обсуждении предложение добавить перегрузку операторов в PHP. На этот раз довольно интересный хоть и спорный подход.
Раньше предлагалось для каждого оператора определить магический метод, например,
__add()
для +
или __mul()
для *
.В текущей редакции RFC предлагается ввести новое ключевое слово operator. Оно используется вместо function и по сути делает то же самое, но позволяет использовать символы операторов вместо имен функций.
class Collection {Нужна ли в PHP перегрузка операторов? Есть ли применение в ваших приложениях?
// Ранее предлагалось вот так
function __add(Collection $other, OperandPosition $operandPos) {}
// А теперь вот так
operator +(Collection $other, OperandPosition $operandPos) {}
}
🔹 2022 PHP Landscape Report Survey
Ежегодный опрос PHP-сообщества от Zend.
Скоро будет запущен опрос русскоязычного сообщества от Алексея Корнеева и PHP-чатов/каналов, ну а пока можно заполнить опрос от Zend.
🔹 Начата работа над PSR стандартом для i18n
Задачи интернационализации и локализации встречаются повсеместно и иметь общий стандарт было бы отлично.
Пока сформирован мета-документ, в котором описаны цели и не-цели стандарта. А также собирается рабочая группа, в которую среди прочих вошел Александр Макаров.
🌀 РАЗНОЕ
🔸 Строим эффективный сетевой обмен в PHP-микросервисах.
🔸 Самые заметные изменения языка php за последние годы.
📺 PHP in 2021 — Новое видео от Brent Roose. Также в виде статьи.
📺 Запись BeerPHP SPb Meetup #3
—————
👉 В полном дайджесте на Хабре про другие новости, а также инструменты и ссылки по фреймворкам.
Дайджест подготовлен совместно с Insolita.
🐘
Хабр
PHP Дайджест № 217 (1 – 13 декабря 2021)
Подборка свежих новостей и материалов из мира PHP. В выпуске: PHP теперь использует GitHub для трекинга багов; вышел PhpStorm 2021.3; закончена поддержка PHP 7.3, а 7.4 — в режиме только секьюрити...