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

Обсуждение:
https://t.me/yii3ru

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

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

В пакете Yii Data Widgets удалена неиспользуемая категория сообщений для перевода (PR).
⚡️ #yiisoftRouter

Готовим Yii Router к релизу: подняли уровень psalm до 1 (PR) и удалили интерфейсы CurrentRouteInterface.php, GroupInterface, RouteInterface, RouteParametersInterface (PR).

Удалённые интерфейсы вводились для разделения контекстов использования (конфигурирование и получение данных), но практика показала, что это было неудачное решение (типизация по факту некорректная + интерфейсы вводят в заблуждение). Но, чтобы всё-таки повысить удобство публичного API, мы объединили методы, которые требуются только внутри пакета, и пометили их как @internal:

• в классе Route методы getDispatcherWithMiddlewares(), getName(), getMethods(), getPattern(), getHost(), isOverride(), getDefaults(), hasMiddlewares(), getDispatcherWithMiddlewares() объединены в один getData();

• в классе Group методы getCorsMiddleware(), hasCorsMiddleware(), getMiddlewareDefinitions(), getItems(), getPrefix(), getNamePrefix(), getHost() объединены в один getData();

• в классе CurrentRoute методы setRoute() и setArguments() объединены в один setRouteWithArguments();

• метод CurrentRoute::setUri() также помечен как @internal.

—————

⚡️ #yiisoftRouterFastroute #yiisoftRequestModel #yiisoftYiiDebugApi #yiisoftYiiDataview #yiisoftDocs #yiisoftDemo #yiisoftApp #yiisoftDemoApi

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

- Yii Router FastRoute Adapter (PR),
- Yii Request Model (PR, PR),
- Yii Debug API (PR),
- Yii Data Widgets (PR),
- Шаблон веб-приложения (PR),
- Демо веб-приложения (PR),
- Демо API-приложения (PR).
⚡️ #yiisoftYiiDataview

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

Улучшили виджеты LinkSorter и LinkPager в Yii Data Widgets (PR):

• Добавили возможность отдельно задавать атрибуты роута и GET-параметры, если они не указаны, то будут использованы соответствующие данные из текущего роута.

• Добавили возможность изменить шаблон в LinkPager, что позволит создавать сложные макеты пагинации.

• Добавили возможность использовать аргумент роута в качестве текущей страницы.

Добавили пример использования Yii Data Widgets в демо веб-приложения (PR).
👍2
⚡️ #yiisoftYiiDataview

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

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

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

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

… и множество других изменений, подробнее в PR.
⚡️ #yiisoftAccess #yiisoftErrorHandler #yiisoftEventDispatcher #yiisoftFactory #yiisoftHttp #yiisoftI18n #yiisoftAliases #yiisoftJson #yiisoftProfiler #yiisoftInjector #yiisoftMailerSymfony #yiisoftMutex #yiisoftRateLimiter #yiisoftNetworkUtilities #yiisoftSession #yiisoftRouter #yiisoftStrings #yiisoftRouterFastroute #yiisoftRequestBodyParser #yiisoftTranslatorMessageGettext #yiisoftTranslatorExtractor #yiisoftTranslatorFormatterSimple #yiisoftTranslator #yiisoftTranslatorFormatterIntl #yiisoftTranslatorMessageDb #yiisoftUser #yiisoftVarDumper #yiisoftViewTwig #yiisoftYiiEvent #yiisoftTranslatorMessagePhp #yiisoftDataResponse #yiisoftCacheFile #yiisoftCookies #yiisoftCsrf #yiisoftAssets #yiisoftAuthJwt #yiisoftLog #yiisoftArrays #yiisoftYiiFilesystem #yiisoftYiiHttp #yiisoftYiiRunnerHttp #yiisoftLogTargetFile #yiisoftLogTargetEmail #yiisoftYiiRunnerRoadrunner #yiisoftSecurity #yiisoftYiiSwagger #yiisoftYiiSentry #yiisoftMutexFile #yiisoftMiddlewareDispatcher #yiisoftTestSupport #yiisoftYiiDebug #yiisoftYiiDebugViewer #yiisoftCacheApcu #yiisoftYiiDataview #yiisoftLogTargetSyslog #yiisoftAuth #yiisoftDefinitions #yiisoftRbacPhp #yiisoftDataDb #yiisoftData #yiisoftRequestModel #yiisoftDi #yiisoftConfig #yiisoftRbacRulesContainer

Продолжаем заменять рабочие процессы на переиспользуемые из Yii GitHub Actions:

- Yii Access (PR)
- Yii Error Handler (PR)
- Yii Event Dispatcher (PR)
- Yii Factory (PR)
- Yii HTTP (PR)
- Yii Internationalization Library (PR)
- Yii Aliases (PR)
- Yii JSON (PR)
- Yii Profiler (PR)
- Yii Injector (PR)
- Yii Mailer Symfony Mailer Extension (PR)
- Yii Mutex (PR)
- Yii Rate Limiter Middleware (PR)
- Yii Network Utilities (PR)
- Yii Session (PR)
- Yii Router (PR)
- Yii Strings (PR)
- Yii Router FastRoute Adapter (PR)
- Yii Request Body Parser (PR)
- Yii Translator gettext Message Storage (PR)
- Yii Message Extractor (PR)
- Yii Translator Simple Message Formatter (PR)
- Yii Message Translator (PR)
- Yii Translator intl Message Formatter (PR)
- Yii Translator DB Message Storage (PR)
- Yii User (PR)
- Yii VarDumper (PR)
- Yii View Twig Renderer (PR)
- Yii Event (PR)
- Yii Translator PHP Message Storage (PR)
- Yii Data Response (PR)
- Yii Cache File Handler (PR)
- Yii Cookies (PR)
- Yii CSRF Protection Library (PR)
- Yii Assets (PR)
- Yii Auth JWT (PR)
- Yii Logging Library (PR)
- Yii Arrays (PR)
- Yii Filesystem (PR)
- Yii HTTP Application (PR)
- Yii HTTP Runner (PR)
- Yii Logging File Target (PR)
- Yii Logging Email Target (PR)
- Yii RoadRunner Runner (PR)
- Yii Security (PR)
- Yii Swagger (PR)
- Yii Sentry (PR)
- Yii Mutex File Driver (PR)
- Yii Middleware Dispatcher (PR)
🤯6👍5
⚡️ #yiisoftYiiDataview

В Yii Data Widgets подняли требуемую версию yiisoft/view до ^5.0|^6.0, убрали использование устаревших методов в коде и исправили опечатку в конфигурации CI-процесса build (PR).
🔥2
⚡️ #yiisoftYiiDataview

Выполнили большой рефакторинг, практически переписали весь код, в Yii Data Widgets (PR).
🔥5👍1
⚡️ #yiisoftYiiDataview

В Yii Data Widgets исправили ошибку в виджете OffsetPagination, возникающую в случае, когда нет страниц (PR).
👍4
⚡️ #yiisoftYiiDataview #yiisoftDemo

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

• Установку генератора URL в виджетах BaseListView, BasePagination и LinkSorter перенесли из отдельного метода в конструктор (PR).

• Добавили тесты для случаев, когда нет пагинации + сделали мелкие улучшения в коде (PR).

Соответствующие изменения внесли в демо веб-приложения (PR).
👍2
⚡️ #yiisoftYiiDataview #yiisoftDemo

В виджетах Yii Data Widgets текущий роут теперь определяется автоматически с помощью зависимости CurrentRoute (PR).

Соответствующие изменения внесли в демо веб-приложения (PR).
👍2
⚡️ #yiisoftYiiDataview #yiisoftDemo

В Yii Data Widgets добавили возможность локализации строк в виджетах, наследуемых от BaseListView (PR).

Соответствующие изменения внесли в демо веб-приложения (PR).
🔥3
⚡️ #yiisoftYiiDataview #yiisoftDemo

В Yii Data Widgets добавили класс DataField, который используется в качестве полей в виджете DetailView, а также сделали небольшой рефакторинг кода (PR).

Соответствующие изменения внесли в демо веб-приложения (PR).
👍4🔥1
⚡️ #yiisoftYiiDataview #yiisoftDemo

В Yii Data Widgets метод GridView::columns() вместо массива теперь принимает список аргументов переменной длины (PR).

Соответствующие изменения внесли в демо веб-приложения (PR).
🔥3
⚡️ #yiisoftYiiDataview #yiisoftYiiGii #yiisoftRequestModel

Добавили поддержку yiisoft/router версии ^2.0 в пакетах:
- Yii Data Widgets (PR),
- Gii (PR),
- Yii Request Model (PR).
👍2
⚡️ #yiisoftValidator #yiisoftYiiDataview

Адаптировали пакеты к актуальной версии Yii Translator:
- Yii Validator (PR),
- Yii Data Widgets (PR).
👍2
⚡️ #yiisoftYiiDataview

В пакете Yii Data Widgets обновили dev-зависимости:
- vimeo/psalm до ^4.30|^5.2 и roave/infection-static-analysis-plugin до ^1.25 (PR);
- rector/rector до ^0.15.0 (PR).
👍2
⚡️ #yiisoftYiiDataview

В пакете Yii Data Widgets добавили поддержку yiisoft/view версии ^7.0 (PR).
👍3
⚡️ #yiisoftForm #yiisoftYiiBootstrap5 #yiisoftYiiDataview

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