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

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

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

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

В пакете Yii Bulma доработали документацию и doc-блоки (PR), а также исправили конфигурацию пакета (PR). Теперь конфигурация класса Yiisoft\Form\Widget\Field находится в группе widgets.
⚡️ #yiisoftRouter

В пакете Yii Router сделали 100% покрытие тестами и исправили ошибку при формировании дерева роутов: в случаях, когда несколько групп имели один префикс, часть роутов не попадала в дерево (PR).
⚡️ #yiisoftRouter #yiisoftRouterFastroute

Продолжаем подготовку Yii Router и Yii Router FastRoute Adapter к релизу.

• Существенно дополнили документацию по роутеру (PR).

• Изменили поведение роута в случае, если ему передать диспетчер мидлварей уже с мидлварями: теперь они будут перезаписаны мидлварями роута (PR).

• Отключили добавление мидлварей из коллектора к статическим роутам и добавили поддержку variadic-аргументов для методов (PR, PR):
- Route::middleware(),
- Route::prependMiddleware(),
- Route::disableMiddleware(),
- Group::middleware(),
- Group::prependMiddleware(),
- Group::disableMiddleware(),
- RouteCollector::addRoute(),
- RouteCollector::addGroup(),
- RouteCollector::middleware(),
- RouteCollector::prependMiddleware().

• Добавили тестов, немного почистил и отрефакторили пакет Yii Router FastRoute Adapter (PR).
⚡️ #yiisoftRouter #yiisoftRouterFastroute #yiisoftDemo

Внесли изменения в Yii Router и Yii Router FastRoute Adapter.

• В роутере заменили зависимость MiddlewareDispatcher на MiddlewareFactoryInterface и EventDispatcherInterface (опционально); MiddlewareDispatcher теперь создаётся в конструкторе роутера (PR). Для повышения производительности в долгоживущих приложениях диспетчер с мидлварями в роуте подготавливается один раз и в дальнейшем переиспользуется.

• В FastRoute-адаптере подчистили readme и повысили уровень psalm до 2 (PR).

• Исправили генерацию URL в FastRoute-адаптере для адресов с локализацией, теперь при такой генерации не используются данные последнего активного роута (PR). Соответствующие изменения внесены в демо веб-приложения (PR).
⚡️ #yiisoftDemo

В демо веб-приложения исправили GitHub-процесс проверки зависимостей, зафиксировав версию maglnet/composer-require-checker на ^3.8, так как текущие зависимости приложения конфликтуют с недавно вышедшей 4й версией maglnet/composer-require-checker (PR).
⚡️ #yiisoftYiiQueue

Исправили ошибки psalm в пакете Yii Queue (PR).
⚡️ #yiisoftRouter #yiisoftRouterFastroute

Добавили приведение значений параметров по умолчанию к строке и улучшили psalm-аннотации в Yii Router (PR), а также добавили приведение значений параметров при генерации URL к строке и повысили уровень psalm до 1 в Yii Router FastRoute Adapter (PR).
⚡️ #yiisoftYiiCycle

В ветке 2.0 пакета Yii Cycle ORM добавили поддержку поведений сущности и определение EntityManagerInterface в конфигурацию контейнера (PR).
🎄 С Новым 2022 годом!

5 июля 2021 года мы запустили «Хроники Yii3», за это время опубликовали 473 записи и к нам присоединилось 363 подписчика.

В новом году мы продолжим вести хроники и, надеюсь, в 2022 году случится запись о релизе Yii3, к этому есть серьёзные предпосылки 😎

Во время предновогодней суеты команда Yii3 успела зарелизить несколько пакетов, но об этом далее...
👍11🎉4
#yiisoftRouter #yiisoftRouterFastroute #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Router 1.0.0
🎁
Yii Router FastRoute Adapter 1.0.0

Роутер (он же маршрутизатор) — одна из важнейших составляющих Yii3. Yii Router предоставляет PSR-7 совместимую маршрутизацию запросов и PSR-15 мидлварь, готовую для использования в приложении. Вместо реализации маршрутизации с нуля, пакет предоставляет интерфейс для конфигурации маршрутов и подразумевает использование совместно с пакетом-адаптером. В настоящее время доступен только Yii Router FastRoute Adapter.

Возможности роутера:

• Сопоставление URL-адресов и генерация URL-адресов с поддержкой HTTP-методов, хостов и значений по умолчанию.

• Хорошая поддержка в IDE для конфигурирования маршрутов.

• Группы маршрутов с неограниченной вложенностью.

• Поддержка PSR-15 мидлварей как для отдельных маршрутов, так и для групп.

• Готовая к использованию мидлварь Router для сопоставления маршрутов.

• Удобный сервис CurrentRoute, содержащий информацию о последнем подобранном маршруте.

• Поддержка CORS-мидлварей из коробки.

У пакетов, как и всегда, высокие технические показатели качества:
~100% уровень покрытия тестами,
~100% MSI,
~100% уровень покрытия типами.
Psalm уровень 1.

——————

⚡️ #yiisoftRouter #yiisoftRouterFastroute #yiisoftDemo

Перед релизом было внесено несколько изменений в Yii Router (PR):

• Из пакета удалили всё, что касается локалей. Сейчас в демо-приложении локализация в URL реализована с помощью мидлвари LocaleMiddleware, которая в дальнейшем, возможно, будет выделена в отдельный пакет или переедет в пакет Yii Middleware.

• В интерфейсе генератора URL UrlGeneratorInterface:
- добавили аргумент queryParameters, содержащий массив GET-параметров, в методах generate() и generateAbsolute();
- добавили метод generateFromCurrent() для генерации URL на основе текущего маршрута;
- добавили метод setDefaultArgument().

В соответствии с изменениями в роутере доработали Yii Router FastRoute Adapter (PR, PR) и демо веб-приложения (PR, PR, PR).
👍7🔥2
#yiisoftConfig #МинорныйРелиз #Релиз

🎁 Yii Config 1.1.0

Добавили интерфейс ConfigInterface, позволяющий сделать свою реализацию загрузчика конфигураций:

interface ConfigInterface
{
public function get(string $group): array;
public function has(string $group): bool;
}


—————

⚡️ #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiRunnerRoadrunner

Соответствующие изменения внесены в раннеры:

Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR).
👍1🔥1
👍1
⚡️ #yiisoftYiiDataview

В пакете Yii Data Widgets в виджетах LinkSorter и LinkPager сделали небольшой рефакторинг и выделили в отдельное свойство GET-параметры для генерации ссылок (PR).
⚡️ #yiisoftViewTwig

Исправили ссылку на сайт Twig в readme пакета Yii View Twig Renderer (PR).
⚡️ #yiisoftYiiBulma

В пакете Yii Bulma сделали рефакторинг и обновили документацию для виджетов ProgressBar (PR), Modal (PR), ModalCard (PR) и Message (PR).
#yiisoftConfig #ПатчРелиз #Релиз

🎁 Yii Config 1.1.1

• Улучшили сообщение об ошибке «дублирование ключа в конфигурации»: теперь в нём отображается имя группы, в которой произошла ошибка (PR).

Было:

Duplicate key "age" in configs:
- config/params/a.php
- config/params/b.php


Стало:

Duplicate key "age" in the following configs while building "params" group:
- config/params/a.php
- config/params/b.php
⚡️ #yiisoftYiiDebugViewer

В пакете Yii Debug Viewer прекратили поддержку PHP 7.4 (PR).
⚡️ #yiisoftApp #yiisoftAppApi

В шаблонах веб-приложения (PR) и API-приложения (PR) конфигурация PSR-17 интерфейсов перенесена из группы common в группу web.
⚡️ #yiisoftYiiBootstrap5

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

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

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

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

Обсудив ещё раз расположение конфигурации PSR-17 интерфейсов, решили всё-таки вернуть её в группу common, так как в консоли тоже могут выполняться запросы:

Шаблон веб-приложения (PR),
Шаблон API-приложения (PR),
Демо веб-приложения (PR),
Демо API-приложения (PR).
⚡️ #yiisoftYiiSentry

В пакете Yii Sentry описали процесс установки и настройки (PR), а также удалили неиспользуемые файлы конфигурации (commit).