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

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

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
加入频道
⚡️ #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)
⚡️ #yiisoftYiiBootstrap5

В Yii Bootstrap 5 уровень psalm повышен до 2 (PR).
👍2
⚡️ #yiisoftYiiBootstrap5

Несколько улучшений в Yii Bootstrap 5.

• В CI пакета добавили проверку транзитивных зависимостей и явно прописали найденные (PR).

• В CI пакета добавили Rector и применили предлагаемые изменения (PR).
👍5
⚡️ #yiisoftForm #yiisoftYiiBootstrap5 #yiisoftYiiDataview

Подняли минимальную версию зависимости yiisoft/html до ^3.0 и адаптировали к ней код в пакетах:
- Yii Form (PR),
- Yii Bootstrap 5 (PR),
- Yii Data Widgets (PR).
👍3
#yiisoftYiiBootstrap5 #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Bootstrap 5 1.0.0

Первый стабильный релиз пакета с виджетами для Bootstrap 5:

• Accordion
• Alert
• Breadcrumbs
• Button
• Button Group
• Button Toolbar
• Carousel
• Collapse
• Dropdown
• Modal
• Nav
• NavBar
• Offcanvas
• Progress
• Progress Stack
• Toast

Пример виджета:

echo Carousel::widget()
->id('carouselExampleOnlyText')
->items(
CarouselItem::to(
Div::tag()
->addClass('bg-primary text-white p-5 text-center')
->addContent(
H2::tag()->content('Title 1'),
P::tag()->content('This is the first slide with text.'),
),
),
CarouselItem::to(
Div::tag()
->addClass('bg-success text-white p-5 text-center')
->addContent(
H2::tag()->content('Title 2'),
P::tag()->content('This is the second slide with text.'),
),
),
CarouselItem::to(
Div::tag()
->addClass('bg-danger text-white p-5 text-center')
->addContent(
H2::tag()->content('Title 3'),
P::tag()->content('This is the third slide with text.'),
),
),
);
👍15🔥11👾1