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

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

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

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

В пакете Yii Bootstrap 5 удалён класс BootstrapIconsAsset и зависимость от npm-asset/bootstrap-icons (PR).

В Bootstrap 5 выделили иконки в отдельный независимый пакет Bootstrap Icons. Сам Bootstrap 5 может использовать как Bootstrap Icons, так и любой другой набор иконок.
⚡️ Практически во всех пакетах добавлен ежедневный запуск тестов через GitHub Workflow.

#yiisoftCacheWincache #yiisoftView #yiisoftDi #yiisoftStrings #yiisoftRbacPhp #yiisoftYiiConsole #yiisoftCache #yiisoftDb #yiisoftRbac #yiisoftYiiAuthClient #yiisoftYiiGii #yiisoftViewTwig #yiisoftYiiWeb #yiisoftDbMssql #yiisoftDbOracle #yiisoftLog #yiisoftYiiDebug #yiisoftDbSqlite #yiisoftDbPgsql #yiisoftDbMysql #yiisoftEventDispatcher #yiisoftI18n #yiisoftYiiEvent #yiisoftYiiDbMigration #yiisoftValidator #yiisoftUser #yiisoftTranslatorMessageGettext #yiisoftSecurity #yiisoftMiddlewareDispatcher #yiisoftMutex #yiisoftNetworkUtilities #yiisoftProfiler #yiisoftProxy #yiisoftRequestBodyParser #yiisoftRouterFastroute #yiisoftInjector #yiisoftCacheApcu #yiisoftAuthJwt #yiisoftAuth #yiisoftAssets #yiisoftArrays #yiisoftAliases #yiisoftDemoApi #yiisoftDemo #yiisoftDataResponse #yiisoftData #yiisoftCsrf #yiisoftCookies #yiisoftConfig #yiisoftCacheMemcached #yiisoftCacheFile #yiisoftHttp #yiisoftHtml #yiisoftFiles #yiisoftFactory #yiisoftErrorHandler #yiisoftLogTargetDb #yiisoftLogTargetEmail #yiisoftLogTargetFile #yiisoftRequestModel #yiisoftRbacSpiralDb #yiisoftRateLimiter #yiisoftPackageTemplate #yiisoftMutexRedis #yiisoftMutexPdoPgsql #yiisoftMutexPdoOracle #yiisoftMutexFile #yiisoftMutexPdoMysql #yiisoftTranslatorFormatterSimple #yiisoftTranslatorFormatterIntl #yiisoftTranslatorExtractor #yiisoftTranslator #yiisoftTestSupport #yiisoftSession #yiisoftRouter #yiisoftRequirements #yiisoftTranslatorMessageDb #yiisoftTranslatorMessagePhp #yiisoftVarDumper #yiisoftWidget #yiisoftYiiBootstrap5 #yiisoftYiiBulma #yiisoftYiiCycle #yiisoftYiiDataview #yiisoftYiiDebugApi #yiisoftYiiDebugViewer #yiisoftMailerSwiftmailer #yiisoftMailer #yiisoftLogTargetSyslog #yiisoftJson #yiisoftForm #yiisoftYiiWidgets #yiisoftYiiView #yiisoftYiiSwagger #yiisoftYiiSentry
⚡️ #yiisoftDefinitions #yiisoftDi #yiisoftFactory

Хелперы ReferencesArray и DynamicReferencesArray перенесены из пакета Yii Dependency Injection (PR) в пакет Yii Definitions (PR).

В Yii Factory удалены дефинишены и классы для работы с ними, которые ранее были перенесены в Yii Definitions (PR).

—————

#yiisoftAssets #yiisoftYiiConsole #yiisoftCsrf #yiisoftDb #yiisoftForm #yiisoftMailerSwiftmailer #yiisoftMailerSymfony #yiisoftYiiQueue #yiisoftTranslator #yiisoftView #yiisoftWidget #yiisoftYiiBootstrap5 #yiisoftYiiDataview #yiisoftYiiDebug #yiisoftYiiDebugViewer #yiisoftYiiSwagger #yiisoftApp #yiisoftAppApi #yiisoftDemo #yiisoftDemoApi

Все пакеты и приложения, использующие дефинишены, переделаны на работу с пакетом Yii Definitions:

- Yii Assets (PR)
- Yii Bootstrap 5 (PR)
- Yii Console (PR)
- Yii CSRF (PR)
- Yii Data Widgets (PR)
- Yii DB (PR)
- Yii Debug (PR)
- Yii Debug Viewer (PR)
- Yii Form (PR)
- Yii Mailer Swiftmailer (PR)
- Yii Mailer Symfony (PR)
- Yii Message Translator (PR)
- Yii Queue (PR)
- Yii Swagger (commit)
- Yii View (PR)
- Yii Widget (PR)

- шаблон веб-приложения (PR),
- шаблон API-приложения (PR),
- демо веб-приложения (PR),
- демо API-приложения (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).
⚡️ #yiisoftYiiBootstrap5

В виджете Breadcrumbs из пакета Yii Bootstrap 5 исправлена ошибка: не работало отключение "домашней" ссылки (PR).

Пример:

<?= Breadcrumbs::widget([                                   
'homeLink' => [],
'links' => $this->params['breadcrumbs'] ?? [],
]) ?>
#yiisoftAssets #МажорныйРелиз #Релиз

🎁 Yii Assets 2.0.0

Изменили публичный API для более удобного использования.

Метод Yiisoft\Assets\AssetManager::register() в качестве первого аргумента теперь принимает только один класс бандла. Для регистрации одновременно нескольких классов добавлен новый метод Yiisoft\Assets\AssetManager::registerMany() (PR).

—————

⚡️ #yiisoftDemo #yiisoftApp #yiisoftYiiJquery #yiisoftView #yiisoftYiiDebug #yiisoftYiiBootstrap5 #yiisoftYiiSwagger #yiisoftYiiAuthClient #yiisoftYiiBulma

Внесены соответствующие изменения в пакеты и приложения:

Демо веб-приложения (PR)
Шаблон веб-приложения (PR)
Yii jQuery (PR)
Yii View (PR)
Yii Debug (PR)
Yii Bootstrap 5 (PR)
Yii Swagger (PR)
Yii External Authentication (PR)
Yii Bulma (PR, PR)
⚡️ #yiisoftYiiBootstrap5

В виджете Nav из пакета Yii Bootstrap 5 добавлены новые опции: activeClass, dropdownOptions, itemOptions, linkOptions (PR).
⚡️ #yiisoftDi

Изменили способ конфигурирования контейнера в Yii Dependency Injection: теперь вместо передачи нескольких параметров (дефинишены, делегаты и др.) в конструктор передаётся реализация интерфейса ContainerConfigInterface, позволяющая получить конфигурацию контейнера (PR).

Пример:

$config = ContainerConfig::create()
->withDefinitions($definitions)
->withProviders($providers)
->withTags($tags)
->withValidate(false)
->withDelegates($delegates);
$container = new Container($config);


⚡️ #yiisoftDocs #yiisoftYiiJquery #yiisoftInjector #yiisoftYiiAuthClient #yiisoftLogTargetDb #yiisoftYiiDebugViewer #yiisoftTranslatorMessageDb #yiisoftYiiDbMigration #yiisoftYiiDebug #yiisoftYiiBootstrap5 #yiisoftTranslatorExtractor #yiisoftYiiDataview #yiisoftYiiSwagger #yiisoftYiiRunnerConsole #yiisoftAppApi #yiisoftYiiRunnerRoadrunner #yiisoftYiiGii #yiisoftYiiRunnerHttp #yiisoftApp #yiisoftDemo

Соответствующие изменения внесены в документацию (PR), приложения и пакеты:

Yii jQuery (PR),
Yii Injector (PR),
Yii External Authentication (PR),
Yii Logging DB Target (PR),
Yii Debug Viewer (PR),
Yii Translator DB Message Storage (PR),
Yii DB Migration (PR),
Yii Debug (PR),
Yii Bootstrap 5 (PR),
Yii Message Extractor (PR),
Yii Data Widgets (PR),
Yii Swagger (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR),
Yii HTTP Runner (PR),
Gii (PR),
Шаблон API-приложения (PR),
Шаблон веб-приложения (PR),
Демо веб-приложения (PR).
⚡️ #yiisoftYiiBootstrap5

В пакете Yii Bootstrap 5 в виджете Dropdown добавили методы itemOptions() и linkOptions() (PR).
⚡️ #yiisoftYiiBootstrap5

Доработали виджеты в пакете Yii Bootstrap 5 (PR):

• в абстрактном классе Widget метод getId() сделали публичным и добавили в нём опциональный аргумент $suffix;

• в виджете Accordion добавили свойства expands, defaultExpand, headerOptions и contentOptions;

• в виджете Tabs удалили свойства itemOptions, headerOptions, encodeLabels, dropdownClass, options и добавили paneOptions, navDefinitions.
⚡️ #yiisoftYiiBootstrap5

В пакете Yii Bootstrap 5 улучшили пример конфигурации пунктов меню в виджете Nav (PR).
👍1
⚡️ #yiisoftYiiBootstrap5

Исправлена ошибка в пакете Yii Bootstrap 5: не добавлялись необходимые классы к активным элементам со ссылкой / в виджете Nav (PR).
⚡️ #yiisoftYiiBootstrap5

В пакете Yii Bootstrap 5 добавили новый виджет Offcanvas и сделали много доработок (PR).

Виджет Alert

- Добавлена возможность задать шапку для алерта (методы header(), headerTag() и headerOptions()).
- Добавлена возможность включить/отключить экранирование содержимого (метод encode()).
- Добавлены методы, устанавливающие тип алерта: primary(), secondary(), success(), danger(), warning(), info(), light(), dark().
- Добавлена возможность включить/отключить анимацию скрытия алерта (метод fade()).
- Добавлен метод addClassNames() для установки имён классов.
- Добавлен метод closeButtonTag(), задающий тег кнопки, закрывающей алерт.
- Метод renderCloseButton() сделан публичным.

Виджет Modal

-
Добавлены константы для всех размеров: SIZE_SMALL, SIZE_DEFAULT, SIZE_LARGE, SIZE_EXTRA_LARGE.
- Добавлен метод fullscreen() и константы FULLSCREEN_ALWAYS, FULLSCREEN_BELOW_SM, FULLSCREEN_BELOW_MD, FULLSCREEN_BELOW_LG, FULLSCREEN_BELOW_XL, FULLSCREEN_BELOW_XXL.
- Переопределён метод getId(): если есть, то возвращается ID из опций, в противном случае генерируется ID с суффиксом -modal.
- Добавлен метод getTitleId(), возвращающий идентификатора блока TItle.
- Добавлена возможность указать атрибуты для блоков Content (contentOptions()) и Dialog (dialogOptions()).
- Добавлена возможность включить/отключить анимацию (метод fade()).
- Добавлены методы для включения/отключения статического фона (staticBackdrop()), прокрутки длинного содержимого (scrollable()) и центрирования по вертикали (centered()).
- Добавлена возможность указать тег для блоков Title, CloseButton, ToggleButton, Footer, Header и Body.
- Для блоков Title, CloseButton и Footer добавлена возможность отдельно указать — экранировать или нет содержимое.
- Разрешены пустые заголовок (title) и подвал (footer).

Виджет NavBar

- Переопределён метод getId(): если есть, то возвращается ID из опций, в противном случае генерируется ID с суффиксом -navbar.
- Добавлен метод expandSize() и константы EXPAND_SM, EXPAND_MD, EXPAND_LG, EXPAND_XL, EXPAND_XXL.
- Добавлена возможность указать атрибуты для блока BrandImage (метод brandImageAttributes()).
- Добавлена возможность указать тему (методы theme(), light(), dark()) и константы THEME_LIGHT, THEME_DARK.
- Добавлена поддержка компонента Offcanvas (метод offcanvas()).
- Для блоков Brand и Toggle Button добавлена возможность отдельно указать — экранировать или нет содержимое.

Виджет Tabs

- Исправлено: в методе getId() не учитывался префикс.
🔥5
⚡️ #yiisoftYiiBootstrap5

Ещё несколько улучшений в Yii Bootstrap 5 в виджетах Alert, Offcanvas и Accordion (PR).
⚡️ #yiisoftYiiBootstrap5

В пакете Yii Bootstrap 5 у виджета Accordion добавлена поддержка Stringable-объектов для содержимого элементов аккордеона (PR).
⚡️ #yiisoftYiiBootstrap5

Улучшили пример использования виджета NavBar в пакете Yii Bootstrap 5 (PR).
⚡️ #yiisoftForm #yiisoftYiiBulma #yiisoftYiiBootstrap5 #yiisoftDemo

Закончили большой рефакторинг пакета Yii Form (PR):

• Явно выделили фабрику для создания полей, которая позволяет применять ко всем полям общую конфигурацию.

• Сделали хелпер Field со статическими методами для создания полей форм и возможностью одновременно использовать в приложении несколько общих конфигураций для полей.

Адаптировали к этим изменениям демо веб-приложения (PR) и конфигурации в пакетах Yii Bulma (PR) и Yii Bootstrap 5 (PR).
👍2
⚡️ #yiisoftYiiDebugViewer #yiisoftYiiBulma #yiisoftYiiCaptcha #yiisoftYiiBootstrap5

Сделали изменения в стили кода. Методы, вызываемые «цепочкой», перенесли на новую строку:

- Yii Debug Viewer (PR)
- Yii Bulma (PR)
- Yii Captcha Widget (PR)
- Yii Bootstrap 5 (PR)