Хроники 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 в вывод результата работы команды git/status добавили название текущей ветки (PR).
⚡️ #yiisoftYiiDebugApi #yiisoftYiiDebugViewer

Изменили эндпоинт по умолчанию в Yii Debug API с /debug на /debug/api (PR).

Yii Debug Viewer адаптировали к новому эндпоинту и сделали ещё несколько улучшений (PR):

- переработали маршрутизацию;

- в списке событий добавили информацию о месте, где было вызвано событие, в виде ссылки на него в PhpStorm;

- в списке сообщений лога добавили информацию о контексте и месте, где было создано сообщение, в виде ссылки на него в PhpStorm;

- в панели "Middlewares" добавили вывод информации об обработчике запроса;

- убрали вывод маршрутов дебаггера в общем списке маршрутов;

- внесли мелкие правки в оформление.
👍2
⚡️ #yiisoftRbacCycleDb

Сделали первую реализацию хранилища ролей, разрешений и назначений их пользователям для Yii RBAC на базе Cycle DBAL в пакете Yii RBAC Cycle Database Storage (PR).
👍4
⚡️ #yiisoftLog

Исправили ошибку в Yii Logging, которая возникала в случаях, когда установлена локаль c запятой в качестве десятичного разделителя (PR).
#yiisoftTestSupport #МинорныйРелиз #Релиз

🎁 Yii Test Support 1.4.0

Несколько изменений, касающихся работы метода SimpleContainer::has() в случаях, когда запрашиваемого объекта нет в списке дефинишенов:

• при создании объекта перехватываются не все исключения, а только NotFoundException;

• добавлена возможность указать в конструкторе SimpleContainer произвольную функцию, которая заменит стандартное поведение.
⚡️ #yiisoftDocs

В документацию добавили соглашение о поддерживаемых версиях PHP (PR).

Версии PHP, поддерживаемые пакетами и шаблонами приложений, зависят от жизненного цикла версий PHP.

• Версии пакетов с активной поддержкой ДОЛЖНЫ поддерживать все версии PHP, которые находятся в стадии активной поддержки.

• У пакетов и шаблонов приложений ДОЛЖНЫ быть версии получающие исправления ошибок и проблем безопасности, поддерживающие версии PHP, которые находятся в стадии поддержки безопасности.

• Пакеты и шаблоны приложений МОГУТ иметь поддерживаемые версии, которые работают с неподдерживаемыми версиями PHP.

• Поднятие минимальной версии PHP в пакете или шаблоне приложения считается минорным изменением.

• Исключение: пакеты и шаблоны приложений МОГУТ не поддерживать PHP 7.4.
🔥7
⚡️ #yiisoftYiiBulma

Внесли несколько улучшений и подчистили код в пакете Yii Bulma (PR).

• Зависимость от AssetPackagist теперь опциональная. Необходимые ресурсы могут быть установлены вручную через NPM.

• Изменены имена некоторых методов в виджетах на более понятные.

• Удалён абстрактный класс \Yiisoft\Yii\Bulma\Widget.

• В документации улучшены описания, примеры и скриншоты виджетов.

• Уровень psalm поднят до 1.

• Добавлены новые тесты.

• Улучшены описания в doc-блоках.
👍2
⚡️ #yiisoftYiiBootstrap5

В пакете Yii Bootstrap 5 улучшили пример конфигурации пунктов меню в виджете Nav (PR).
👍1
#yiisoftHtml #МинорныйРелиз #Релиз

🎁 Yii HTML 2.3.0

Добавлены классы для тегов:
- Title,
- H1,
- H2,
- H3,
- H4,
- H5,
- H6,
- Picture,
- Audio,
- Video,
- Source,
- Track.
⚡️ #yiisoftYiiConsole

В пакете Yii Console подняли минимальную версию PHP до 8.0 (PR).
👍1
⚡️ #yiisoftDb #yiisoftDbRedis

В пакете Yii DB добавили возможность отключить автоматическое использование slave-подключения для запросов на чтение (PR):

- в интерфейсе ConnectionInterface добавлен метод isAutoSlaveForReadQueriesEnabled();

- в класс Connection добавлен метод для установки опции setEnableAutoSlaveForReadQueries() (по умолчанию — true);

- в пакете Yii DB Redis Extension метод Connection::sAutoSlaveForReadQueriesEnabled() помечен как неподдерживаемый (PR).
⚡️ #yiisoftYiiDebug

Добавили два новых сборщика в Yii Debug (PR):

AssetCollector — собирает информацию о подключаемых через Yii Assets ресурсах;

WebViewCollector — собирает информацию о подключаемых через Yii View представлениях.
👍3
⚡️ #yiisoftYiiDebug

В Yii Debug сборщик событий EventCollector теперь дополнительно запоминает имя файла с классом события (PR).
⚡️ #yiisoftYiiBootstrap5

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

🎁 Yii Logging 1.0.4

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

Также перед релизом были доработаны тесты (в некоторых случаях не проходил тест, связанный со временем) и в dev-зависимости было добавлено расширение JSON (PR).
👍1
⚡️ #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
⚡️ #yiisoftValidator #yiisoftForm #yiisoftRequestModel #yiisoftDemo

Большое обновление Yii Validator (PR).

• Добавлена поддержка атрибутов PHP. Выглядит это приблизительно так:

final class Point
{
#[HasOne(Coordinates::class)]
private $coordinates;

#[Number(min: -10, max: 10)]
private int $x;

#[Number(min: -10, max: 10)]
private int $y;
}

• Минимальная версия PHP поднята до 8.0.

• В связи с переходом на PHP 8.0 и возможностью использовать именованные аргументы создание правил через статическую фабрику ::rule() утратило смысл. Теперь правила создаются классическим способом через конструктор (new MyRule()).

• Правило Each теперь принимает в качестве правил iterable-значение вместо RuleSet.

• Правило MatchRegularExpression переименовано в Regex.

• Выполнен внутренний рефакторинг (переименование переменных, небольшие изменения в коде и прочее).

Необходимые изменения (в том числе поднята минимальная версия PHP до 8.0) внесены в пакеты и приложения, зависящие от валидатора:
- Yii Form (PR),
- Yii Request Model (PR),
- Демо веб-приложения (PR).
👍3🔥1
⚡️ #yiisoftYiiDebugViewer

В Yii Debug Viewer при выводе лога событий класс события сделан ссылкой на него в PhpStorm (PR).
👍1
⚡️ #yiisoftYiiBulma

Причесали пакет Yii Bulma (PR):
- доработана документация;
- покрытие тестами увеличено до 100%;
- показатель MSI увеличен до 100%;
- внесены мелкие исправления.
⚡️ #yiisoftRbac

В пакете Yii Role-Based Access Control добавили ещё тестов и немного поправили стиль кода (PR).
⚡️ #yiisoftYiiDataview

Сделали много доработок в Yii Data Widgets:

• Активная страница в вижете LinkPager теперь может одновременно быть активной (active) и отключенной (disabled).

• У виджета LinkPager добавлена опция hideFirstPageParameter для удаления из ссылки на первую страницу аргумента с номером страницы.

• У ActionColumn добавлены новые опции primaryKeyName, idInQueryString, arguments и queryParameters.

… и множество других изменений, подробнее в PR.