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

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

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

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

В Yii Debug Viewer добавили панель с информацией об очередях (PR).
🔥31
🌿 #Полезное

Когда приходит время принести в инфраструктуру проекта новый инструмент - как сделать выбор среди нынешнего многообразия? Что подойдет лучше именно в вашем случае?
Простой план выбора подходящего инструмента с разбором и примером из жизни в виде выбора сервера очередей в статье Виктора Бабанова, одного из core-разработчиков YiiSoft.
👍32💩1
⚡️ #yiisoftCacheDb

Изменили логику обработки неудачной записи/чтения данных в Yii Cache DB Handler: теперь вместо выброса исключения отправляется сообщение в логгер (PR).
🔥5
⚡️ #yiisoftProxy

В Yii Proxy исправили ошибку при создании прокси-объекта, в сигнатуре которого встречаются объединения типов, включающие null (PR).
🔥2
⚡️ #yiisoftRequestModel

В Yii Request Model добавили возможность в обработчике использовать атрибуты для получения данных из запроса (PR). Например:

final class SimpleController
{
public function action(
#[Route('id')] int $id,
#[Request('foo')] $attribute,
): ResponseInterface {
echo $id;
//...
}
}


Доступные атрибуты: Body, Query, Request, Route и UploadedFiles.
🔥72
⚡️ #yiisoftCacheDb

В Yii Cache DB Handler подняли используемую версию PSR-интерфейсов psr/simple-cache до ^2.0|^3.0 и уровень psalm увеличили до 1 (PR).
🔥2
⚡️ #yiisoftPackageTemplate

В шаблоне Yii Package Template в .editorconfig добавили несколько PhpStorm-специфичных правил (PR).

ij_php_space_before_short_closure_left_parenthesis = true
Добавлять пробел после fn в стрелочных функциях, например fn () => ....

ij_php_space_after_type_cast = true
Добавлять пробел после приведения типа, например (string) $var.
👍4
⚡️ #yiisoftProxy

В Yii Proxy исправили ошибку при создании прокси-объекта, в сигнатуре которого встречаются пересечения типов (PR).
🔥2
⚡️ #yiisoftDemo

В демо веб-приложения доработали меню выбора языка: теперь каждый пункт выводится на своём языке (PR).
👏4👍1
#yiisoftProxy #ПатчРелиз #Релиз

🎁 Yii Proxy 1.0.3

Подняли уровень статического анализа psalm до 1 (PR) и сделали патч-релиз.

• Исправлена ошибка при создании прокси-объекта, в сигнатуре которого встречаются объединения типов, включающие null.

• Исправлена ошибка при создании прокси-объекта, в сигнатуре которого встречаются пересечения типов.

• Финализирован конструктор в классе ObjectProxy (PR).
🔥1
⚡️ #yiisoftDocs

В документации добавили соглашение о стиле кода для методов, вызываемых «цепочкой» (commit).
🔥2
#yiisoftProxy #ПатчРелиз #Релиз

🎁 Yii Proxy 1.0.4

Во вчерашнем релизе ошибочно финализировали конструктор в ObjectProxy. Переопределение конструктора используется в Yii Debug. Исправляемся.

• Удалена финализация конструктора в классе ObjectProxy (PR).
🔥3
⚡️ #yiisoftForm #yiisoftDemoApi

В модели формы Yii Form добавили возможность использовать атрибуты валидатора для указания правил валидации (PR).

Демо API-приложения адаптировали к этим изменениям (PR).
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ #yiisoftYiiDebugViewer

Доработали внешний вид тулбара в Yii Debug Viewer (PR):
- добавили изменение фона при наведении на табы;
- сделали соответствующий курсор в зоне изменения размера тулбара;
- убрали возможность выделения текста в тулбаре.
🔥11👍1🤔1
⚡️ #yiisoftDemo

Сделали рефакторинг процесса регистрации пользователя в демо веб-приложения (PR).
🔥2
⚡️ #yiisoftYiiDevTool

Доработали вывод результата выполнения команд enable и disable в Yii Development Tool. Теперь пакеты, которые уже были включены/отключены ранее выводятся отдельным списком (PR).
👍4
⚡️ #yiisoftDocs

В документации актуализировали ссылки в кодексе поведения (PR).
👍2
⚡️ #yiisoftDb #yiisoftDbMssql #yiisoftDbMysql #yiisoftDbOracle #yiisoftDbPgsql #yiisoftDbSqlite

В Yii DB добавлены методы (PR):
-QuoterInterface::getTableNameParts(),
- TableSchemaInterface::getServerName(),
- TableSchemaInterface::serverName(),
- Schema::getRawTableName().

Соответствующие изменения внесены в пакеты + добавлены тесты:
- Yii DB MSSQL Server Extension (PR),
- Yii DB MySQL Extension (PR),
- Yii DB Oracle Extension (PR),
- Yii DB PostgreSQL Extension (PR),
- Yii DB SQLite Extension (PR).
🔥8
⚡️ #yiisoftYiiQueue

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

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

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

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

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

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

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

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

В Yii Request Model немного порефакторили существующие тесты и добавили новых (PR).
🔥2
⚡️ #yiisoftDb

Исправили ошибку psalm в Yii DB (PR).
🔥3😁1🎉1