Мы сменили версию 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

 

All Comments (0)
No Comments