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

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

Вопросы, замечания, предложения: @pronskiy
Download Telegram
PHP Foundation Update, July 2022

Вышел ежемесячный отчёт PHP Foundation для спонсоров

https://thephp.foundation/blog/2022/08/04/php-foundation-update-july-2022/
Forwarded from Пых (Валентин Удальцов)
🏫 Мой продвинутый курс по PHP

Я уже пару лет мечтаю о том, чтобы масштабно и комплексно поделиться знаниями, и наконец-то мне представилась возможность записать свой продвинутый курс по PHP! Огромное спасибо Loftschool за предложение посотрудничать!

Осенью мы начнём работу над курсом, а пока приглашаю вас посмотреть мастер-класс про паттерн middleware, который я записал в качестве пролога.

https://youtu.be/yMrbatAM3bw
Разработка Yii3, 29 июля — 4 августа

⚡️Обновления

Yii Debug, Yii Debug API, Yii Debug Viewer
• Добавлена возможность исключать консольные команды из отслеживания.
• Реализован сбор информации об очередях.
• Реализована базовая версия инспектора приложения. Сейчас инспектор позволяет посмотреть конфигурации объектов контейнера и параметры конфигурации приложения, но в дальнейшем планируется расширить его возможности (просмотр дампа любого объекта из контейнера, просмотр конфигурации окружений, запуск консольных утилит psalm, phpunit, deptrac и т. д.)

Yii Cycle ORM
• Ветка с поддержкой Cycle ORM 2 стала основной.
• Добавлена поддержка psr/simple-cache версий ^2.0 и ^3.0.
• Добавлен генератор, обрабатывающий наследование таблиц.

Демо веб-приложения
• В LocaleMiddleware добавлена поддержка HTTP (ранее корректно работало только с HTTPS).
• Улучшен вывод консольной команды router/list.

Демо API-приложения
• Добавлен дебаггер.


Новые пакеты

yiisoft/app-console — шаблон для консольного приложения.


🎁 Релизы

Yii Console 1.3.0
• Событие запуска приложения теперь может содержать имя запускаемой консольной команды.

Yii Console Runner 1.1.0
• Реализована передача имени запускаемой команды в событие запуска приложения.

Yii Runner 1.2.0
• Объект с конфигурацией контейнера добавлен в сам контейнер. Это потребовалось для реализации инспектора в дебаггере.

Yii Swagger 1.2.2
• Добавлена поддержка yiisoft/cache версии ^2.0.


Сводка подготовлена по информации канала «Хроники Yii3».
PHP Annotated – Август 2022

Вышел августовский выпуск PHP Annotated от JetBrains с самыми интересными событиями, произошедшими в мире PHP за последний месяц.

https://blog.jetbrains.com/phpstorm/2022/08/php-annotated-august-2022/
Дайджест PHP – Сентябрь 2022

Подборка свежих новостей, инструментов, видео и материалов из мира PHP. Приятного чтения!

⚡️ НОВОСТИ

🔹 Вышел PHP 8.2 RC 3

Очередная версия RC была выпущена по расписанию. RC4 – ожидается 13 октября.

Подробно про все изменения в PHP 8.2 можно прочитать на сайтах PHP.Watch или stitcher.io.

🔹 Вышли PHP 7.4.32, PHP 8.0.24 и PHP 8.1.11

❗️Это выпуски с исправлением проблем безопасности. Всем пользователям рекомендуется обновиться.

🔹 Доступен PhpStorm 2022.3 EAP!

Вот что вы уже можете попробовать в рамках программы раннего доступа PhpStorm:
- Новой интерфейс (пока в бета-режиме, но доступен всем по опции в настройках)
- Полная поддержка PHP 8.2
- Предварительный просмотр быстрых исправлений
- И многое другое

🐘 ЯДРО PHP

Большинство новостей ядра подробно освещаются в серии PHP Core Roundup от PHP Foundation, поэтому лишь кратко пробежимся:

📊 RFC: json_validate #PHP 8.3

В этом RFC Juan Carlos Morales предлагает добавить новую функцию json_validate(), которая проверяет, является ли строка корректным JSON.

🤔 RFC: Improve unserialize() error handling #PHP 8.3

Tim Düsterhus предлагает бросать исключение UnserializationFailedException в случае ошибки сериализации.

🤔 RFC: StreamWrapper Support for glob() #PHP 8.3

Timmy Almroth предлагает реализовать в StreamWrappers поддержку функции glob().

🔹RFC: Deprecations for PHP 8.3

RFC со списком того, что предлагается объявить устаревшими в PHP 8.3 и удалить в PHP 9.

🛠 ИНСТРУМЕНТЫ

🔹play.phpsandbox.io – Попробуйте пакеты Composer прямо в браузере, ничего не устанавливая.

🔹cspray/annotated-container – Dependency Injection framework для конфигурирования контейнера PSR-11 с атрибутами.

🔹openai-php/client – Клиент для API OpenAI.
Существует также orhanerday/open-ai, если вам нужна альтернатива для доступа к API OpenAI GPT-3.

⚫️ SYMFONY

🔹Вышел symfony/webpack-encore 4.0.0. Некоторые зависимости (например, webpack) были перенесены из Encore в проект.

🔹StenopePHP/Stenope – Инструмент создания статических веб-сайтов для Symfony. Вы можете создать полноценное приложение Symfony, а затем развернуть его в виде статической страницы в любом удобном для вас месте.

🔴 LARAVEL

🔹ksassnowski/venture 4.0.0 – Пакет для создания и управления сложными асинхронными рабочими процессами в приложениях Laravel.

🔹spatie/laravel-model-info – Пакет для получения информации обо всех моделях.

🔹YorCreative/Laravel-Scrubber – Пакет для очистки конфиденциальной информации, нарушающей политики операционной безопасности, от случайной или неслучайной утечки разработчиками. Подробнее об использовании.

👨‍🏫 Laracon Online – Видеозаписи всех докладов с онлайн конференции по Laravel.
Тейлор представил Laravel Bootcamp – новый обучающий сайт по Laravel.

🟢 ДРУГИЕ ФРЕЙМВОРКИ

🔹Вышел spiral/framework 3.0.0 – Большое обновление фреймворка от создателей RoadRunner.

🔹Вышел Phalcon PHP Framework 5.0 – Подробный список нововведений приведён в документации.

🔹Вышел api-platform/api-platform 3.0 – Фреймворк построен поверх Symfony и позволяет создавать REST и GraphQL API и многое другое.

🔹Appwrite 1.0 – Крупный стабильный выпуск решения с открытым исходным кодом backend-as-a-service.

🔹Вышли обновления пакетов Yii Strings 2.1.0, Yii Middleware Dispatcher 3.0.0, Yii Profiler 2.0.0, Yii Message Translator 1.1.1, Yii Cache File Handler 2.0.1.
Более подробно новости Yii освещаются в канале «Хроники Yii3».

📄 СТАТЬИ

🔹Как мы решаем проблемы со склонением слов для задач seo-оптимизации с помощью phpMorphy от Александра Корабельникова.

🔹PHP: атрибуты vs аннотации: оптимизируем метадату Doctrine от Романа Ушакова.

🔹Выходя за рамки ООП. Разработка расширений для PHP на PHP от Александра Макарова.



Ещё больше новостей и ссылок в сентябрьском выпуске PHP Annotated от JetBrains 💜

🎬 Дайджест PHP в видео-формате на канале CutCode
Forwarded from Пых (Валентин Удальцов)
#[<T>] Дженерики через атрибуты

Роман Пронский в своём блоге предлагает реализовать стираемые дженерики путём расширения синтаксиса атрибутов.

Ход мысли такой. Сейчас мы описываем общие типы для Psalm и PHPStan в phpdoc-ах, то есть, по сути, и используем стираемые дженерики, только с не особо стандартизованным синтаксисом и в комментариях, КАРЛ. А ещё у нас есть атрибуты — синтаксис в PHP, предназначенный для метаинформации. Так почему бы нам не объединить две эти вещи? Так как атрибуты в текущем виде слабо подходят для типизации, Рома предлагает расширить их синтаксис, в частности, разрешить ставить атрибуты над выражениями и перед типом возвращаемого значения.

https://pronskiy.com/blog/generics-via-attributes-in-php/

Я считаю, что это интересный альтернативный взгляд на дженерики в PHP, но с ним связано несколько проблем:

1. Нарушение принципа единой отвественности для атрибутов. Мы либо получим неоднозначность в определении понятия "атрибут", либо просто дженерики с похожим синтаксисом.

2. Инстанциированные атрибуты можно получить только через рефлексию. Рефлексия — это рантайм и автолоадинг. Статанализ же в идеале вообще не должен запускать анализируемый код. Именно поэтому появились такие проекты, как PHP Parser и Better Reflection. Если же обновлённые атрибуты будут использоваться только как синтаксис, то нет смысла их называть атрибутами.

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

Получается, что замаскированные под атрибуты дженерики технически не смогут ими быть. Ну а в таком случае проще реализовать стираемые дженерики с привычным синтаксисом array<string, object>. Если же по каким-то техническим причинам необходимо оборачивать декларации в #[], то пусть это просто будут дженерики с таким синтаксисом.

Что касается самой концепции стираемых дженериков, я её однозначно поддерживаю. Да, такой подход требует наличия внешнего анализатора, но взамен даёт стандартизированный синтаксис, нативный парсинг кода с дженериками и популяризацию обобщённого программирования среди PHP-разработчиков.

Я очень рад, что Рома в очередной раз подогрел дискуссию вокруг дженериков. Любой подобный движ полезен для сообщества и приближает нас к результату.
Дайджест PHP – Октябрь 2022

Подборка свежих новостей, инструментов, видео и материалов из мира PHP. Приятного чтения!

⚡️ НОВОСТИ

🔹 Вышел PHP 8.2 RC 5

Очередная версия RC была выпущена по расписанию. Шестой RC ожидается 10 ноября и он будет последним перед финальным релизом PHP 8.2.

Подробно про все изменения в PHP 8.2 можно прочитать на сайтах PHP.Watch или stitcher.io.

🔹 Вышли PHP 8.0.25 и PHP 8.1.12

❗️Это выпуски с исправлением проблем безопасности. Всем пользователям рекомендуется обновиться. Подробнее на сайте PHP.Watch.

🐘 ЯДРО PHP

Большинство новостей ядра подробно освещаются в серии PHP Core Roundup от PHP Foundation, поэтому лишь кратко пробежимся:

RFC: json_validate

RFC принят, новую функцию json_validate() добавят в PHP 8.3.

RFC: Improve unserialize() error handling

Tim Düsterhus предлагал добавить новое исключение UnserializationFailedException, которое выбрасывается в случае возникновения ошибки сериализации.

RFC бурно обсуждался в Twitter и в конце концов часть, касающаяся выбрасывания исключения, не была принята. Вместо этого будет увеличен уровень выдаваемой ошибки с E_NOTICE до E_WARNING.

📣 RFC: Randomizer Additions

Tim Düsterhus и Joshua Rüsweg предлагают добавить новые методы классу Randomizer, которые реализуют часто используемые операции, но сложно реализуемые в пользовательском коде.

📣 RFC: Destructuring Coalesce

Bob Weinand предложил добавить оператор для значений по умолчанию в деструктивных присваиваниях.

🛠 ИНСТРУМЕНТЫ

🔹dunglas/frankenphp – Современный сервер приложений PHP, написанный на Go.

🔹Saeghe – Современный менеджер пакетов PHP. Теперь у PHP есть ещё один менеджер пакетов, он использует GitHub ссылки в качестве зависимостей.

🔹composer-unused/composer-unused – Пакет показывает неиспользуемые зависимости composer.

🔹heiglandreas/holidayChecker – Пакет для проверки праздничных дней.

🔹mevdschee/php-crud-api - Однофайловый PHP-скрипт, добавляющий REST API к базе данных SQL.

🔹Laragon - Ещё один инструмент локальной среды разработки: портативная, изолированная, быстрая и мощная альтернатива XAMPP и подобным. Подробнее об использовании.

⚫️ SYMFONY

❗️ Twig security release: Possibility to load a template outside a configured directory when using the filesystem loader от Fabien Potencier.

🔹emr-dev/sf-bug-bundle – Пакет для совместного использования страниц профилировщика. Подробнее об использовании.

🔴 LARAVEL

🔹spatie/laravel-dynamic-servers – Пакет для динамического создания и удаления серверов. Подробнее об использовании.

🔹creagia/laravel-sign-pad – Пакет для подписания документов и, по желанию, генерации PDF, связанных с моделями Eloquent. Подробнее об использовании.

🔹hammerstonedev/sidecar – Развертывание и выполнение функций AWS Lambda в Laravel.

📄 СТАТЬИ

🔹Цветные функции: ищем плохие архитектурные паттерны от Александра Кирсанова.

🔹Перестаньте использовать SQLite в Unit-тестах перевод статьи от Вадима Кравец.

🔹Yii3 Overview 1. Вступление от Дмитрия Дерепко.

🔹Декомпозируем регулярные выражения от Юрия Каткова.

🎬 ВИДЕО

🔹Пыхэфир #2 c Валентином Удальцовым.

🔹PHP-линч #1 – Первый в мире PHP-линч на канале PHP Point.

🔹RND PHP #5 – Митап сообщества PHP разработчиков города Ростов-на-Дону.

👨‍💻 СОБЫТИЯ

🔹PHP Russia – Крупнейшая конференция по PHP в России пройдёт 24-25 ноября в рамках HighLoad++ 2022.

🔹Podlodka PHP Crew – Недельная конференция с экспертами из топовых компаний — сессии в Zoom, сообщество в Slack и ламповая атмосфера.



Ещё больше новостей и ссылок в октябрьском выпуске PHP Annotated от JetBrains 💜

🎬 Дайджест PHP в видео-формате на канале CutCode
Дайджест PHP – Ноябрь 2022

Подборка свежих новостей, инструментов, видео и материалов из мира PHP. Приятного чтения!

⚡️ НОВОСТИ

🔹 Вышел PHP 8.2 RC 7

В этом году добавлена ещё одна, седьмая RC-версия, выход PHP 8.2.0 GA откладывается до 8 декабря.

Bob Weinand обнаружил несколько ошибок, которые редко встречаются в искусственном коде, но с большой вероятностью могут воспроизвестись в реальном коде.

Завершение цикла PHP 7

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

🔹 Вышли PHP 8.0.26 и PHP 8.1.13

🐛 Это выпуски с исправлением ошибок.

🎂 PHP Foundation исполнился 1 год

Год назад компания JetBrains опубликовала новость о создании PHP Foundation.

За прошедший год PHP Foundation поддержал работу 6 разработчиков ядра и ежемесячно публиковал обновления в серии PHP Core Roundup.

Ознакомьтесь с отчетом фонда за 2022 год.

Поддержать PHP Foundation можно на OpenCollective.

Принят PSR-20: Clock

🔹 Группа PHP-FIG приняла PSR-20 с рекомендуемым интерфейсом ClockInterface для работы с датой и временем.

🐘 ЯДРО PHP

RFC: Randomizer Additions

RFC: Destructuring Coalesce

📣 RFC: Dynamic class constant fetch

Ilija Tovilo предложил добавить синтаксис для поиска констант класса.

📣 RFC: Arbitrary static variable initializers

Также Ilija Tovilo предлагает расширить синтаксис, позволяющий инициализатору статической переменной содержать произвольные выражения.

📣 RFC: Use exceptions by default in SQLite3 extension

Предлагается постепенно отказаться от предупреждений в модуле SQLite3.

📣 RFC: Readonly amendments

Nicolas Grekas и Máté Kocsis предлагают улучшить свойства и классы readonly.

🛠 PhpStorm

🔹 AMA с командой PhpStorm

🔹 Вышел PhpStorm 2022.3 RC – Полная поддержка PHP 8.2, новый пользовательский интерфейс (предварительный просмотр), поддержка Redis и многое другое.

🔹 VKCOM/modulite – Честная модульность внутри PHP.

🔴 LARAVEL

🎬 AMA About Laravel with Taylor Otwell

🔹 Как мы провели второй русскоязычный Laravel-митап от Михаила Радионова.

🔹 protonemedia/laravel-splade – Пакет для создания интерактивности непосредственно в Blade, без необходимости писать JS-код.

🟢 Yii

🔹 Новости Yii 2022, выпуск 2 от Александра Макарова.

🔹 Yii3 Overview 2. Вспомогательные инструменты разработки от Дмитрия Дерепко.

📄 СТАТЬИ

🔹 Как мы наш большой проект на KPHP мигрировали от Алексея Васильева.

🔹 KPHP спустя 2 года от Александра Кирсанова.

🔹 Старый код в новой обёртке — как наша команда избавлялась от legacy от Станислава Решетнева.

🎬 ВИДЕО

🔹 На Ютуб канале PHP Point вышли новые выпуски PHP-линча, где Валентин Удальцов разбирает несколько пакетов и комментирует код.



🎬 Дайджест PHP в видео-формате на канале CutCode
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел PHP 8.2 🎉

PHP 8.2 — большое обновление языка PHP.

Оно содержит множество новых возможностей, включая readonly-классы, самостоятельные типы null, false и true, устаревшие динамические свойства, улучшение производительности и многое другое.

https://www.php.net/releases/8.2/ru.php
Дайджест PHP – Январь 2023

Подборка свежих новостей, инструментов, видео и материалов из мира PHP. Приятного чтения!

⚡️ НОВОСТИ

🔹 Вышли PHP 8.0.27, PHP 8.1.14, PHP 8.2.1

В этих версиях исправлена ошибка безопасности.

Завершилась активная поддержка PHP 8.0, теперь версия будет получать только секьюрити-обновления.

🛠 What’s Next in PhpStorm: The 2023.1 Public Roadmap

В первом выпуске 2023 года команда JetBrains стремится повысить производительность и ускорить индексирование, добавить интеграцию с 3v4l.org, улучшить поддержку дженериков, а также тегов PHPStan и Psalm.

🔹 Вышел Symfony 6.2

Улучшенная поддержка Emoji, аутентификатор Access Token, встроенные атрибуты Cache+Security+Template+Doctrine, улучшенная поддержка перечислений и многое другое.
Ознакомьтесь со списком новых возможностей, чтобы узнать об основных особенностях этого нового выпуска.

🔹Вышли Psalm 5, Xdebug 3.2.0, PHPStan 1.9.0, Drupal 10, amphp/amp 3.0.0, PHP-DI 7.0

🐘 ЯДРО PHP

RFC: Dynamic class constant fetch

RFC: More Appropriate Date/Time Exceptions

📊 RFC: Asymmetric Visibility

📣 RFC: List\unique() and Assoc\unique()
Ilija Tovilo предложил добавить две новые функции. Основная проблема в том, что функция array_unique использует нестрогое сравнение, новые фунции будут использовать строгое сравнение, первая — отбрасывая ключи, а вторая — сохраняя их.

📣 RFC: Unicode Text Processing
Derick Rethans предложил новый класс, чтобы использовать и обрабатывать текст (Unicode) более удобным для разработчиков способом по сравнению с модулем intl.
Все методы нового класса Text будут возвращать новый (неизменяемый) объект.

📣 RFC: Add SameSite cookie attribute parameter
George Peter Banyard предлагает добавить параметр SameSite во все соответствующие функции.

🔹 18 функций/изменений для улучшения ядра PHP
Thomas Hruska реализовал cubiclesoft/php-ext-qolfuncs – набор функций для улучшения жизни PHP-разработчика.
Сради них есть несколько довольно интересных дополнений: str_splice(), str_realloc(), fread_mem(), is_reference() и refcount().
С нетерпением ждём появления официального RFC.

📄 СТАТЬИ

🔹 Вышел PHP 8.2: разбираем главные изменения – Александр Макаров, Валентин Удальцов и Владлен Гилязетдинов разбираются, какие новые фичи появились в PHP 8.2, насколько эти изменения глобальны и какую роль в них сыграл проект РHP Foundation.

🔹 Откуда что берется: интеграция с ЕСИА на языке PHP

🔹 Как мы интегрировали и настроили для работы Conventional Commits в PHPStorm

🔹 Честные модули внутри PHP: теперь они существуют и запись доклада с HighLoad++

🔹 Популяризация JSON-RPC (часть 1)

🔹 Работа с Веб-сокетами на PHP

🔹 В очередь, ...! Как управлять состоянием системы через события

🔹 Зачем и как использовать Объекты передачи данных в Laravel

🎬 ВИДЕО

🔹 ID-баттл: UUID vs автоинкремент

🔹 Docker for PHP developer: tips and tricks

🔹 PHP: почему его вечно хоронят, актуально ли его учить и чем он полезен бизнесу



🎬 Дайджест PHP в видео-формате на канале CutCode

Ещё больше новостей и ссылок в январском выпуске PHP Annotated от JetBrains 💜
Please open Telegram to view this post
VIEW IN TELEGRAM
Дайджест PHP – Февраль 2023

Подборка свежих новостей, инструментов, видео и материалов из мира PHP. Приятного чтения!

⚡️ НОВОСТИ

🔹 Вышли PHP 8.0.28, PHP 8.1.16 и PHP 8.2.3

❗️Исправлены уязвимости CVE-2023-0568, CVE-2023-0567 и CVE-2023-0662.

🔹 Вышел Laravel 10

🔹 Вышел PHPUnit 10

Грядет большой релиз стиля кодирования PER

Версия 1.0.0 была копией PSR-12. Следующая версия посвящена расширению спецификации до последних функций PHP и исправлению несоответствий.

🐘 ЯДРО PHP

RFC: Asymmetric Visibility

Ilija Tovilo и Larry Garfield получили необходимые отзывы и, возможно, представят пересмотренную версию RFC, а пока они сосредоточатся на RFC по добавлению хуков и аксессоров к свойствам.

RFC: Readonly amendments

📣 RFC: Path to Saner Increment/Decrement operators – George Peter Banyard предлагает улучшить операторы инкремента и декремента.

📣 RFC: Pass Scope to Magic Accessors – Nicolas Grekas и Ilija Tovilo предлагают передавать область вызова в магические аксессоры, чтобы сделать её получение более тривиальным.

📣 RFC: Typed class constants – Benas Seliuginas и Máté Kocsis предлагают добавить поддержку объявления типов констант для классов и интерфейсов.

📣 RFC: Working With Substrings – Thomas Hruska предлагает оптимизировать работу с подстроками.

🛠 PhpStorm 2023.1 Early Access Program Is Open!

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

SYMFONY

🔹 Оптимизация OneToMany коллекций Doctrine

🔹 Докеризируем Symfony

🔹 Clean Architecture, DDD, гексагональная архитектура. Разбираем на практике blog на Symfony

🔴 LARAVEL

🎬 Обзор Laravel 10. Что нового в обновлении и попытка апгрейда проекта с Laravel 9 до 10 версии

🎬 Разбор метода Macro

🎬 Разбор Query Builder, Collections, Model в Laravel

🟢 YII

🔹 Yii Validator — простой и мощный

🔹 Yii news 2023, issue 1

🛠 ИНСТРУМЕНТЫ

🔹 paratestphp/paratest – Пакет параллельного тестирования для PHPUnit. Вышла версия 7.0.0.

🔹 spatie/php-structure-discoverer – Пакет для автоматического обнаружения классов в PHP-приложении.

🔹 TheDragonCode/benchmark – Простой инструмент для сравнения времени, необходимого для выполнения двух различных блоков кода.

🔹 Sammyjo20/Saloon – Идея пакета заключается в том, чтобы упростить создание SDK для сервисов или организовать доступ к различным API в едином стиле.

📄 СТАТЬИ

🔹 Импорт полной базы ФИАС за 9 часов, How To

🔹 Простой бенчмарк для PHP приложений

🔹 Двухуровневый CI-процесс PHP-проекта

🔹 Как правильно проверять сложность пароля пользователя при регистрации

🔹 Не пытайтесь обезопасить ввод. Экранируйте вывод

🔹 PHPStorm + XDebug + Docker

🔹 Итоги третьего ежегодного опроса PHP-сообщества

🔹 Готовим версионирование API в PHP-фреймворках

💙АУДИО/ВИДЕО

🎬 PHP-линч #9

🎵 Самописные инфраструктурные компоненты

📅 СОБЫТИЯ

💙 Podlodka PHP Crew × Точка – 27 февраля - 3 марта.



Ещё больше новостей и ссылок в февральском выпуске PHP Annotated от JetBrains 💜
Please open Telegram to view this post
VIEW IN TELEGRAM
Дайджест PHP – Апрель 2023

Подборка свежих новостей, инструментов, видео и материалов из мира PHP. Приятного чтения!

⚡️ НОВОСТИ

🔹 Вышли PHP 8.1.18 и PHP 8.2.5

🔹 Вышел Pest 2.0

🔹 Вышел Bref 2.0

🔹 Вышел стиль кодирования PER 2.0

🔹 Выбраны релиз-менеджеры PHP 8.3

💜 PHP Foundation Update, March 2023

🛠 Вышел PhpStorm 2023.1

🐘 ЯДРО PHP

RFC: Arbitrary static variable initializers

📣 RFC: Clone with

📣 RFC: New core autoloading mechanism with support for function autoloading

📣 Jakub Zelenka предложил сформировать Технический комитет PHP

🔴 LARAVEL

🔹 Вышел Valet 4.0

🔹 Вышел Laravel IDEA 7.0

🎬 Обзор Spatie route attributes

🎬 Обзор пакета Fortify для Laravel

🛠️ ИНСТРУМЕНТЫ

🔹 crazywhalecc/static-php-cli - Инструмент для сборки PHP-приложений в один бинарный файл без лишних зависимостей.

🔹 aschmelyun/subvert - Создание субтитров, аннотаций и глав из видео за считанные секунды.

🚧 NativePHP - Marcel Pociot создаёт инструмент для запуска десктопных приложений Laravel/PHP поверх Electron или Tauri.

📄 СТАТЬИ

📄 Как и зачем тестировать код на бэкенде: рекомендации для новичков

📄 Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector

📄 Как разминировать свой код на PHP (и не только)?

📄 «Давайте перепишем всё с нуля». Почему такой подход интереснее программистам, а не бизнесу

📄 Компилируем быстрые консольные .exe приложения на PHP 8.1 в 2023 году, а почему бы и нет?

📄 Проектируем реактивное — Message-Driven системы на PHP

📄 ЦУЦ — или как свести 15 тысяч товаров от разных поставщиков на коленке

📄 Я пробовал GitHub Copilot, и я в восторге

🎬 ВИДЕО

🔹 PHP-линч #10

🔹 PHP-линч #11

🔹 PHP-линч #12



Ещё больше новостей и ссылок в апрельском выпуске PHP Annotated от JetBrains 💜
Please open Telegram to view this post
VIEW IN TELEGRAM
Дайджест PHP – Июнь 2023

Подборка свежих новостей, инструментов, видео и материалов из мира PHP. Приятного чтения!

⚡️ НОВОСТИ

❗️ Вышли PHP 8.0.29, PHP 8.1.20 и PHP 8.2.7

🔹 PHP 8.3.0 Alpha 1 доступен для тестирования

❗️ Исследователь изменил файл composer.json 14 PHP-библиотек в репозитории Packagist в попытке найти работу

🔹 Вышел Statamic 4

🛠 Открыта программа раннего доступа PhpStorm 2023.2


🐘 ЯДРО PHP

📣 RFC: Deprecate functions with overloaded signatures

RFC: PHP Technical Committee

RFC: Use exceptions by default in SQLite3 extension

📣 RFC: Marking overridden methods (#[\Override])

📣 RFC: NameOf


🔴 LARAVEL

🎬 Гайд по отношениям в Laravel

🎬 Обзор администраторской панели MoonShine

🎬 PEST тесты в Laravel. Обзор фреймворка для написания тестов


SYMFONY

🔹 Вышел Symfony 6.3.0

📄 Попрощайтесь с проверками на null и исключениями: использование монады Maybe в Symfony


🟢 YII

📄 Новости Yii 2023, выпуск 2

🎬 Конфигурация приложения в Yii3


📄 СТАТЬИ

🔹 gRPC сервер на PHP с помощью Roadrunner, Spiral Framework, Docker

📄 Долгоиграющие приложения на PHP

📄 Как создать приватные репозитории composer

📄 Лови мутанта! Мутационные тесты: зачем и как

📄 Анализ и приоритизация задач в тикетной системе: как красиво реализовать на PHP

📄 Хождение по граблям PDO: что скрывают за собой современные PHP ORM

📄 Пишем Telegram бота для распознавания голосовых сообщений и их обработки с помощью AI

📄 Использование ICU Message Format в PHP

🔹 Репозитории и их истинное назначение


🎬 ВИДЕО

🔹PHP-линч #16

🔹PHP-линч #17

🔹PHP-линч #18



Ещё больше новостей и ссылок в июньском выпуске PHP Annotated от JetBrains 💜
Please open Telegram to view this post
VIEW IN TELEGRAM
Дайджест PHP – Июль 2023

Подборка свежих новостей, инструментов, видео и материалов из мира PHP. Приятного чтения!

⚡️ НОВОСТИ

🔹 Вышли PHP 8.1.21 и PHP 8.2.8

🔹 PHP 8.3.0 Beta 1 доступен для тестирования

🔹 Вышел Livewire 3

🔹 Вышел NativePHP

🛠 Вышел PhpStorm 2023.2 Beta

🔹 Вышел Pest «Spicy Summer»


🐘 ЯДРО PHP

RFC: Marking overridden methods (#[\Override])

RFC: Deprecations for PHP 8.3

RFC: Deprecate functions with overloaded signatures

RFC: Deprecate remains of string evaluated code assertions

RFC: Path to Saner Increment/Decrement operators

RFC: PDO driver specific sub-classes

RFC: Interface Default Methods

📣 RFC: Closure self reference


🔴 LARAVEL

🔹 Представлены 4 новых пакета: Folio, Volt, Herd и Prompts

🔹 Новые возможности и изменения Livewire v3

📄 Постановка задач в очередь Laravel сторонними сервисами

🎬 Middlewares безопасности в проектах на Laravel

🎬 Отношения hasOneThrough и hasManyThrough


SYMFONY

🔹 Romaixn/gosumer – Использование сообщений Symfony Messenger с помощью Go.


🟢 YII

🔹 yiisoft/proxy-middleware 1.0.0

🔹 yiisoft/rate-limiter 3.0.0

🔹 Embracing the Future: Yii Framework Updates and Yii 2.2 Discussions


📄 СТАТЬИ

📄 PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами

📄 Разбираемся с асинхронным PHP

📄 Генерация и валидация чисел по алгоритму Луна

📄 Неудачное внедрение Redis Cluster в монолит на PHP 7.2.X

📄 Как два байта переслать: контрибьютим в KPHP

📄 Управление памятью в PHP. Сборка мусора, слабые ссылки и прочая челядь


🗓 СОБЫТИЯ

🔹Podlodka PHP Crew, 16 – 20 октября



Ещё больше новостей и ссылок в июльском выпуске PHP Annotated от JetBrains 💜

PHP-дайджест в видео формате на канале CutCode 🎬
Please open Telegram to view this post
VIEW IN TELEGRAM
Дайджест PHP – Сентябрь 2023

Подборка свежих новостей, инструментов, видео и материалов из мира PHP. Приятного чтения!

⚡️ НОВОСТИ

❗️ Вышли PHP 8.0.30, PHP 8.1.22 и PHP 8.2.9

🔹 Вышли PHP 8.1.23 и PHP 8.2.10

🔹 Вышел PHP 8.3.0RC2

🔹 Предсавлен RFC Vote

🔹 Вышел WordPress 6.3 «Lionel»

🛠 Вышел PhpStorm 2023.2

🛠 PhpStorm 2023.3 Roadmap

🔹 Вышел CakePHP 5

🔹 Вышел Filament 3


🐘 ЯДРО PHP

RFC: Support optional suffix parameter in tempnam

📊 RFC: Increasing the default BCrypt cost

📣 RFC: DOM HTML5 parsing and serialization

📣 RFC: XML_OPTION_PARSE_HUGE

📣 RFC: Add 4 new rounding modes to round() function

📣 RFC: A new JIT implementation based on IR Framework


🔴 LARAVEL

🎬 Обзор пакета Laravel Folio

🎬 Обзор пакета Laravel Prompts

🎬 Обзор NativePHP

📄 Организация кода в Laravel. Личный опыт

📄 Первый взгляд на MoonShine


SYMFONY

🔹 gRPC сервер и клиент на Symfony

📄 EasyAdmin и Mercure: реальный юзкейс

Twig 2 end of life


📄 СТАТЬИ

🔹 Ускоряем PHPUnit Code Coverage с помощью PCOV

📄 PHP Fibers: практический пример

📄 Как мы планировали повысить версию PHP за месяц, а потратили на это год

📄 Почему тип поля enum на уровне базы — зло

📄 Уменьшаем количество багов в коде расширяя возможности статического PHP анализатора Psalm

📄 Технология передачи данных в секретный контур

📄 Интернет из PHP

📄 Неортодоксальный Eloquent Часть 1, Часть 2


🎬 ВИДЕО

🔹 PHP-линч #20

🔹 PHP-линч #21

🔹 Атрибуты в PHP

🔹 Typhoon 0.2.0


🗓 СОБЫТИЯ

🔹Podlodka PHP Crew, 16 – 20 октября



Ещё больше новостей и ссылок в сентябрьском выпуске PHP Annotated от JetBrains 💜

PHP-дайджест в видео формате на канале CutCode 🎬
Please open Telegram to view this post
VIEW IN TELEGRAM
Дайджест PHP – Октябрь 2023

Подборка свежих новостей, инструментов, видео и материалов из мира PHP. Приятного чтения!

⚡️ НОВОСТИ

🔹 Вышли PHP 8.1.25 и PHP 8.2.12

🔹 Вышел PHP 8.3.0RC5

🎂 Symfony исполнилось 18 лет

🛠 Открыта программа раннего доступа PhpStorm 2023.3


🐘 ЯДРО PHP

RFC: Increasing the default BCrypt cost

RFC: A new JIT implementation based on IR Framework

RFC: DOM HTML5 parsing and serialization

📣 RFC: Rounding Integers as int

📣 RFC: Unbundle ext/imap, ext/pspell, ext/oci8, and ext/PDO_OCI

📣 RFC: RFC1867 for non-POST HTTP

📣 RFC: Multibyte for trim function mb_trim, mb_ltrim and mb_rtrim

📣 RFC: Change the edge case of round()


🔴 LARAVEL

📄 Постановка задачи (Job) в очередь Laravel из хранимой процедуры или триггера PostgreSQL

📄 Persistent-request библиотека для надежных запросов

🎬 Директива Props в blade-компонентах

🎬 Обзор Livewire 3 и Volt

🎬 LazyCollections и PHP генераторы


🟢 YII

🔹 Yii Router Composer Attribute Collector

🔹 Yii Strings 2.3

🔹 Yii Auth 3.1

🎬 Инструменты обеспечения качества библиотек в PHP


📄 СТАТЬИ

📄 Code smells — обзор на примере PHP

📄 Какой длины должны быть классы — когда «чистый» код на самом деле не так уж и хорош


🎬 ВИДЕО

🔹 Разбираем срез знаний для "Хардкорного курса PHP"



Ещё больше новостей и ссылок в октябрьском выпуске PHP Annotated от JetBrains 💜

PHP-дайджест в видео формате на канале CutCode 🎬
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел PHP 8.3 🎉

PHP 8.3 — большое обновление языка PHP.

Оно содержит множество новых возможностей, таких как явная типизация констант классов, глубокое клонирование readonly-свойств, а также улучшения класса Randomizer.

Как всегда, в нём также улучшена производительность, исправлены ошибки и многое другое.

https://www.php.net/releases/8.3/ru.php
Дайджест PHP – Ноябрь 2023

Подборка свежих новостей, инструментов, видео и материалов из мира PHP. Приятного чтения!

⚡️ НОВОСТИ

🎬
Обзор нововведений PHP 8.3

⚠️
PHP 8.0 больше не получает обновления безопасности

🔹 Вышли PHP 8.1.26 and PHP 8.2.13

🎂 PHP Foundation исполнилось 2 года

🔹 Экосистема разработки в 2023 году


🐘 ЯДРО PHP

📣 RFC: Resource to object conversion

📣 RFC: Release cycle update

📣
RFC: Improve callbacks in ext/dom and ext/xsl

📣
RFC: Change how JIT is disabled by default

📣
RFC: Final anonymous classes

📣 RFC: Property Hooks


🔴 LARAVEL

🔹 Представлен Laravel Pulse

🔹 Вышел Tinkerwell 4

📄 MoonShine 2.0. Что нового?

📄 Альтернатива Nova: почему решили перейти с самописного решения на Orchid

📄 Сортировка в Laravel по полям relation-ов

🎬 Подробный гайд по Form Requests в Laravel

🎬 Разработка собственного драйвера Socialite


⚫️ SYMFONY

🔹 Вышли Symfony 6.4 и 7.0

📄 Symfony под капотом: Symfony Messenger и механизм повторной обработки сообщений при ошибках

📄 Типичный Swagger без гмо


🟢 YII

🔹 Yii Database 1.2

🔹 Yii Widget 2.1

🔹 Yii Config 1.4


📄 СТАТЬИ

📄 Безотказные очереди в RabbitMQ: Гарантированная доставка сообщений

📄 А был ли баг? Может бага и не было? Зачем, как и чем тестировать PHP код

📄 Что такое гексагональная архитектура. Разделение бизнес-логики и инфраструктуры с помощью портов и адаптеров

🔹 PSR и суффиксы для интерфейсов


🎬 ВИДЕО

🔹 RND PHP #6

🔹 Александр Макаров - «Следуй за мечтой»

🔹 LivePHP SPb Meetup #1


🎙 АУДИО

🔹 Сколько можно заработать на курсе по PHP?



Ещё больше новостей и ссылок в ноябрьском выпуске PHP Annotated от JetBrains 💜

PHP-дайджест в видео формате на канале CutCode 🎬
Please open Telegram to view this post
VIEW IN TELEGRAM