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

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

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

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

В приложениях файл, содержащий код, который выполняется в самом начале работы приложения, переименован из preload.php в autoload.php:

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

В шаблоне веб-приложения сделали инъекцию сервиса Aliases в шаблоны представлений (PR).
#Рецепты #yiisoftApp #yiisoftYiiMiddleware

🍕 Yii3 в подпапке домена, Сергей Предводителев

На примере шаблона веб-приложения пошагово разбирается, как разместить точку входа в приложение и публичные файлы в подпапке домена, такой как https://example.com/application/.
👍2
⚡️ #yiisoftAccess #yiisoftRbac

В пакете Yii Role-Based Access Control добавили понятие "гостевая роль" и разрешили проверку прав для гостевых пользователей (ID у таких равен null): если указана гостевая роль, то проверка будет выполняться для неё, а если нет, то всегда будет возвращаться false (PR).

Также внесли изменение в пакет Yii Access: В интерфейсе AccessCheckerInterface разрешили передавать null для ID пользователя в методе userHasPermission() (PR).
👍1
⚡️ #yiisoftYiiRunner

Обновили зависимости, сделали небольшой рефакторинг и "причесали" служебные файлы в пакете Yii Runner (PR).
#yiisoftTranslatorMessagePhp #ПатчРелиз #Релиз

🎁 Yii Translator PHP Message Storage 1.0.4

• Добавлена поддержка кодов языков, содержащих цифры. Например, en-150 (PR).
⚡️ #yiisoftMiddlewareDispatcher

Улучшили описания в doc-блоках и обновили dev-зависимости в пакете Yii Middleware Dispatcher (PR).
⚡️ #yiisoftYiiRunnerHttp

В Yii HTTP Runner убрали избыточную проверку на перезапись заголовков при их отправке, так как все ранее установленные заголовки удаляются функцией header_remove() (PR).
⚡️ #yiisoftAccess

Доработали описание в readme и doc-блоках пакета Yii Access, а также добавили в GitHub Actions проверку на слом обратной совместимости и немного подчистили служебные файлы (PR).