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

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

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

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

Исправлена ошибка в Yii Development Tool: при использовании команды composer/update вместо composer update выполнялось composer install (PR).
⚡️ #yiisoftApp

Небольшие улучшения в шаблоне веб-приложения (PR):
- значение константы YII_DEBUG получаемое из переменной окружения приводится к булеву типу;
- точки входа добавлены в статический анализ;
- мелкий рефакторинг и исправление ошибок psalm в точках входа.
⚡️ #yiisoftYiiDbMigration

Исправлена ошибка в консольной команде migrate/update пакета Yii DB Migration (PR).

В случае, когда нет миграций для выполнения, команда возвращала код 1 (UNSPECIFIED ERROR) вместо 0 (OK).
⚡️ #yiisoftDefinitions

Рефакторинг в пакете Yii Definitions: кэширование зависимостей перемещено из ArrayDefinitionBuilder в DefinitionExtractor (PR).
⚡️ #yiisoftYiiDataview

В виджете GridView из пакета Yii Data Widgets исправлен некорректный вывод тега <colgroup> (PR).

<colgroup> выводится в случаях, если у колонок есть опции, и содержит в себе теги <col>. До этого PR содержимое <colgroup> экранировалось, то есть вместо тегов <col ...> выводилось &lt;col ...&gt;. Cейчас экранирование отключили.
⚡️ #yiisoftHtml

В пакете Yii HTML добавлен класс для тега <noscript> и возможность добавить <noscript> к тегу <script> (PR).

Например:

// <script>...</script><noscript><img src="pixel.png"></noscript>
echo Script::tag()->content('...')->noscript(Img::tag()->src('pixel.png'));
⚡️ #yiisoftYiiDbMigration

Исправлена ошибка в пакете Yii DB Migration, возникающая при указании лимита (--limit) в командах migrate/down, migrate/redo и migrate/history (PR).
🎁 #yiisoftHtml #Релиз #МинорныйРелиз

Минорный релиз Yii HTML 2.1.0

• Добавлен класс для тега <noscript> и возможность добавить <noscript> к тегу <script>.
⚡️ #yiisoftFactory

Сделали очередной рефакторинг в Yii Factory (DependencyResolver переделан в FactoryContainer) и добавили тестов (PR).
⚡️ #yiisoftYiiDbMigration

Улучшения консольной команды migrate/down в пакете Yii DB Migration (PR):

- для опционального параметра --limit задано значение по умолчанию 1;

- добавлен флаг --all, включение которого приводит к откату всех миграций.
⚡️ #yiisoftDefinitions

В пакете Yii Definitions добавлена документация и описания в doc-блоки в коде (PR).
⚡️ #yiisoftInjector

В пакете Yii Injector у метода Injector::make() объявлен тип возвращаемого значения object и добавлены psalm-аннотации, позволяющие анализатору понять экземпляром какого конкретно класса является возвращаемый объект (PR).
⚡️ #yiisoftForm #yiisoftYiIBulma #yiisoftYiiBootstrap5 #yiisoftDemo

Выполнен рефакторинг всех виджетов в пакете Yii Form (PR).

• Серьёзно подчищен, а в некоторых местах и переписан, код всего пакета.

• Для генерации HTML-кода используются теги из пакета Yii HTML.

• Подчищены тесты. Для тестирования используются вспомогательные классы из Yii Test Support.

• Исправлены ошибки psalm, уровень psalm повышен до 1.

• MSI увеличен до 89,1%.

Для адаптации к этим изменениям внесены соответствующие правки в конфигурации Yii Bulma (PR) и Yii Bootstrap 5 (PR), а также в в демо веб-приложения (PR).
⚡️ #yiisoftYiiCycle

В пакете Yii Cycle добавлена ветка 2.0, работающая с Cycle ORM версии 2, которая сейчас находится в стадии активной разработки (PR).

Установка:
composer require yiisoft/yii-cycle "2.0.x-dev"

Информацию на русском о новой версии Cycle ORM можно почитать в gist о Cycle ORM v2.
⚡️ #yiisoftRouter

В классе CurrentRoute (пакет Yii Router) добавлен метод getName(), возвращающий имя текущего роута (PR).
⚡️#yiisoftYiiConsole

В консоли Yii Console добавлена поддержка алиасов для команд (PR).

Теперь имя и алиасы команды задаются в конфигурации пакета, а имя и алиасы из класса команды игнорируются. В том числе это позволяет удобно указать в приложении свои имя и алиасы для команд, предоставляемых пакетами.

Имя и алиасы задаются в виде строки, разделённой вертикальной чертой |. Если строка начинается с вертикальной черты, то команда помечается как скрытая, то есть она не выводится в списке команд, но может быть вызвана.

Примеры:

// Имя `hello`; алиасов нет
'hello' => HelloCommand::class,

// Имя `start`; алиасы `run`, `s`, `r`
'start|run|s|r' => StartCommand::class,

// Скрытая команда; имя `hack`; алиас `h`
'|hack|h' => HackCommand::class,
⚡️ #yiisoftYiiDbMigration

Выполнен рефакторинг в пакете Yii DB Migration (PR):

- удалён класс ConsoleHelper;

- весь вывод в консоль теперь идёт через OutputInterface, передаваемый в команду (ранее часть вывода шла через создаваемый в ConsoleHelper объект, реализующий OutputInterface).
⚡️ #yiisoftDemoApi

В демо API-приложения не проходили тесты, исправили (PR).
⚡️ #yiisoftApp

В шаблоне веб-приложения адаптировали пример консольной команды к «ленивой» загрузке команд в консоли (PR).
⚡️ #yiisoftYiiDbMigration

В пакете Yii DB Migration исправлена ошибка в команде database/list (PR): если база данных содержит несколько схем (например, в PostgreSQL), то команда завершалась с ошибкой.
⚡️ #yiisoftFiles

В пакете Yii Files в readme улучшен пример с выборкой файлов по фильтру и доработан doc-блок метода PathMatcher::except() (PR).

Спасибо Tomasz Kane за PR 👍