⚡️ #yiisoftConfig
В пакете Yii Config при выводе сравнения файлов в консоли изменён порядок сравнения файлов: раньше сравнивался файл из вендора с файлом из приложения, теперь наоборот (PR).
В пакете Yii Config при выводе сравнения файлов в консоли изменён порядок сравнения файлов: раньше сравнивался файл из вендора с файлом из приложения, теперь наоборот (PR).
⚡️ #yiisoftConfig
Большое обновление Yii Config (PR, PR).
• Конфигурации из
• Логика объединения конфигов:
- конфигурации объединяются послойно: окружение → приложение → вендор;
- между слоями разрешено переопределение;
- в рамках одного слоя запрещено использовать одинаковые ключи.
• Добавлены модификаторы объединения, задаваемые в конструкторе класса
-
-
-
• Добавлена возможность использовать в качестве параметров любую группу конфигураций вместо
• Добавлена команда
• Добавлена команда
• Удалён параметр
• Удален весь интерактив, отслеживание изменений файлов и служебный файл
—————
⚡️ #yiisoftApp #yiisoftAppApi #yiisoftDemo #yiisoftDemoApi
Приложения адаптированы к этому обновлению:
Шаблон веб-приложения (PR),
Шаблон API-приложения (PR),
Демо веб-приложения (PR),
Демо API-приложения (PR).
Большое обновление Yii Config (PR, PR).
• Конфигурации из
vendor
теперь НЕ копируются в приложение.• Логика объединения конфигов:
- конфигурации объединяются послойно: окружение → приложение → вендор;
- между слоями разрешено переопределение;
- в рамках одного слоя запрещено использовать одинаковые ключи.
• Добавлены модификаторы объединения, задаваемые в конструкторе класса
Config
:-
RecursiveMerge::groups()
— указанные группы будут объединяться рекурсивно,-
ReverseMerge::groups()
— порядок ключей в итоговом массиве будет обратен порядку объединения,-
RemoveFromVendor::keys()
— указанные ключи конфигурации не будут учитываться при получении конфигураций из vendor
.• Добавлена возможность использовать в качестве параметров любую группу конфигураций вместо
params
.• Добавлена команда
yii-config-copy
для копирования конфигурационных файлов из вендора в приложение (при этом эти файлы автоматически в сборку НЕ попадают, это нужно сделать вручную).• Добавлена команда
yii-config-rebuild
для обновления плана слияния.• Удалён параметр
output-directory
, осталась только source-directory
, задающая папку с конфигурациями.• Удален весь интерактив, отслеживание изменений файлов и служебный файл
dist.lock
• План слияния переименован в .merge-plan.php
.—————
⚡️ #yiisoftApp #yiisoftAppApi #yiisoftDemo #yiisoftDemoApi
Приложения адаптированы к этому обновлению:
Шаблон веб-приложения (PR),
Шаблон API-приложения (PR),
Демо веб-приложения (PR),
Демо API-приложения (PR).
⚡️ #yiisoftConfig
В пакете Yii Config чтобы указать, что конфигурация используется без окружения, теперь можно передать как
В пакете Yii Config чтобы указать, что конфигурация используется без окружения, теперь можно передать как
null
, так и пустую строку (PR) + в readme добавлена информация об использовании пакета в PHAR
-архивах (PR).⚡️ #yiisoftConfig
Несколько улучшений в Yii Config (PR).
——————
• В модификаторе
Удалить элементы
• Добавлен новый модификатор
Удалить группу
Несколько улучшений в Yii Config (PR).
——————
• В модификаторе
RemoveFromVendor::keys()
добавлена возможность указать пакет(ы) и группы, на которые будет распространяться этот модификатор.Удалить элементы
a
и b
из всех групп в пакете yiisoft/auth
:RemoveFromVendor::keys(['a'], ['b'])Удалить элементы
->package('yiisoft/auth'),
c
и d
из групп params
и web
в пакете yiisoft/yii-web
:RemoveFromVendor::keys(['c'], ['d'])Удалить элементы
->package('yiisoft/yii-web', 'params', 'web'),
e
и f
из всех групп в пакете yiisoft/auth
и из групп params
и web
в пакете yiisoft/yii-web
:RemoveFromVendor::keys(['e'], ['f'])——————
->package('yiisoft/auth')
->package('yiisoft/yii-web', 'params', 'web'),
• Добавлен новый модификатор
RemoveFromVendor::groups()
, позволяющий исключить из конфигурации группы и пакеты.Удалить группу
params
из всех пакетов:RemoveFromVendor::groups([Удалить группы
'*' => 'params',
]),
common
и web
из всех пакетов:RemoveFromVendor::groups([Удалить все группы из пакета
'*' => ['common', 'web'],
]),
yiisoft/auth
:RemoveFromVendor::groups([Удалить группу
'yiisoft/auth' => '*',
]),
params
из пакета yiisoft/http
:RemoveFromVendor::groups([Удалить группы
'yiisoft/http' => 'params',
]),
params
и common
из пакета yii-web
:RemoveFromVendor::groups([
'yiisoft/yii-web' => ['params', 'common'],
]),
⚡️ #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).
⚡️ #yiisoftConfig
В пакете Yii Config актуализировали примеры в readme и doc-блоках: заменили устаревший пакет
В пакете Yii Config актуализировали примеры в readme и doc-блоках: заменили устаревший пакет
yiisoft/yii-web
на yiisoft/view
(PR).⚡️ #yiisoftConfig
В пакете Yii Config добавили тесты, проверяющую работу с пустыми конфигурациями (PR).
В пакете Yii Config добавили тесты, проверяющую работу с пустыми конфигурациями (PR).
⚡️ #yiisoftConfig
Улучшения в Yii Config.
• Реализовали новый метод
Например:
• Добавили поддержку «пустых» окружений без групп конфигураций (PR).
Улучшения в Yii Config.
• Реализовали новый метод
Config::has()
, позволяющий узнать, существует ли группа конфигураций (PR).Например:
if ($config->has('web')) {
$web = $config->get('web');
}
• Добавили поддержку «пустых» окружений без групп конфигураций (PR).
⚡️ #yiisoftConfig
Добавлена возможность хранения конфигурации пакета Yii Config в виде массива в PHP-файле вместо секции
... и перенести настройки в этот файл:
Добавлена возможность хранения конфигурации пакета Yii Config в виде массива в PHP-файле вместо секции
extra
в composer.json
(PR). Для этого нужно указать путь к PHP-файлу в composer.json
:"extra": {
"config-plugin-file": "path/to/configuration/file.php"
},
... и перенести настройки в этот файл:
return [
'config-plugin-options' => [
'source-directory' => 'config',
],
'config-plugin' => [
'params' => [
'params.php',
'?params-local.php',
],
'web' => 'web.php',
],
'config-plugin-environments' => [
'dev' => [
'params' => 'dev/params.php',
'app' => [
'$web',
'dev/app.php',
],
],
'prod' => [
'app' => 'prod/app.php',
],
],
];
#yiisoftConfig #ПервыйРелиз #МажорныйРелиз #Релиз
🎁 Yii Config 1.0.0
Пакет обеспечивает сборку конфигурации для приложения из конфигураций, поставляемых вместе с зависимостями приложения, и конфигураций самого приложения.
При установке или изменении зависимостей приложения автоматически формируется план сборки конфигурации. Сама сборка происходит в процессе выполнения приложения, что значительно упрощает отладку и разработку.
Подробная информация об установке и использовании пакета представлена в readme.
У пакета, как обычно, высокие технические показатели качества:
- 100% покрытие тестами;
- 93,6% MSI;
- 99,1% уровень покрытия типами;
- Psalm уровень 1.
—————
Перед релизом было сделано несколько улучшений.
• Добавили опцию
• Улучшили описание в readme и конфигурации GitHub Actions, scrutinizer, psalm, StyleCI (PR).
🎁 Yii Config 1.0.0
Пакет обеспечивает сборку конфигурации для приложения из конфигураций, поставляемых вместе с зависимостями приложения, и конфигураций самого приложения.
При установке или изменении зависимостей приложения автоматически формируется план сборки конфигурации. Сама сборка происходит в процессе выполнения приложения, что значительно упрощает отладку и разработку.
Подробная информация об установке и использовании пакета представлена в readme.
У пакета, как обычно, высокие технические показатели качества:
- 100% покрытие тестами;
- 93,6% MSI;
- 99,1% уровень покрытия типами;
- Psalm уровень 1.
—————
Перед релизом было сделано несколько улучшений.
• Добавили опцию
vendor-override-layer
, позволяющая добавить слой конфигураций между приложением и вендором (PR).• Улучшили описание в readme и конфигурации GitHub Actions, scrutinizer, psalm, StyleCI (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