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

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

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

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

Большое обновление Yii Validator (PR).

• Добавлена поддержка атрибутов PHP. Выглядит это приблизительно так:

final class Point
{
#[HasOne(Coordinates::class)]
private $coordinates;

#[Number(min: -10, max: 10)]
private int $x;

#[Number(min: -10, max: 10)]
private int $y;
}

• Минимальная версия PHP поднята до 8.0.

• В связи с переходом на PHP 8.0 и возможностью использовать именованные аргументы создание правил через статическую фабрику ::rule() утратило смысл. Теперь правила создаются классическим способом через конструктор (new MyRule()).

• Правило Each теперь принимает в качестве правил iterable-значение вместо RuleSet.

• Правило MatchRegularExpression переименовано в Regex.

• Выполнен внутренний рефакторинг (переименование переменных, небольшие изменения в коде и прочее).

Необходимые изменения (в том числе поднята минимальная версия PHP до 8.0) внесены в пакеты и приложения, зависящие от валидатора:
- Yii Form (PR),
- Yii Request Model (PR),
- Демо веб-приложения (PR).
👍3🔥1
⚡️ #yiisoftYiiDebugViewer

В Yii Debug Viewer при выводе лога событий класс события сделан ссылкой на него в PhpStorm (PR).
👍1
⚡️ #yiisoftYiiBulma

Причесали пакет Yii Bulma (PR):
- доработана документация;
- покрытие тестами увеличено до 100%;
- показатель MSI увеличен до 100%;
- внесены мелкие исправления.
⚡️ #yiisoftRbac

В пакете Yii Role-Based Access Control добавили ещё тестов и немного поправили стиль кода (PR).
⚡️ #yiisoftYiiDataview

Сделали много доработок в Yii Data Widgets:

• Активная страница в вижете LinkPager теперь может одновременно быть активной (active) и отключенной (disabled).

• У виджета LinkPager добавлена опция hideFirstPageParameter для удаления из ссылки на первую страницу аргумента с номером страницы.

• У ActionColumn добавлены новые опции primaryKeyName, idInQueryString, arguments и queryParameters.

… и множество других изменений, подробнее в PR.
⚡️ #yiisoftYiiBootstrap5

Ещё несколько улучшений в Yii Bootstrap 5 в виджетах Alert, Offcanvas и Accordion (PR).
⚡️ #yiisoftData

В пакете Yii Data добавлена поддержка DateTimeInterface в фильтрах и процессорах (PR):
- Between,
- Equals,
- GreaterThan,
- GreaterThanOrEqual,
- LessThan,
- LessThanOrEqual.
🔥4
#yiisoftDefinitions #ПатчРелиз #Релиз

🎁 Yii Definitions 1.0.2

• При разрешении опциональной зависимости брошенные в процессе получения объекта из контейнера исключения теперь НЕ подавляются (PR, PR).

• Исправлено: в некоторых случаях при разрешении зависимостей c составными типами подавлялось исключение, возникающие если контейнер вернул значение не того типа (PR).
⚡️ #yiisoftDemo

Демо веб-приложения доадаптировали к последним изменениям в валидаторе, теперь все тесты проходят (PR).
⚡️ #yiisoftPackageTemplate

В конфигурациях GitHub Actions в Yii Package Template перешли на 3ю версию экшена actions/cache, предназначенного для кэширования устанавливаемых через Composer зависимостей (PR).

Позже раскатаем это по всем пакетам.
⚡️ #yiisoftForm

Причесали пакет Yii Form (PR):
- внесли улучшения в код, ставшие возможными благодаря переходу на PHP 8.0+;
- улучшили описания в doc-блоках;
- увеличили покрытие тестами до 100%;
- показатель MSI увеличили до 99,99%;
- добавили ещё тестов.
👍5
#yiisoftYiiBulma #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Bulma 1.0.0

Интеграция фреймворка Yii c CSS-фреймворком Bulma и JS-библиотекой BulmaJS.

Пакет предоставляет:

• виджеты, инкапсулирующие компоненты и плагины Bulma и BulmaJS, что позволяет их легко и удобно использовать в приложении на базе Yii;

• ресурсы (Asset) для подключения в приложении.
⚡️ #yiisoftYiiRunnerConsole

Слегка улучшили doc-блоки в Yii Console Runner (PR).
👍3
#yiisoftAccess #ПатчРелиз #Релиз

🎁 Yii Access 1.1.1

• В методе AccessCheckerInterface::userHasPermission() для ID пользователя (аргумент $userId) добавлен пропущенный ранее тип \Stringable (PR).
⚡️ #yiisoftRbac

Немного доработали и причесали пакет Yii Role-Based Access Control (PR):

• исправлена ошибка: при удалении роли не удалялись связи роли с пользователем;

• удалён неиспользуемый код;

• обновлены dev-зависимости;

• версия экшена actions/cache в GitHub Actions поднята до 3;

• добавлены тесты, MSI увеличен до 95,8%.
⚡️ #yiisoftRbacRulesContainer

Мелкие улучшения в Yii RBAC Rules Container (PR):

• обновлены dev-зависимости;

• версия экшена actions/cache в GitHub Actions поднята до 3;

• немного улучшены doc-блоки.
⚡️ #yiisoftRbacPhp

Доработали Yii RBAC PHP File Storage (PR):

• исправлена ошибка: некорректно обновлялись дочерние элементы при обновлении элемента;

• версия экшена actions/cache в GitHub Actions поднята до 3;

• немного улучшены doc-блоки.
👍1
⚡️ #yiisoftRbacCycleDb

Выполнили небольшой рефакторинг и улучшили запросы к БД в пакете Yii RBAC Cycle Database Storage (PR).
👍1
⚡️ #yiisoftData

В классе KeysetPaginator пакета Yii Data исправлен код для получения геттера свойства по имени свойства (PR).

Ранее первый символ свойства приводился к верхнему регистру, что в свойствах, использующих подчёркивание приводила к ошибке:
created_atgetCreated_at

Новый алгоритм полноценно приводит имя свойства к Pascal Case:
created_atgetCreatedAt
👍1
⚡️ #yiisoftForm

Сделали небольшой рефакторинг, улучшили doc-блоки и добавили тестов в Yii Form (PR).
⚡️ #yiisoftHtml

Несколько улучшений в Yii HTML:

• добавлен класс для тега Form и метод Html::form() (PR);

• в методе Select::optionsData() добавлена поддержка групп опций (PR).

Например, данные для тега Select теперь можно передать вот так:

Select::tag()->optionsData([
1 => 'One',
'Test Group' => [
2 => 'Two',
3 => 'Three',
],
]);


Результатом будет:

<select>
<option value="1">One</option>
<optgroup label="Test Group">
<option value="2">Two</option>
<option value="3">Three</option>
</optgroup>
</select>
👍2