ar
Feedback
PHP Digest

PHP Digest

الذهاب إلى القناة على Telegram

PHP Дайджест Новости, материалы и инструменты из мира PHP — раз в месяц. Вопросы, замечания, предложения: @pronskiy

إظهار المزيد
8 308
المشتركون
-1224 ساعات
-127 أيام
+830 أيام
أرشيف المشاركات
PHP Дайджест № 220 (10 – 24 января 2022) https://habr.com/ru/post/647491/

PHP Дайджест № 219 (1 – 10 января 2022) https://habr.com/ru/post/599935/

PHP и Laravel дайджест за декабрь + итоги года Выложили свежий видеодайджест https://youtu.be/fR4YoyHjFwk

PHP Дайджест № 218 (13 – 27 декабря 2021) Composer 2.2, Cycle 2.0, обновления актуальных веток PHP и другие релизы; конкурс с подведением итогов года; пачка интересных статей, инструменты, видео и другие новости сообщества. https://habr.com/ru/post/598189/

Опрос по итогам года в PHP-сообществе https://phpsurvey.typeform.com/opros2021 Если вы еще не успели заполнить опрос, то вот несколько фактов о нем: ▫️ Помогали готовить опрос представители PHP-сообществ ▫️ По итогам прошлого года был стрим и подборка лучших ссылок ▫️ Опрос без регистрации, но если в конце оставить email, то есть шанс получить слоника и другие подарки Пройти опрос 👉 https://phpsurvey.typeform.com/opros2021

SymfonyWorld 2021 Winter Edition. Обзор конференции Ребятки с YouTube-канала CutCode сделали классный обзор докладов с конференции по Symfony. Подпишитесь на них — скоро на канале выйдет новый видео PHP-дайджест. https://www.youtube.com/watch?v=b5W-yuiigHI

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. 🐘

Вышел PhpStorm 2021.3 Очень мощный релиз: 🔹 Полная поддержка PHP 8.1. 🔹 Улучшена поддержка дженериков (особенно для doctrine/collections и eloquent/collections из Laravel 9). 🔹 Рефакторинг перемещения классов и неймспесов с помощью drag-and-drop. 🔹 Инструменты удаленной разработки. 🔹 Улучшения деплоймента и других подсистем. На Хабре смотрите разбор всех-всех изменений и новых фич: https://habr.com/ru/company/JetBrains/blog/594473/

Видео дайджест в новом формате https://www.youtube.com/watch?v=6em31j_LrSo Сделали дайджест новостей по PHP и Laravel совместно с ребятами с канала CutCode. Как вам?

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. 🐘

Вышел PHP 8.1 🎉 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

Релиз PHP 8.1, запуск PHP Foundation и истории переезда на 8.0 Стрим закончился, доступна запись. Скоро будут таймкоды. https://www.youtube.com/watch?v=5D337gaVPa4

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

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 с предложением задепрекейтить и впоследствии убрать динамические (необъявленные) свойства.
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. ————— 👉 В полном дайджесте на Хабре более подробно про эти новости, а также ссылки по фреймворкам.

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 Дайджест № 214 (11 – 25 октября 2021) Конфликт вокруг расширения Swoole и создание форка OpenSwoole; асинхронные фреймворки Amp и ReactPHP выпустили общую реализацию ивент-лупа; PHP 8.1 RC 4; принят первый RFC для 8.2. Также в выпуске два поста от Никиты Попова, полезные статьи, видео. https://habr.com/ru/post/585326/

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 Дайджест № 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 Дайджест № 211 (1 – 13 сентября 2021) Вышел первый релиз-кандидат PHP 8.1, в Packagist обнаружено два зловредных пакета, а репозиторий популярного пакета AliceBundle пропал с GitHub. Для PHP 8.2 предложены два новых RFC: про $this в качестве тайпхинта для возвращаемых значений, и про удаление старых видов колбэков. Как всегда, в выпуске порция полезных инструментов, статьи и видео. https://habr.com/ru/post/577660/

PHP Дайджест № 210 (16 – 30 августа 2021) Вышла третья бета PHP 8.1, Swiftmailer больше не будет поддерживаться, PHP-FIG обсуждает обновляемые стандарты PER. Для PHP 8.2 предложены два новых RFC: про удаление динамических свойств и перегрузку операторов. Также в выпуске порция полезных инструментов, статьи и видео. https://habr.com/ru/post/575354/