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

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

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

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

В раннерах добавили проверку существования групп конфигураций определений сервисов, сервис-провайдеров и делегатов при настройке DI-контейнера:

Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR).
⚡️ #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiRunnerRoadrunner

Явно прописали зависимость от yiisoft/config в пакетах:

Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR).
⚡️ #yiisoftYiiRunner #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiRunnerRoadrunner #yiisoftApp #yiisoftDemo #yiisoftAppApi

ConfigFactory из пакета Yii Runner теперь принимает в качестве первого аргумента объект Yiisoft\Config\ConfigPaths вместо абсолютного пути к корню проекта, что позволит при необходимости дополнительно указать пути к папке с конфигурацией приложения и к папке vendor (PR).

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

Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR),
Шаблон веб-приложения (PR),
Демо веб-приложения (PR),
Шаблон API-приложения (PR).
#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
⚡️ #yiisoftYiiRunner #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiRunnerRoadrunner

Общую функциональность классов для запуска приложений вынесли в отдельный абстрактный класс \Yiisoft\Yii\Runner\ApplicationRunner:

Yii Runner (PR),
Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR).
⚡️ #yiisoftYiiRunnerConsole

В пакете Yii Console Runner убрали всю инфраструктуру для мутационного и юнит-тестирования (зависимости, GitHub Actions, конфигурации), оставив только статический анализ.

Сделано это было в связи с тем, что в пакете остался только один класс, который с помощью метода run() запускает консольное приложение. Метод run() содержит конструкцию:

try {
...
} catch (Throwable $throwable) {
...
} finally {
...
exit();
}

И команда exit() не позволяет протестировать этот метод с помощью юнит-тестов.

В дальнейшем планируем добавить приёмочные тесты с помощью Codeception.
⚡️ #yiisoftYiiRunnerConsole

В пакете Yii Console Runner добавили приёмочные тесты с помощью Codeception (PR).
👍1
#yiisoftYiiRunner #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Runner 1.0.0
🎁 Yii HTTP Runner 1.0.0
🎁 Yii Console Runner 1.0.0

Раннеры позволяют упростить процесс настройки приложения, скрывая детали инициализации. Например, вместо довольно сложной инициализации, в точке входа в HTTP-приложение достаточно простого кода:

<?php

declare(strict_types=1);

use Yiisoft\Yii\Runner\Http\HttpApplicationRunner;

require_once __DIR__ . '/autoload.php';

(
new HttpApplicationRunner(
__DIR__,
$_ENV['YII_DEBUG'],
$_ENV['YII_ENV']
)
)->run();


Вместе с основным пакетом зарелизили адаптеры для консольного и HTTP-приложения. Релиз адаптера для RoadRunner (Yii RoadRunner Runner) будет чуть позже.
🎉7
⚡️ #yiisoftYiiRunnerConsole

Слегка улучшили doc-блоки в Yii Console Runner (PR).
👍3
#yiisoftDi #yiisoftFactory #yiisoftWidget #yiisoftYiiRunner #yiisoftYiiRunnerConsole #yiisoftYiiRunnerHttp #yiisoftYiiRunnerRoadrunner #yiisoftRbacRulesContainer #ПатчРелиз #Релиз

🎁 Yii Dependency Injection 1.0.3

• Улучшена производительность при получении объектов по тегу из композитного контейнера.

• Добавлена поддержка yiisoft/definitions версии ^2.0 (PR).


🎁 Yii Factory 1.0.1

• Добавлена поддержка yiisoft/definitions версии ^2.0 (PR).


🎁 Yii Widget 1.0.1

• Добавлена поддержка yiisoft/definitions версии ^2.0 (PR).

• В решение в дружественном исключении WidgetFactoryInitializationException добавлен пример инициализации WidgetFactory.


🎁 Yii Runner 1.1.1

• Добавлена поддержка yiisoft/definitions версии ^2.0 (PR).


🎁 Yii Console Runner 1.0.1

• Добавлена поддержка yiisoft/definitions версии ^2.0 (PR).


🎁 Yii HTTP Runner 1.0.1

• Добавлена поддержка yiisoft/definitions версии ^2.0 (PR).


🎁 Yii RoadRunner Runner 1.0.1

• Добавлена поддержка yiisoft/definitions версии ^2.0 (PR).


🎁 Yii RBAC Rules Container 1.0.1

• Добавлена поддержка yiisoft/definitions версии ^2.0 (PR).
🔥1
#yiisoftYiiRunnerConsole #МинорныйРелиз #Релиз

🎁 Yii Console Runner 1.1.0

Обновили dev-зависимость codeception/codeception до версии ^5.0 (PR) и сделали минорный релиз.

• При запуске приложения добавлена передача объекта ArgvInput (PR).
👍2
⚡️ #yiisoftValidator #yiisoftYiiSentry #yiisoftYiiSwagger #yiisoftYiiRunnerRoadrunner #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiHttp #yiisoftYiiRunner

В GitHub Actions добавили конфигурацию для запуска Rector и применили предлагаемые изменения:

- Yii Validator (PR),
- Yii Sentry (PR),
- Yii Swagger (PR),
- Yii RoadRunner Runner (PR),
- Yii HTTP Runner (PR),
- Yii Console Runner (PR),
- Yii HTTP Application (PR),
- Yii Runner (PR).
🔥4
⚡️ #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftRbacRulesContainer

Добавили проверку транзитивных зависимостей в пакетах:
- Yii HTTP Runner (PR),
- Yii Console Runner (PR),
- Yii RBAC Rules Container (PR, PR).
👍3
#yiisoftYiiRunnerConsole #ПатчРелиз #Релиз

🎁 Yii Console Runner 1.1.1

• В composer.json явно прописана зависимость от symfony/console.

• Добавлена поддержка yiisoft/definitions версии ^3.0 (PR).
👍3
⚡️ #yiisoftYiiRunnerConsole #yiisoftYiiRunnerHttp #yiisoftHtml #yiisoftYiiWidgets

Обновили dev-зависимости в 4х пакетах.

Yii HTML
- rector/rector до ^0.15.1 (PR).

Yii Console Runner
- vimeo/psalm до ^4.30|^5.2 (PR);
- rector/rector до ^0.15.1 (PR).

Yii HTTP Runner
- vimeo/psalm до ^4.30|^5.2 и roave/infection-static-analysis-plugin до ^1.25 (PR);
- rector/rector до ^0.15.1 (PR).

Yii Widgets
- rector/rector до ^0.15.1 (PR).
👍4
#yiisoftYiiRunner #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiRunnerRoadrunner #МажорныйРелиз #Релиз

🎁 Yii Runner 2.0
🎁 Yii HTTP Runner 2.0
🎁 Yii Console Runner 2.0
🎁 Yii RoadRunner Runner 2.0

• Раннеры адаптированы к соглашению Yii об именах групп конфигураций.

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

• Параметры "environment" и "debug" сделаны опциональными.

• Добавлен параметр "checkEvents".

😎 Релизы подготовили Сергей Предводителев, Рустам Мамадаминов и Александр Макаров.
👍311
#yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #МинорныйРелиз #Релиз

🎁 Yii HTTP Runner 2.2
🎁
Yii Console Runner 2.1

• Добавлена возможность указать дополнительные модификаторы конфигурации для приложения.
👍8👾3
#yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #ПатчРелиз #Релиз

🎁
Yii Console Runner 2.1.1

• Добавлена поддержка symfony/console версии ^7.0.
👾5👍4
#yiisoftYiiRunnerConsole #МинорныйРелиз #Релиз

🎁 Yii Console Runner 2.2

• Добавлена возможность указать путь к папкам vendor и config, а также расположение файла с планом слияния конфигурации (merge plan).
👍3👾1