✨ #yiisoftYiiRunner #yiisoftYiiRunnerConsole #yiisoftYiiRunnerWeb #yiisoftYiiRunnerRoadrunner
Создан новый пакет Yii Runner, в который вынесен общий код, необходимый для запуска любого приложения:
- класс
- фабрика
- класс
- интерфейс
Также созданы три новых пакета с реализациями интерфейса
- Yii Console Runner,
- Yii Web Runner,
- Yii RoadRunner Runner.
Создан новый пакет Yii Runner, в который вынесен общий код, необходимый для запуска любого приложения:
- класс
BootstrapRunner
, для запуска bootstrap-кода;- фабрика
ConfigFactory
для создания экземпляра класса Yiisoft\Config\Config
;- класс
ThrowableHandler
, реализующий RequestHandlerInterface
, это обёртка исключения для его выброса в мидлвари обработчика ошибок;- интерфейс
RunnerInterface
для скрытия деталей запуска приложения.Также созданы три новых пакета с реализациями интерфейса
RunnerInterface
для запуска приложений соответствующего типа:- Yii Console Runner,
- Yii Web Runner,
- Yii RoadRunner Runner.
⚡️ #yiisoftConfig #yiisoftYiiRunnerRoadrunner #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiRunner
В Yii Config добавлена опция
Пример:
Эта опция добавлена в раннерах:
Yii RoadRunner Runner (PR),
Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii Runner (PR).
В Yii Config добавлена опция
build-merge-plan
в composer-плагине, позволяющая отключить автоматическое создание мёрж-плана (PR). Опция работает только для корневого пакета.Пример:
"extra": {
"config-plugin-options": {
"build-merge-plan": false
}
},
Эта опция добавлена в раннерах:
Yii RoadRunner Runner (PR),
Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii Runner (PR).
⚡️ #yiisoftYiiRunnerHttp #yiisoftYiiRunnerRoadrunner #yiisoftYiiRunnerConsole
В раннерах добавлены/улучшены описания в doc-блоках:
Yii HTTP Runner (PR),
Yii RoadRunner Runner (PR),
Yii Console Runner (PR).
В раннерах добавлены/улучшены описания в doc-блоках:
Yii HTTP Runner (PR),
Yii RoadRunner Runner (PR),
Yii Console Runner (PR).
⚡️ #yiisoftDi
Изменили способ конфигурирования контейнера в Yii Dependency Injection: теперь вместо передачи нескольких параметров (дефинишены, делегаты и др.) в конструктор передаётся реализация интерфейса
Пример:
⚡️ #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).
Изменили способ конфигурирования контейнера в 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).
В раннерах добавили проверку существования групп конфигураций определений сервисов, сервис-провайдеров и делегатов при настройке DI-контейнера:
Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR).
⚡️ #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiRunnerRoadrunner
Явно прописали зависимость от
Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR).
Явно прописали зависимость от
yiisoft/config
в пакетах:Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR).
⚡️ #yiisoftYiiRunner #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiRunnerRoadrunner #yiisoftApp #yiisoftDemo #yiisoftAppApi
Соответствующие изменения внесены в пакеты и приложения:
Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR),
Шаблон веб-приложения (PR),
Демо веб-приложения (PR),
Шаблон API-приложения (PR).
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
Добавили интерфейс
—————
⚡️ #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiRunnerRoadrunner
Соответствующие изменения внесены в раннеры:
Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR).
🎁 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
Общую функциональность классов для запуска приложений вынесли в отдельный абстрактный класс
Yii Runner (PR),
Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii RoadRunner Runner (PR).
Общую функциональность классов для запуска приложений вынесли в отдельный абстрактный класс
\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, конфигурации), оставив только статический анализ.
Сделано это было в связи с тем, что в пакете остался только один класс, который с помощью метода
В дальнейшем планируем добавить приёмочные тесты с помощью Codeception.
В пакете Yii Console Runner убрали всю инфраструктуру для мутационного и юнит-тестирования (зависимости, GitHub Actions, конфигурации), оставив только статический анализ.
Сделано это было в связи с тем, что в пакете остался только один класс, который с помощью метода
run()
запускает консольное приложение. Метод run()
содержит конструкцию:try {И команда
...
} catch (Throwable $throwable) {
...
} finally {
...
exit();
}
exit()
не позволяет протестировать этот метод с помощью юнит-тестов.В дальнейшем планируем добавить приёмочные тесты с помощью Codeception.