PHP Digest
8.53K subscribers
60 photos
3 videos
287 links
PHP Дайджест

Новости, материалы и инструменты из мира PHP — раз в месяц.

Вопросы, замечания, предложения: @pronskiy
Download Telegram
PHP Дайджест № 216 (15 – 30 ноября 2021)

⚡️НОВОСТИ

🔹
Вышел 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.

🐘
Вышел PhpStorm 2021.3

Очень мощный релиз:

🔹 Полная поддержка PHP 8.1.
🔹 Улучшена поддержка дженериков (особенно для doctrine/collections и eloquent/collections из Laravel 9).
🔹 Рефакторинг перемещения классов и неймспесов с помощью drag-and-drop.
🔹 Инструменты удаленной разработки.
🔹 Улучшения деплоймента и других подсистем.

На Хабре смотрите разбор всех-всех изменений и новых фич:
https://habr.com/ru/company/JetBrains/blog/594473/
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. На этот раз довольно интересный хоть и спорный подход.

Раньше предлагалось для каждого оператора определить магический метод, например, __add() для + или __mul() для *.

В текущей редакции RFC предлагается ввести новое ключевое слово operator. Оно используется вместо function и по сути делает то же самое, но позволяет использовать символы операторов вместо имен функций.

class Collection {
// Ранее предлагалось вот так
function __add(Collection $other, OperandPosition $operandPos) {}

// А теперь вот так
operator +(Collection $other, OperandPosition $operandPos) {}
}

Нужна ли в PHP перегрузка операторов? Есть ли применение в ваших приложениях?

🔹 2022 PHP Landscape Report Survey

Ежегодный опрос PHP-сообщества от Zend.
Скоро будет запущен опрос русскоязычного сообщества от Алексея Корнеева и PHP-чатов/каналов, ну а пока можно заполнить опрос от Zend.

🔹 Начата работа над PSR стандартом для i18n

Задачи интернационализации и локализации встречаются повсеместно и иметь общий стандарт было бы отлично.
Пока сформирован мета-документ, в котором описаны цели и не-цели стандарта. А также собирается рабочая группа, в которую среди прочих вошел Александр Макаров.


🌀 РАЗНОЕ

🔸 Строим эффективный сетевой обмен в PHP-микросервисах.

🔸 Самые заметные изменения языка php за последние годы.

📺 PHP in 2021 — Новое видео от Brent Roose. Также в виде статьи.

📺 Запись BeerPHP SPb Meetup #3

—————

👉 В полном дайджесте на Хабре про другие новости, а также инструменты и ссылки по фреймворкам.

Дайджест подготовлен совместно с Insolita.

🐘
Опрос по итогам года в PHP-сообществе

https://phpsurvey.typeform.com/opros2021

Если вы еще не успели заполнить опрос, то вот несколько фактов о нем:

▫️ Помогали готовить опрос представители PHP-сообществ
▫️ По итогам прошлого года был стрим и подборка лучших ссылок
▫️ Опрос без регистрации, но если в конце оставить email, то есть шанс получить слоника и другие подарки

Пройти опрос 👉 https://phpsurvey.typeform.com/opros2021
PHP Дайджест № 218 (13 – 27 декабря 2021)

Composer 2.2, Cycle 2.0, обновления актуальных веток PHP и другие релизы; конкурс с подведением итогов года; пачка интересных статей, инструменты, видео и другие новости сообщества.

https://habr.com/ru/post/598189/
Forwarded from Пых (Валентин Удальцов)
🤝 PHP Foundation

С этого дня я ежемесячно перевожу $50 в фонд PHP.

PHP Foundation — это некоммерческая организация, миссия которой — обеспечить долгосрочное развитие PHP. Главный идеолог фонда — Роман Пронский, автор PHP Digest. Запуск проекта стал совместной инициативой JetBrains, Laravel, Symfony, Zend и других компаний.

На текущий момент фонд обработал заявки от разработчиков, которые хотят участвовать в разработке языка, и теперь решает юридические вопросы. Поэтому в графе расходов пока пусто — полноценная работа начнётся после согласования документов. Подробнее читайте в первом апдейте.

Больше о фонде:
216-ый выпуск PHP Дайджеста,
стрим к выходу PHP 8.1,
блог JetBrains,
Twitter проекта.

https://opencollective.com/phpfoundation
PHP Дайджест № 222 (7 – 21 февраля 2022)

Основное из дайджеста в телеграм-формате:

⚡️НОВОСТИ

🔹
PHP 7.4.28, PHP 8.0.16, PHP 8.1.3

Обновления актуальных веток PHP с фиксом уязвимости в php_filter_float(), а в 8.0 и 8.1 еще с пачкой других фиксов.

Для PHP 7.3 обновления уже не выходят, даже если обнаружены проблемы безопасности. И хотя данной уязвимости PHP 7.3 не подвержена, тем не менее если вы все еще используете эту версию, то лучше запланировать обновление в ближайшее время.


🔹 Ubuntu 22.04 LTS выйдет с PHP 8.1

Очередной релиз популярного Linux дистрибутива выйдет 21 апреля с предустановленным PHP версии 8.1.

В связи с этим предлагается поднять минимальную версию PHP в следующем релизе Symfony 6.1. А для Drupal 10 это уже сделали.


🔹 PhpStorm 2022.1 EAP

Продолжается программа раннего доступа первого мажорного релиза IDE в этом году. Сделали поддержку многострочных и вложенных аннотаций array shape! Можно использовать как в виде PHPDoc, так и в виде атрибута #[ArrayShape].


🔹 [RFC] Redacting parameters in back traces

На голосовании предложение добавить аттрибут #[SensitiveParameter] для предотвращения отображения конфиденциальныx данных в отладочных логах.


🔹 [RFC] Undefined Variable Error Promotion

Автор ранее предложил в PHP 9 перевести многие оставшиеся предупреждения (WARNING) в полноценные исключения. Такое уже раньше делали в PHP 8.0.

Ну а начать решил с использования необъявленных переменных. Сейчас в этом случае бросается Warning и используется значение null.


🔹 [RFC] Allow null and false as stand-alone types

Предлагается добавить возможность использовать null и false в декларациях типов.
Во-первых, это недостающие куски для полноты системы типов в PHP — есть mixed, добавили never, объединения и пересечения, не хватает юнит-типа.
Во-вторых, такие типы позволят покрыть некоторые граничные случаи и улучшить статический анализ.


🔹 Вышел Laravel 9

Есть отличные обзоры:
📺 Короткий видеообзор на русском от CutCode
🇷🇺 9 интересных новшеств в Laravel 9 — В тексте
📺 Laracasts: What's New in Laravel 9 — Подробно на видео


🔹 Shopware получили $100 млн инвестиций от PayPal и Carlyle

Открытая е-commerce платформа на базе Symfony поднимает хорошие деньги, пока кто-то говорит, что PHP мертв. Ранее в 2020 $130 млн получили Spryker — другая e-com платформа на PHP.
Обе компании, кстати, поддерживают фонд PHP.


🌀 РАЗНОЕ

🔸 Brent Roose: Service locator: an anti-pattern

🔸 Как помочь с релизом Yii 3 — Статья Виктора Бабанова из core-команды Yii3 подробно рассказывает как помочь фреймворку кодом, даже если вы никогда раньше этого не делали.

🔸Пых: fromName для enum — Про методы fromName и tryFromName для получения перечисления любого типа по его имени ($name).

--

👉 Больше новостей и ссылок в полном дайджесте на Хабре, а также инструменты и ссылки по фреймворкам.

Дайджест подготовлен совместно с Insolita.

🐘
Друзья, сегодня Юлия Insolita ушла из жизни.

Юля была активным участником нашего PHP-сообщества, помогала со стримами, митапами, конференциями и до последнего дня помогала делать PHP-дайджест.

Последние несколько месяцев Юля боролась с болезнью, но к сожалению победить ее не получилось.
Пусть земля будет Юле пухом.

Друзья, берегите себя и близких, будьте здоровы.
Что дальше с PHP Дайджестом

PHP Дайджест на Хабре я вел 9 лет и 5 месяцев. Вот так выглядел первый выпуск: https://habr.com/ru/company/zfort/blog/153769/

Война в Украине и бомбардировки Харькова, где я жил, сильно поменяли жизнь. Пока писать в прежнем формате нет желания и возможности.

Зато инициативу подхватил Сергей Пантелеев! Все последующие посты на канале PHP Дайджест по умолчанию будут от Сергея. Вот чем занимается Сергей в мире PHP:

🔹 Релиз-менеджер PHP 8.2
🔹 Мейнтейнер русской документации PHP
🔹 Помогает с разработкой сайта thephp.foundation
🔹 Помогает с PHP Annotated
🔹 Один из переводчиков книги Symfony 5: The Fast Track
🔹 Организатор BeerPHP Yaroslavl


Ну а меня можно найти тут:

🔸 Твиттер @pronskiy – пишу только про PHP
🔸 PHP Foundation – в блоге фонда PHP пишу отчеты для спонсоров каждый месяц
🔸 Блог PhpStorm – там выходит PHP Annotated

Всем мира.
Поддержка Laravel 8

В Laravel 8 теперь будут исправления только связанные с безопасностью. Полная поддержка прекратится 24 января 2023 года, рекомендуется обновиться до 9 версии.

#Laravel
Дерик (автор Xdebug) проводит опрос о дальнейшем развитии DateTime:
https://twitter.com/derickr/status/1551611856007069696

Перевод: Сделать класс DateTime изменяемым было одной из самых больших ошибок в API модуля Date/Time.
Я думаю изменить DateTime так, чтобы он был иммутабельным по умолчанию в PHP 9 и отказаться от класса DateTimeImmutable (или сделать псевдонимом).
Вероятно, это сломает чей-то код.