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

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

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

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

В пакете Yii Validator добавили несколько новых методов в класс Result (PR).

getErrorsIndexedByAttribute() — возвращает список сообщений об ошибках, разбитых по атрибутам. Например:
[
'name' => ['error1', 'error2'],
'age' => ['error'],
]


getCommonErrors() — возвращает список сообщений об ошибках, не относящихся к атрибутам.
⚡️ #yiisoftDocs

В разделе «Стиль кода» документации добавили соглашение об именовании коллекций: классы, интерфейсы, трейты и переменные, являющиеся коллекцией, должны оканчиваться на Collection (PR).
👍3
⚡️ #yiisoftForm

Адаптировали пакет Yii Form к удалению класса ResultSet в Yii Validator (PR).
⚡️ #yiisoftSecurity

В Yii Security исправили ошибки статического анализа, которые проявились с очередным обновлением psalm (PR).
👍1👏1
⚡️ #yiisoftYiiConsole

В пакете Yii Console в методе Yiisoft\Yii\Console\CommandLoader::get() добавили тип возвращаемого результата (PR):

public function get(string $name): Command
#yiisoftYiiConsole #МинорныйРелиз #Релиз

🎁 Yii Console 1.0.1

• В методе Yiisoft\Yii\Console\CommandLoader::get() добавлен тип возвращаемого результата (Symfony\Component\Console\Command\Command).

• Добавлена поддержка 6й версии пакета symfony/console.
⚡️ #yiisoftRequestModel #yiisoftForm

К последним изменениям в Yii Validator адаптировали Yii Request Model (PR) и Yii Form (PR).
⚡️ #yiisoftDemoApi

В инструкцию по установке демо API-приложения добавили пункт об изменении владельца директории приложения (PR).
👍1
⚡️ #yiisoftForm

В пакете Yii Form в модели формы теперь валидируются исходные данные до приведения типов (PR).
👍1
⚡️ #yiisoftYiiSwagger

Исправили ссылку на документацию Swagger-PHP в readme пакета Yii Swagger (PR).
⚡️ #yiisoftDemo

В демо веб-приложения разрешили composer-плагины composer/installers и oomphinc/composer-installers-extender, которые требуются для Yii Bootstrap 5 (PR).
👍1
⚡️ #yiisoftMutexFile

Исправили ошибку в примере кода в readme пакета Yii Mutex File Driver (PR).
⚡️ #yiisoftRbac #yiisoftRbacPhp #yiisoftDemo
#yiisoftRbacRulesContainer

Переработали хранение и создание правил в пакете Yii Role-Based Access Control (PR). Теперь правила НЕ сохраняются в хранилище, а создаются с помощью абстрактной фабрики RuleFactoryInterface. Это позволило существенно упростить код:

- из хранилища ItemsStorageInterface удалены все методы, касающиеся правил;

- у правил теперь нет имён и соответственно удалён метод getName();

- удалён абстрактный класс Rule, так как он был нужен только для удобства работы с именем правила.

Вместо фабрики ClassNameRuleFactory в новом пакете Yii RBAC Rules Container создан контейнер правил RulesContainer (реализует интерфейс RuleFactoryInterface), позволяющий задавать конфигурацию правил с помощью синтаксиса Yii Definitions и использовать любой PSR-11 контейнер для разрешения зависимостей.

К этим изменениям адаптированы хранилище Yii RBAC PHP File Storage (PR) и демо веб-приложения (PR).
👍1
⚡️ #yiisoftYiiDevTool #yiisoftPackageTemplate

Несколько изменений в пакетах для разработки:

• В шаблоне пакетов Yii Package Template удалили название репозитория по умолчанию в composer.json (PR).

Yii Development Tool адаптировали к PHP 8.1 (PR) и добавили пакет Yii RBAC Rules Container (PR).
⚡️ #yiisoftForm

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

• В модель формы добавлен метод setFormErrors(FormErrorsInterface $formErrors): void (PR).

• В поле Hidden в качестве значения дополнительно к строкам разрешено также передавать число или null (PR).
⚡️ #yiisoftMiddlewareDispatcher

В пакете Yii Middleware Dispatcher в отладочную информацию обёртки на мидлварями в виде функций обратного вызова добавили саму эту функцию (PR).
⚡️ #yiisoftRbac

В RBAC-менеджере библиотеки Yii Role-Based Access Control в качестве ID пользователя разрешено передавать строку, целое число или объект с методом __toString() (PR).
#yiisoftMiddlewareDispatcher #ПатчРелиз #Релиз

🎁 Yii Middleware Dispatcher 2.0.1

• Добавлена отладочная информация для обёртки на мидлварями в виде функций обратного вызова.
👍1
⚡️ #yiisoftRbac

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

На GitHub'e в markdown-файлах добавили поддержку Mermaid. Этот инструмент позволяет описывать диаграммы в текстовом виде. Например, добавленная в readme схема в текстовом виде выглядит так:

```mermaid
flowchart LR
createPost:::permission ---> author:::role
readPost:::permission --> reader:::role --> author:::role
deletePost:::permission ---> author:::role
classDef permission fill:#fc0,stroke:#000,color:#000
classDef role fill:#9c0,stroke:#000,color:#000
```
👍5🔥2
#yiisoftDi #ПатчРелиз #Релиз

🎁 Yii Dependency Injection 1.0.2

• Исправлена опечатка в названии метода в классе TagHelper (PR):
extarctTagFromAlias()extractTagFromAlias()