PHPackages                             besnovatyj/yii2-cms-config - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. besnovatyj/yii2-cms-config

ActiveYii2-extension[Utility &amp; Helpers](/categories/utility)

besnovatyj/yii2-cms-config
==========================

Модуль управления конфигурацией для Yii2 CMS

v1.0.0(4d ago)01MITPHP &gt;=8.4

Since Jul 7Compare

[ Source](https://github.com/besnovatyj/yii2-cms-config)[ Packagist](https://packagist.org/packages/besnovatyj/yii2-cms-config)[ RSS](/packages/besnovatyj-yii2-cms-config/feed)WikiDiscussions Synced today

READMEChangelogDependencies (5)Versions (2)Used By (0)

Config Module
=============

[](#config-module)

Модуль динамического управления конфигурацией приложения Yii2 с чистой архитектурой.

Возможности
-----------

[](#возможности)

- ✅ Динамическое изменение параметров приложения через UI
- ✅ Автоматический сбор настроек из всех модулей
- ✅ Гибкое хранилище (PHP файл или БД)
- ✅ Кэширование для производительности
- ✅ Валидация значений перед сохранением
- ✅ Dependency Injection через контейнер

Архитектура
-----------

[](#архитектура)

```
┌─────────────────────────────────────────────────┐
│              Bootstrap                          │
│  (Применяет конфигурацию при запуске)           │
└─────────────────┬───────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────┐
│           ConfigService                         │
│  (Оркестратор всей бизнес-логики)               │
└──────┬──────────┬──────────┬────────────────────┘
       │          │          │
       ▼          ▼          ▼
┌───────────┐ ┌──────────┐ ┌──────────────┐
│ Collector │ │Repository│ │   Applier    │
│(Сбор      │ │(Хранение)│ │(Применение)  │
│ опций)    │ │          │ │              │
└───────────┘ └────┬─────┘ └──────────────┘
                   │
                   ▼
            ┌────────────┐
            │  Storage   │
            │ (PHP/БД)   │
            └────────────┘

```

### Слои

[](#слои)

#### Entity Layer

[](#entity-layer)

- **ConfigItem** - иммутабельный value object для элемента конфигурации
- **ConfigValue** - ActiveRecord для хранения в БД

#### Storage Layer

[](#storage-layer)

- **StorageInterface** - интерфейс хранилища
- **PhpFileStorage** - хранение в PHP файле (по умолчанию)
- **DatabaseStorage** - хранение в базе данных

#### Repository Layer

[](#repository-layer)

- **ConfigRepository** - абстракция над хранилищем

#### Service Layer

[](#service-layer)

- **ConfigCollector** - собирает опции из `config/options.php` всех модулей
- **ConfigApplier** - применяет значения к приложению (без рекурсии!)
- **ConfigService** - главный сервис-оркестратор

#### Controller Layer

[](#controller-layer)

- **ConfigController** - тонкий контроллер с DI

Использование
-------------

[](#использование)

### Добавление настроек в модуль

[](#добавление-настроек-в-модуль)

Создайте файл `config/options.php` в вашем модуле:

```
