Хроники Yii3
623 subscribers
43 photos
1.7K links
Описание процесса разработки фреймворка из первых рук 😎

Обсуждение:
https://yangx.top/yii3ru

Сводка по всем пакетам:
https://www.yiiframework.com/status/3.0

Поддержать разработчиков:
https://opencollective.com/yiisoft
加入频道
⚡️ #yiisoftDefinitions #yiisoftDi #yiisoftFactory

Хелперы ReferencesArray и DynamicReferencesArray перенесены из пакета Yii Dependency Injection (PR) в пакет Yii Definitions (PR).

В Yii Factory удалены дефинишены и классы для работы с ними, которые ранее были перенесены в Yii Definitions (PR).

—————

#yiisoftAssets #yiisoftYiiConsole #yiisoftCsrf #yiisoftDb #yiisoftForm #yiisoftMailerSwiftmailer #yiisoftMailerSymfony #yiisoftYiiQueue #yiisoftTranslator #yiisoftView #yiisoftWidget #yiisoftYiiBootstrap5 #yiisoftYiiDataview #yiisoftYiiDebug #yiisoftYiiDebugViewer #yiisoftYiiSwagger #yiisoftApp #yiisoftAppApi #yiisoftDemo #yiisoftDemoApi

Все пакеты и приложения, использующие дефинишены, переделаны на работу с пакетом Yii Definitions:

- Yii Assets (PR)
- Yii Bootstrap 5 (PR)
- Yii Console (PR)
- Yii CSRF (PR)
- Yii Data Widgets (PR)
- Yii DB (PR)
- Yii Debug (PR)
- Yii Debug Viewer (PR)
- Yii Form (PR)
- Yii Mailer Swiftmailer (PR)
- Yii Mailer Symfony (PR)
- Yii Message Translator (PR)
- Yii Queue (PR)
- Yii Swagger (commit)
- Yii View (PR)
- Yii Widget (PR)

- шаблон веб-приложения (PR),
- шаблон API-приложения (PR),
- демо веб-приложения (PR),
- демо API-приложения (PR).
⚡️ #yiisoftYiiQueue

Сделали рефакторинг и исправили ошибки в консольных командах пакета Yii Queue: теперь они работают и поддерживают "ленивую" загрузку (PR).

Спасибо Алексею Черноусову за PR и Александру Борисову за ревью 👍
⚡️ #yiisoftYiiQueue

Поправили тесты в пакете Yii Queue (PR).
⚡️ #yiisoftYiiQueue #yiisoftYiiQueueAmqp

Адаптировали тесты в Yii Queue к стабильной версии Yii Factory (PR) и исправили ошибки psalm в Yii Queue AMQP Driver (PR).
⚡️ #yiisoftYiiQueue

Исправили ошибки psalm в пакете Yii Queue (PR).
⚡️ #yiisoftYiiQueue

В пакете Yii Queue удалили все события (PR), так как единственный кейс для их использования — это отслеживание метрик, а это можно (и лучше) делать в других местах.
⚡️ #yiisoftYiiQueue #yiisoftValidatorRuleHandlerContainer

В пакетах Yii Queue (PR) и Yii Validator Rule Handler Container (PR) добавлена поддержка yiisoft/definitions версии ^2.0.
⚡️ #yiisoftYiiQueue #yiisoftYiiRunnerHttp #yiisoftYiiRunnerRoadrunner

Исправлены ошибки в конфигурациях процессов GitHub Actions в пакетах:
- Yii Queue (PR)
- Yii HTTP Runner (PR)
- Yii RoadRunner Runner (PR)
⚡️ #yiisoftYiiQueue

В пакете Yii Queue подняли минимальную требуемую версию PHP до ^8.0 и psr/log до ^2.0|^3.0 (PR), а также добавили тесты воркера (PR).
👍2👎1
⚡️ #yiisoftYiiQueue

В пакете Yii Queue подняли версию dev-зависимости yiisoft/test-support до ^3.0 (PR).
⚡️ #yiisoftYiiQueue

В пакете Yii Queue избавились от сомнительных поведений (behaviors) и заменили их мидлварями (PR).

Как было?
Если была нужда как-то иначе сконфигурировать отправку сообщения в очередь, создавалось поведение. Например, поведение отложенного сообщения. Сходу было непонятно, чем эти поведения являются и как их использовать, а также они давали меньше гибкости в настройке, чем хотелось бы.

Как стало?
Поведений больше нет, теперь есть мидлвари. Да, прямо как в PSR-15 для обработки HTTP-запросов, но работает не с объектом Request, а с сообщением для очереди.

Стека мидлварей у нас два:
- на отправку сообщения в очередь;
- на обработку сообщения из очереди.

Их можно использовать отдельно или комбинировать на ваш выбор. Можно, например, вручную добавлять ID отправляемому сообщению, если используете стандарт amqp, в котором ID нет. Можно прокидывать дополнительную метаинформацию на push, а на consume — вычитывать и использовать её. Или добавить метрики в мониторинг для Prometheus. И так далее.

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

По использованию мидлварей информация есть в readme.

Также это изменение открывает возможность реализации стратегий обработки ошибок, которые могут быть сделаны как мидлварь на consume. Эта работа была начата раньше на поведениях.
🔥9👍2
⚡️ #yiisoftYiiQueue

Удалили уже не актуальные поведения в Yii Queue (PR).
👍4
⚡️ #yiisoftYiiQueue

В Yii Queue исправили ошибку: при отправке сообщения в очередь не использовались специфичные для канала мидлвари (PR).
👍2🔥2
⚡️ #yiisoftYiiQueue #yiisoftYiiDebugApi

Обновили зависимости в пакетах.

Yii Queue (PR):
- добавили поддержку yiisoft/definitions версии ^3.0.

Yii Debug API (PR):
- минимальную версию yiisoft/router подняли до 2.0;
- минимальную версию yiisoft/var-dumper подняли до 1.4.
👍2
⚡️ #yiisoftYiiQueue

В Yii Queue добавили возможность создания мидлварей с использованием синтаксиса Yii Definitions (PR).
👍2
⚡️ #yiisoftYiiQueue

В Yii Queue добавили отдельный пайплайн мидлварей, который отвечает за обработку ошибок, возникших при обработке сообщений (PR).

Также в рамках этого PR в интерфейсе MessageInterface был добавлен новый метод getMetadata(), позволяющий передать дополнительную информацию (метрики, количество попыток и прочее).
👍5❤‍🔥1
⚡️ #yiisoftYiiQueue

Несколько улучшений в очередях Yii Queue.

• Сделали рефакторинг реализации мидлварей, что позволило избавится от зависимости yiisoft/factory (PR).

• В CI добавили тестирование в PHP 8.2 (PR).
👍6
⚡️ #yiisoftYiiQueue #yiisoftYiiQueueAmqp #yiisoftQueue #yiisoftQueueAmqp

У пакетов Yii Queue и Yii Queue AMQP Driver убран префикс yii-.

yiisoft/yii-queueyiisoft/queue
yiisoft/yii-queue-amqpyiisoft/queue-amqp
🔥6👾5👍1🎄1