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

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

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
加入频道
⚡️ #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
⚡️ #yiisoftRbac #yiisoftRbacPhp

В пакете Yii Role-Based Access Control при добавлении роли или разрешения добавили проверку на существование в хранилище роли или разрешения с таким именем (PR).

Если роль или разрешение уже существуют (даже если добавляется роль, а существует разрешение, и наоборот), то будет брошено исключение ItemAlreadyExistsException.

Для проверки существования роли или разрешения был добавлен метод exists() в интерфейсе ItemsStorageInterface.

Новый метод уже реализован в пакете Yii RBAC PHP File Storage (PR).
👍1
⚡️ #yiisoftHtml

В пакете Yii HTML удалили psalm-тип HtmlAttributes, так как он был слишком навязчивым при использовании пакета (PR).
👍1
⚡️ #yiisoftHtml

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

• сделали отдельный класс Range для тега input с типом range, а также класс для тега Datalist (PR);

• в методе Select::optionsData() добавили возможность указать индивидуальные атрибуты для опций и групп опций (PR).
👍1
⚡️ #yiisoftRbacRulesContainer

В пакете Yii RBAC Rules Container убрали транзитивные зависимости, прописав их явно в composer.json (PR).
#yiisoftRbac #yiisoftRbacPhp #yiisoftRbacRulesContainer #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Role-Based Access Control 1.0.0

Библиотека для управления доступом на основе ролей (RBAC).

• Гибкая иерархия ролей, разрешений и правил.

• Наследование ролей и разрешений.

• Интерфейсы для хранилищ и фабрики правил.

• Возможность использовать разные хранилища для связки ролей с пользователями и иерархии ролей/разрешений.

• Удобное API для управления иерархией ролей/разрешений.


🎁 Yii RBAC PHP File Storage 1.0.0

Реализация хранилища для связки ролей с пользователями и иерархии ролей/разрешений на основе PHP-файлов.


🎁 Yii RBAC Rules Container 1.0.0

Фабрика для создания объектов правил RBAC на базе Yii Factory с использованием синтаксиса Yii Definition. Правила создаются один раз и кэшируются, при последующих запросах возвращается тот же экземпляр.
🔥6👍2
⚡️ #yiisoftForm

В пакете Yii Form удалили виджет Radio, так как радиокнопки всегда используются в группе, а для этого есть RadioList (PR).
⚡️ #yiisoftHtml

В Yii HTML добавили параметр $attributes (атрибуты тега) в методы Html::input(),Html::buttonInput(), Html::submitInput() и Html::resetInput() (PR).
⚡️ #yiisoftValidator

Продолжаем работу над валидатором Yii Validator:

• добавили в код типизацию mixed и функцию get_debug_type() вместо конструкции is_object() ? get_class() : gettype() (PR);

• описали использование атрибутов с трейтами и добавили соответствующие тесты (PR);

• выполнили рефакторинг тестов (PR).
⚡️ #yiisoftYiiBootstrap5

В пакете Yii Bootstrap 5 у виджета Accordion добавлена поддержка Stringable-объектов для содержимого элементов аккордеона (PR).
⚡️ #yiisoftDocs

В документации зафиксировали соглашение об использовании атрибутов PhpStorm (PR).

Атрибуты PhpStorm МОГУТ использоваться в коде, но пакет jetbrains/phpstorm-attributes ДОЛЖЕН быть добавлен как dev-зависимость.
⚡️ #yiisoftDemo

В демо веб-приложения подняли версию PSR-контейнера до ^1.1 и начали использовать стабильную версию Yii RBAC (PR).
👍3
⚡️ #yiisoftData

Несколько улучшений в Yii Data (PR):

• в сортировке добавили метод Sort::withoutDefaultSorting(), позволяющий отключить использование настроек сортировки по умолчанию;

• финализировали классы процессоров.