Size: a a a

2021 June 29
PHP Digest
PHP Дайджест № 206 (15 – 29 июня 2021)

https://habr.com/ru/post/565202/
источник
2021 July 12
PHP Digest
PHP Дайджест № 207 (29 июня – 12 июля 2021)

• Третья альфа PHP 8.1 — список новых возможностей и статус последних предложений;

• readonly-свойства — Nikolas Grekas и другие голосуют против из-за проблем с клонированием;

• автор Psalm-покинул проект и PHP — работу подхватили другие мейнтейнеры;

• в ReactPHP добавили дефолтный ивент-луп;

• Laravel 9 выйдет в январе и будет требовать PHP 8.0.

А также другие новости, порция полезных инструментов, статьи и видео.

https://habr.com/ru/post/567228/
источник
2021 July 14
PHP Digest
В PHP 8.1 будет оператор new в инициализаторах

https://wiki.php.net/rfc/new_in_initializers

Объекты можно будет использовать в качестве дефолтных значений параметров, статических переменных, глобальных констант и в аргументах атрибутов.

А вот со свойствами — нет. Вернее, можно будет использовать через constructor property promotion. Но это в действительности аргументы параметров, а не дефолтные значения свойств. Смотрите сами: 3v4l.org/r9iv4

C константами классов тоже нельзя будет использовать из-за проблем с порядком выполнения инициализации.

Зато этот RFC фактически добавляет поддержку вложенных атрибутов.
источник
2021 July 15
PHP Digest
В PHP 8.1 будут readonly свойства

https://wiki.php.net/rfc/readonly_properties_v2

Такие свойства нельзя изменить после инициализации.

Инициализировать можно только в том же скоупе, то есть в объявлении или в методе класса (можно обойти через Reflection или старый трюк с Closure::bind).

Свойства с флагом readonly  должны быть типизированные, но можно использовать тип mixed.

Если readonly свойство инициализировано объектом, то иммутабельным он не становится. То есть его внутреннее состояние все еще можно изменить.
источник
2021 July 16
PHP Digest
В 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. Он лаконичнее и доступен для статического анализа.
источник
2021 July 26
PHP Digest
PHP Дайджест № 208 (12 – 26 июля 2021)

Первая бета PHP 8.1 — будут readonly-свойства, first-class callable, и new в инициализаторах кроме свойств и констант класса. Nikolas Grekas предложил сделать пересечения типов nullable. А также другие новости, порция полезных инструментов, статьи и видео.

https://habr.com/ru/post/569626/
источник
2021 August 09
PHP Digest
Вышел PhpStorm 2021.2

В этом релизе сильно продвинулись с поддержкой дженериков и начали выкатывать поддержку PHP 8.1. Также исправили все проблемы с форматированием и улучшили рефакторинг Extract method.

Возможно вы уже успели обновиться, но если еще нет, то вот подробный разбор всех изменений и новых фич.

https://habr.com/ru/company/JetBrains/blog/571962/
источник
2021 August 16
PHP Digest
PHP Дайджест № 209 (1 – 16 августа 2021)

Вторая бета PHP 8.1 и много материалов об этой версии, два свежих RFC для PHP 8.2, ReactPHP и Amphp объединяют усилия над базой для асинхронного PHP. А также другие новости и релизы, порция полезных инструментов, статьи и видео.

https://habr.com/ru/post/573184/
источник
2021 August 30
PHP Digest
PHP Дайджест № 210 (16 – 30 августа 2021)

Вышла третья бета PHP 8.1, Swiftmailer больше не будет поддерживаться, PHP-FIG обсуждает обновляемые стандарты PER. Для PHP 8.2 предложены два новых RFC: про удаление динамических свойств и перегрузку операторов. Также в выпуске порция полезных инструментов, статьи и видео.

https://habr.com/ru/post/575354/
источник
2021 September 13
PHP Digest
PHP Дайджест № 211 (1 – 13 сентября 2021)

Вышел первый релиз-кандидат PHP 8.1, в Packagist обнаружено два зловредных пакета, а репозиторий популярного пакета AliceBundle пропал с GitHub.

Для PHP 8.2 предложены два новых RFC: про $this в качестве тайпхинта для возвращаемых значений, и про удаление старых видов колбэков.

Как всегда, в выпуске порция полезных инструментов, статьи и видео.

https://habr.com/ru/post/577660/
источник
2021 September 27
PHP Digest
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/
источник
2021 October 11
PHP Digest
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/
источник
2021 October 25
PHP Digest
PHP Дайджест № 214 (11 – 25 октября 2021)

Конфликт вокруг расширения Swoole и создание форка OpenSwoole; асинхронные фреймворки Amp и ReactPHP выпустили общую реализацию ивент-лупа; PHP 8.1 RC 4; принят первый RFC для 8.2.
Также в выпуске два поста от Никиты Попова, полезные статьи, видео.

https://habr.com/ru/post/585326/
источник
2021 November 15
PHP Digest
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/
источник
2021 November 16
PHP Digest
PHP Дайджест № 215 (1 – 15 ноября 2021)

PHP Дайджест № 215 (1 – 15 ноября 2021)

Вместе с Insolita пробуем новый формат дайджеста в телеграме. Напишите в комментариях как вам?


⚡️НОВОСТИ

🔹 PHP 8.1.0 RC 6
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
🔹 [RFC] Migrating to Github Issues
Предлагается перенести баги со старой системы bugs.php.net на GitHub в репозиторий php/php-src. Это касается всех багов, кроме секьюрити-проблем, которые не должны быть публичными.

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

🔹 [RFC] Deprecate dynamic properties
🔹 [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

🔹 Локальная 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.

—————

👉 В полном дайджесте на Хабре более подробно про эти новости, а также ссылки по фреймворкам.
источник
2021 November 22
PHP Digest
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
источник
2021 November 25
PHP Digest
Релиз PHP 8.1, запуск PHP Foundation и истории переезда на 8.0

Стрим закончился, доступна запись. Скоро будут таймкоды.

https://www.youtube.com/watch?v=5D337gaVPa4
YouTube
Релиз PHP 8.1, запуск PHP Foundation и истории переезда на 8.0
Обсудим апдейты нового релиза и новость о создании PHP Foundation — фонда в поддержку языка. А еще послушаем, как ребята из 4 компаний проекты на 8.0 перевозили: с чем столкнулись и что советуют.

https://opencollective.com/phpfoundation — о том, как поддержать PHP Foundation.

00:00:00 Intro
00:00:31 Start
00:01:25 Истории переезда на PHP8
00:03:25 Почему решили переезжать на 8-ку?
00:09:11 Какие были планы и стратегии и переводу проектов?
00:18:39 Какие инструменты использовались для проверок, организации переезда,
00:23:16 Какие проблемы всплыли в процессе и после переезда?
00:40:21 Итоги переезда
00:50:34 Советы тем, кто планирует переезжать
00:58:17 Обзор фич PHP8.1 c Валентином Удальцовым
01:46:00 Про PHP Foundation с Романом Пронским
02:20:00 PHP Quiz от Алексея Сундукова

Стрим ведут Валентин Удальцов (Пых, PHP Point), Александр Макаров (Yii, PHP Russia), Роман Пронский (PHP Digest, PHP Point).

Делиться кейсами переезда придут:
- Евгений Прохоров (Skyeng)
- Александр Данковцев (Авито)
- Иван Корноухов…
источник
2021 November 26
PHP Digest
Вышел 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
источник
2021 December 01
PHP Digest
PHP Дайджест № 216 (15 – 30 ноября 2021)

⚡️НОВОСТИ

🔹 Вышел PHP 8.1
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
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
[RFC] Deprecate dynamic properties
Несмотря на многочисленные споры, предложение принято с перевесом всего в два голоса 52:25!
Это значит, что в PHP 8.2 динамические (необъявленные) свойства будут объявлены устаревшими, а в PHP 9.0 они будут вовсе удалены.
Подробнее в PHP Дайджесте № 215.

🔹 Вышла Doctrine DBAL 3.2.0
Doctrine DBAL 3.2.0
Также обнаружена критическая SQL-инъекция в doctrine/dbal 3.0.0 — 3.1.3, стоит немедленно обновиться до 3.1.4 или новее.

🔹 Вышли Symfony 6.0, Symfony 5.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
[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.

Insolita.

🐘
источник
2021 December 02
PHP Digest
Видео дайджест в новом формате

https://www.youtube.com/watch?v=6em31j_LrSo

Сделали дайджест новостей по PHP и Laravel совместно с ребятами с канала CutCode. Как вам?
YouTube
PHP и Laravel дайджест ноябрь 2021. Обзор новостей по ПХП и Ларавел
Итак, ноябрь закончился и пришло время сделать обзор новостей PHP и laravel за месяц! Сегодня у нас будет новый формат - рассказывать PHP дайджест будет настоящий специалист - Роман Пронский! Роман уже много лет ведет дайджест PHP на Хабре. А во второй части выпуска я расскажу о нововведениях laravel, которые появились в ноябрьских апдейтах! Будет интересно!

#дайджестPHP#laravel#cutcode

Спикер по дайджесту PHP - Роман Пронский:
https://twitter.com/pronskiy
https://t.me/phpdigest

---------------------------------------------------------------------------------
❗️❗️❗️как делать сложные сайты на laravel? Это просто с cutcode!
Поддерживай мой проект - https://cutcode.ru/

🤖🤖🤖Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут - https://cutcode.ru/chat-bot
---------------------------------------------------------------------------------
⏰ Таймкоды:
00:00 Введение и программа выпуска
01:18 Релиз PHP 8.1
04:58 Прекращение поддержки PHP 7 версии
05:36 Создание фонда PHP
07:45 Деприкация динамических свойств…
источник