⚡️ #yiisoftYiiSwagger
В пакете Yii Swagger в сервисе
В пакете Yii Swagger в сервисе
\Yiisoft\Swagger\Service\SwaggerService
добавлен метод withOptions()
, позволяющий задать конфигурацию объекта \OpenApi\Annotations\OpenAPI
создаваемого этим сервисом (PR, PR).#yiisoftYiiSwagger #МинорныйРелиз #Релиз
🎁 Yii Swagger 1.2.0
• В сервисе
🎁 Yii Swagger 1.2.0
• В сервисе
\Yiisoft\Swagger\Service\SwaggerService
добавлен метод withOptions()
, позволяющий задать конфигурацию объекта \OpenApi\Annotations\OpenAPI
создаваемого этим сервисом. Конфигурация объекта OpenAPI
также доступна через параметры пакета в config/params.php
:'yiisoft/yii-swagger' => [
// Default values are specified.
'open-api-options' => [
'aliases' => OpenApi\Generator::DEFAULT_ALIASES,
'namespaces' => OpenApi\Generator::DEFAULT_NAMESPACES,
'analyser' => null,
'analysis' => null,
'processors' => null,
'logger' => null,
'validate' => true,
'version' => OpenApi\Annotations\OpenApi::DEFAULT_VERSION,
],
],
//...
⚡️ Во всех пакетах добавили разрешенные плагины (
• во всех пакетах разрешены плагины
• дополнительно в раннерах разрешён плагин
• дополнительно в демо- и шаблонах приложений разрешены плагины
До июля 2022 года composer по умолчанию разрешает установку любых composer-плагинов, затем будут разрешены только плагины указанные в
allow-plugins
) в секцию конфигурации composer.json
:• во всех пакетах разрешены плагины
infection/extension-installer
и composer/package-versions-deprecated
;• дополнительно в раннерах разрешён плагин
yiisoft/config
;• дополнительно в демо- и шаблонах приложений разрешены плагины
codeception/c3
и yiisoft/config
.До июля 2022 года composer по умолчанию разрешает установку любых composer-плагинов, затем будут разрешены только плагины указанные в
composer.json
в секции config
→ allow-plugins
(см. документацию composer).👍3
⚡️ #yiisoftValidator #yiisoftForm
Переименовали методы в классе
•
Переименовали методы в классе
Result
из пакета Yii Validator, в итоге публичный интерфейс класса выглядит следующим образом:•
isValid(): bool
• isAttributeValid(string $attribute): bool
• getErrors(): Error[]
• getErrorMessages(): string[]
• getErrorMessagesIndexedByPath(string $separator = '.'): array<string, non-empty-list<string>>
• getErrorMessagesIndexedByAttribute(): array<string, non-empty-list<string>>
• getAttributeErrors(string $attribute): Error[]
• getAttributeErrorMessages(string $attribute): string[]
• getCommonErrorMessages(): string[]
Yii Form адаптировали к этим изменениям (PR).⚡️ #yiisoftValidator
В пакете Yii Validator добавили несколько новых методов в класс
•
•
В пакете Yii Validator добавили несколько новых методов в класс
Result
(PR).•
getErrorsIndexedByAttribute()
— возвращает список сообщений об ошибках, разбитых по атрибутам. Например:[
'name' => ['error1', 'error2'],
'age' => ['error'],
]
•
getCommonErrors()
— возвращает список сообщений об ошибках, не относящихся к атрибутам.⚡️ #yiisoftDocs
В разделе «Стиль кода» документации добавили соглашение об именовании коллекций: классы, интерфейсы, трейты и переменные, являющиеся коллекцией, должны оканчиваться на
В разделе «Стиль кода» документации добавили соглашение об именовании коллекций: классы, интерфейсы, трейты и переменные, являющиеся коллекцией, должны оканчиваться на
Collection
(PR).👍3
⚡️ #yiisoftSecurity
В Yii Security исправили ошибки статического анализа, которые проявились с очередным обновлением psalm (PR).
В Yii Security исправили ошибки статического анализа, которые проявились с очередным обновлением psalm (PR).
👍1👏1
⚡️ #yiisoftYiiConsole
В пакете Yii Console в методе
В пакете Yii Console в методе
Yiisoft\Yii\Console\CommandLoader::get()
добавили тип возвращаемого результата (PR):public function get(string $name): Command
#yiisoftYiiConsole #МинорныйРелиз #Релиз
🎁 Yii Console 1.0.1
• В методе
• Добавлена поддержка 6й версии пакета
🎁 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).
К последним изменениям в Yii Validator адаптировали Yii Request Model (PR) и Yii Form (PR).
⚡️ #yiisoftDemoApi
В инструкцию по установке демо API-приложения добавили пункт об изменении владельца директории приложения (PR).
В инструкцию по установке демо API-приложения добавили пункт об изменении владельца директории приложения (PR).
👍1
⚡️ #yiisoftForm
В пакете Yii Form в модели формы теперь валидируются исходные данные до приведения типов (PR).
В пакете Yii Form в модели формы теперь валидируются исходные данные до приведения типов (PR).
👍1
⚡️ #yiisoftDemo
В демо веб-приложения разрешили composer-плагины
В демо веб-приложения разрешили composer-плагины
composer/installers
и oomphinc/composer-installers-extender
, которые требуются для Yii Bootstrap 5 (PR).👍1
⚡️ #yiisoftRbac #yiisoftRbacPhp #yiisoftDemo
✨ #yiisoftRbacRulesContainer
Переработали хранение и создание правил в пакете Yii Role-Based Access Control (PR). Теперь правила НЕ сохраняются в хранилище, а создаются с помощью абстрактной фабрики
- из хранилища
- у правил теперь нет имён и соответственно удалён метод
- удалён абстрактный класс
Вместо фабрики
К этим изменениям адаптированы хранилище Yii RBAC PHP File Storage (PR) и демо веб-приложения (PR).
✨ #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 удалили название репозитория по умолчанию в
• Yii Development Tool адаптировали к PHP 8.1 (PR) и добавили пакет Yii RBAC Rules Container (PR).
Несколько изменений в пакетах для разработки:
• В шаблоне пакетов Yii Package Template удалили название репозитория по умолчанию в
composer.json
(PR).• Yii Development Tool адаптировали к PHP 8.1 (PR) и добавили пакет Yii RBAC Rules Container (PR).
⚡️ #yiisoftForm
Несколько улучшений в Yii Form:
• В модель формы добавлен метод
• В поле
Несколько улучшений в Yii Form:
• В модель формы добавлен метод
setFormErrors(FormErrorsInterface $formErrors): void
(PR).• В поле
Hidden
в качестве значения дополнительно к строкам разрешено также передавать число или null
(PR).⚡️ #yiisoftMiddlewareDispatcher
В пакете Yii Middleware Dispatcher в отладочную информацию обёртки на мидлварями в виде функций обратного вызова добавили саму эту функцию (PR).
В пакете Yii Middleware Dispatcher в отладочную информацию обёртки на мидлварями в виде функций обратного вызова добавили саму эту функцию (PR).
⚡️ #yiisoftRbac
В RBAC-менеджере библиотеки Yii Role-Based Access Control в качестве ID пользователя разрешено передавать строку, целое число или объект с методом
В RBAC-менеджере библиотеки Yii Role-Based Access Control в качестве ID пользователя разрешено передавать строку, целое число или объект с методом
__toString()
(PR).