
Мы сменили версию SkeekS CMS на 5-ю. Поскольку сильно переписали внутреннюю архитектуру. И более жестко зафиксировали версии зависимостей различных модулей.
Переход на 5-ю версию потребует вмешательство в код проектов. Не достаточно запустить обновление зависимостей через composer.
Теперь все в проекте и его компонентах конфигурируется через настройки composer!
Мы сменили версию SkeekS CMS на 5-ю. Поскольку сильно переписали внутреннюю архитектуру. И более жестко зафиксировали версии зависимостей различных модулей.
Переход на 5-ю версию потребует вмешательство в код проектов. Не достаточно запустить обновление зависимостей через composer.
Теперь все в проекте и его компонентах конфигурируется через настройки composer!
Пример конфигурации проекта:
"extra": {
...
"config-plugin": {
"web": [
"common/config/main.php",
"common/config/db.php",
"frontend/config/main.php"
],
"web-dev": [
"$web",
"?frontend/config/env/dev/main.php"
],
"web-prod": [
"$web",
"?frontend/config/env/prod/main.php"
],
"console": [
"common/config/main.php",
"common/config/db.php",
"console/config/main.php"
],
"console-dev": [
"$console",
"?console/config/env/dev/main.php"
],
"console-prod": [
"$console",
"?console/config/env/prod/main.php"
]
}
},
Компиляция конфигов происходит в моменты после обновления, установки, проектов, или через команду:
COMPOSER_HOME=.composer php composer.phar du
А вот так можно посмотреть все дерево компононетов и их настроек:
COMPOSER_HOME=.composer php composer.phar -v
Получить результирующие настройки:
print_r(\skeeks\cms\composer\config\Builder::path('web'));
Или например вот так, может выглядеть index.php настройки беруться согласно настройкам окружения YII_ENV а путь их слияния очень наглядно описан в composer.json
<?php
define("APP_DIR", __DIR__);
define("ROOT_DIR", dirname(dirname(__DIR__)));
require(ROOT_DIR . '/vendor/skeeks/cms/bootstrap.php');
$configFile = \skeeks\cms\composer\config\Builder::path('web-' . YII_ENV);
if (!file_exists($configFile)) {
$configFile = \skeeks\cms\composer\config\Builder::path('web');
}
$config = (array) require $configFile;
$application = new yii\web\Application($config);
$application->run();
При этом любой из модулей, может добавить свои настройки в общий config проекта в любую из секций. И это всегд наглядно!
Вот например дополнительное решение https://github.com/skeeks-cms/cms-agent/blob/master/composer.json:
"extra": {
"config-plugin": {
"console": "src/config/main-console.php",
"web": "src/config/main.php"
}
Сразу становится понятно, что этот компонент принесен в общий проект после установки конфигуркции в 2 секции web и console.
Базовые сборки:
Еще одним важным нововведением являются базовые сборки проектов. Теперь мы поддерживаем базовые сборки для простого проекта и магазина:
https://github.com/skeeks-cms/cms-basic/blob/master/composer.json
https://github.com/skeeks-cms/cms-basic-shop/blob/master/composer.json
Ознакомьтесь с секцией require и обратите внимание какие пакеты они приносят с собой
Инструкция по переходу с версии 4 на версию 5
-
Семенов Александр
- /
- Nov 12, 2017
- /
- 0
- /
- 6970
Popular
Релиз SkeekS CMS 5.5.11 работает с yii2 2.0.24
- Aug 13, 2019
Как отправить форму в yii2 и skeeks cms через ajax?
- Apr 18, 2019
All Comments (0)