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

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

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
加入频道
🎁 #yiisoftView #Релиз #МинорныйРелиз

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

Добавлены иммутабельные методы View::withAddedCommonParameters() и WebView::withAddedCommonParameters() (PR).
🎁 #yiisoftYiiView #Релиз #ПатчРелиз

Патч-релиз Yii View Extension 2.0.1

Исправлена ошибка: параметры из инъекций не передавались в субпредставления (PR).

Спасибо @Gerych1984 за обнаруженную ошибку 👍
⚡️ #yiisoftWidget

В пакете Yii Widget добавлена поддержка всех существующих версий psr/container: ^1.0|^2.0 (PR).

Спасибо Ivanda Nothabeer за обнаруженную проблему 👍
⚡️ #yiisoftYiiCycle

Улучшения и рефакторинг в пакете Yii Cycle (PR).

• Изменения в источниках данных для сборки схемы БД:
- AnnotatedSchemaConveyor теперь получает данные только из аннотаций (ранее получал ещё и из атрибутов);
- AttributedSchemaConveyor получает данные из атрибутов;
- CompositeSchemaConveyor получает данные одновременно из атрибутов и аннотаций.

• В параметрах конфигурации добавлен ключ entity-paths, а ключ annotated-entity-paths помечен как устаревший и в дальнейшем будет удалён.

• Улучшения в выводе схемы базы данных в консоли и записи в PHP-файл.

• Удалено использование всех устаревших методов, констант и прочего из cycle/orm.
⚡️ #yiisoftDi

Исправлена ошибка в примере кода в readme пакета Yii Dependency Injection (PR).
⚡️ #yiisoftYiiDevTool

Изменения в командах Yii Development Tool (PR).

• Команда update теперь выполняет и git pull и composer update.

• Добавлена новая команда composer/update, выполняющая только composer update.

• Для команд добавлены алиасы:
exece
composer/updatecu
git/checkoutcheckout
git/commitcommit
git/pullpull
git/pushpush
git/statusstatus, s
git/pr/createpr
listl
installi
updateu
testt
⚡️ #yiisoftYiiDebugViewer

Обновление в клиенте для просмотра отладочной информации Yii Debug Viewer (PR).

• Добавлена панель с подробной информацией о запросе.

• Добавлена панель с информацией о задействованных в запросе мидлварях.

• Улучшения в JS.

• Удалены ненужные конфигурации.
⚡️ #yiisoftYiiDebugViewer

Для отображения JSON в Yii Debug Viewer теперь используется компонент не требующий jQuery (PR).
🎁 #yiisoftView #Релиз #МажорныйРелиз

Мажорный релиз Yii View 3.0.1

• Для сеттеров в классах View и WebView реализован текучий интерфейс.

• Удалены методы View::withAddedCommonParameters() и WebView::withAddedCommonParameters().

• В классах View и WebView переименованы методы:
setCommonParameters()setParameters()
setCommonParameter()
setParameter()
removeCommonParameter()
removeParameter()
getCommonParameter()
getParameter()
hasCommonParameter()
hasParameter()

• В параметрах конфигурации params.php параметр commonParameters переименован в parameters.

После мажорного релиза 3.0.0 выяснилось, что в конфигурации web.php допущена ошибка, поэтому пришлось сразу же сделать патч-релиз 3.0.1 с исправлением.
🎁 #yiisoftYiiView #Релиз #МажорныйРелиз

Мажорный релиз Yii View Extension 3.0.0

• Интерфейс для инъекций параметров в контент ContentParametersInjectionInterface заменён на интерфейс CommonParametersInjectionInterface, добавляющий параметры и в контент и в шаблон (layout).

• Исправлена ошибка: параметры, добавленные через инъекции, не передавались в субпредставления.
🎁 #yiisoftMailer #Релиз #ПатчРелиз

Патч-релиз Yii Mailer 3.0.1

Обновлена зависимость yiisoft/view до ^3.0.
⚡️ #yiisoftDefinitions #yiisoftFactory #yiisoftDi #yiisoftDb

В Yii Definitions удалён интерфейс DependencyResolverInterface, вместо него теперь используется PSR-интерфейс ContainerInterface (PR).

Соответствующие изменения внесены в пакеты, которые использовали DependencyResolverInterface:

- Yii Factory (PR),
- Yii Dependency Injection (PR),
- Yii DB (PR).
⚡️ #yiisoftYiiDataview

В виджетах из пакета Yii Data Widgets исправили проблему с генерацией ссылок в пагинации (использовался неактуальный способ получения текущего роута) и актуализировали тесты (PR).

Спасибо @Gerych1984 за обнаруженную ошибку 👍
🎁 #yiisoftYiiEvent #Релиз #ПатчРелиз

Патч-релиз Yii Event 1.0.2

В случаях, когда используется некорректный слушатель, выводится более подробное сообщение об ошибке.

Примеры новых сообщений:

"__invoke" method is not defined in "App\Events\MyEvent" class.

Failed to instantiate "App\Events\MyEvent" class.

Could not instantiate "App\Events\MyEvent" or "handle" method is not defined in this class.

"handle" method is not defined in "App\Events\MyEvent" class.

Listener must be a callable. Got App\Events\MyEvent.
⚡️ #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'));