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

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

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

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

В юнит-тестах добавлена поддержка PHP 8.1 и немного подчищен код в пакетах:
- Yii DB PostgreSQL Extension (PR),
- Yii DB Oracle Extension (PR),
- Yii DB MSSQL Server Extension (PR).
⚡️ #yiisoftAppApi

В шаблоне API-приложения при изменении следующих файлов теперь не будут запускаться тесты в GitHub Actions (PR):

- docs/**
- README.md
- CHANGELOG.md
- .gitignore
- .env.example
- .gitattributes
⚡️ #yiisoftAliases

Немного упрощена конфигурация пакета Yii Aliases (PR).
⚡️ #yiisoftDbMssql

В пакете Yii DB MSSQL Server Extension доработаны тесты поддержки типа данных VARBINARY (PR).
⚡️ #yiisoftForm

В модели формы (пакет Yii Form) разрешено использование свойств без указания типа (PR).
⚡️ #yiisoftYiiDbMigration

В пакете Yii DB Migration адаптировали консольные команды к «ленивой» загрузке в консоли: описания команд были вынесены в статические свойства (PR).

Спасибо Александру Богатикову за PR 👍
⚡️ #yiisoftDemo

В демо веб-приложения максимальная длина полей Post::$title и Tag::$label уменьшена с 255 до 191 для обратной совместимости с MySQL (PR). Подробнее о проблеме в тикете.
⚡️ #yiisoftForm

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

Например: $form->csrf($token, 'csrf_parameter');
⚡️ #yiisoftYiiWeb

В мидлвари SubFolder (пакет Yii Web) добавлена возможность указать в конструкторе префикс и алиас, к которому этот префикс нужно добавить (PR).

Например:

new SubFolder($urlGenerator, $aliases, 'manage', '@baseUrl');
⚡️ #yiisoftYiiConsole

В консоли Yii Console при вызове исключения добавлен вывод стек-трейса (PR).
⚡️ #yiisoftDataDb

В пакете Yii Data DB добавлены фильтры и процессоры Any, Exists, GreaterThan, GreaterThanOrEqual, In, LessThan, LessThanOrEqual, Like, а также немного отрефакторен код (PR).
#yiisoftHtml #МинорныйРелиз #Релиз

🎁 Yii HTML 2.2.0

• В теге A добавлен метод nofollow(), добавляющий к тегу атрибут rel="nofollow" (PR).

• В виджетах RadioList и CheckboxList добавлен метод itemsFromValues(), позволяющий задать элементы списка, у которых название равно значению (PR).

• Добавлен третий опциональный аргумент $attributes, содержащий атрибуты тега, в методы (PR):

- Html::textInput(),
- Html::hiddenInput(),
- Html::passwordInput(),
- Html::fileInput(),
- Html::radio(),
- Html::checkbox(),
- Html::textarea().
⚡️ #yiisoftArrays

Небольшие изменения в аннотациях psalm в пакете Yii Arrays для более комфортного использования (PR).
#yiisoftCsrf #МинорныйРелиз #Релиз

🎁 Yii CSRF Protection Library 1.1.0

В мидлваре CsrfMiddleware добавлены новые методы getParameterName() и getHeaderName() (PR).
⚡️ #yiisoftYiiDbMigration

Продолжаем рефакторинг пакета Yii DB Migration (PR):
- опция useTablePrefix перенесена в CreateService;
- парсинг опции --fields консольной команды migrate/create переработан и выделен в отдельный класс FieldsParser.
⚡️ #yiisoftArrays

Исправлена ошибка в методе ArrayHelper::getValue() (пакет Yii Arrays): в некоторых случаях возвращалось некорректное значение, если требуемый ключ не существует в массиве, значение по умолчанию является массивом (PR).
#yiisoftYiiView #МажорныйРелиз #Релиз

🎁 Yii View Extension 4.0.0

Инъекция CSRF вместо токена теперь добавляет объект CSRF с методами (PR):

- getToken() возвращает токен;

- getParameterName() возвращает имя параметра из мидлвари CsrfMiddleware;

- getHeaderName() возвращает имя заголовка из мидлвари CsrfMiddleware;

- hiddenInput() возвращает тег Input с установленными атрибутами type (hidden), name (имя параметра), value (токен);

- __toString() для преобразования в строку (возвращается токен).

⚡️ #yiisoftDemo #yiisoftApp #yiisoftYiiSwagger

Соответствующие изменения внесены в демо веб-приложения (PR), шаблон веб-приложения и пакет Yii Swagger.
⚡️ #yiisoftForm

В пакете Yii Form доработан виджет Radio и добавлена подробная документация по нему (PR), а также внесены небольшие изменения в документацию по виджету Checkbox (PR).
⚡️ #yiisoftYiiConsole #yiisoftDemo

Почистили код и внесли изменения в Yii Console (PR, PR):

- в приложении (Application) диспетчер событий сделан опциональным, а его установка перенесена из конструктора в метод setDispatcher();
- обновлены dev-зависимости;
- добавлены тесты;
- в тестах вместо yiisoft/di теперь используется пакет yiisoft/test-support;
- улучшены конфигурация GitHub Workflow и другие служебные файлы.

Адаптационные изменения внесены в демо веб-приложения (PR).
⚡️ #yiisoftRouter

Теперь роутер (пакет Yii Router) автоматически отвечает на запросы OPTIONS в том же источнике со статусом 204, ранее отвечал 405 Method not allowed (PR).

Это поведение можно отключить с помощью метода withoutAutoResponseOptions().
⚡️ #yiisoftMiddlewareDispatcher

Диспетчер событий в Yii Middleware Dispatcher сделан опциональным (PR).