
We changed the version of SkeekS CMS to the 5th. Because much rewrote the internal architecture. And the versions of dependencies of various modules were fixed more strictly.
Moving to version 5 will require intervention in the project code. It is not enough to start updating dependencies through composer.
Now everything in the project and its components is configured through the composer settings!
Мы сменили версию 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
- /
- 3794
Popular
Release SkeekS CMS 5.6.5. What's new in CMS in 2020?
- Apr 29, 2020
SkeekS CMS 5.5.11 release works with yii2 2.0.24
- Aug 13, 2019
How to send a form to yii2 and skeeks cms via ajax?
- Apr 18, 2019
All Comments (0)