PHPackages                             alhimik1986/yii2\_settings\_module - 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. alhimik1986/yii2\_settings\_module

ActiveModule[Utility &amp; Helpers](/categories/utility)

alhimik1986/yii2\_settings\_module
==================================

Module, allowing get and set your settings, and having access throw the web page.

1.0(9y ago)2693MITJavaScriptPHP &gt;=5.4.0

Since Sep 24Pushed 9y ago4 watchersCompare

[ Source](https://github.com/alhimik1986/yii2-settings-module)[ Packagist](https://packagist.org/packages/alhimik1986/yii2_settings_module)[ Docs](https://github.com/alhimik1986/)[ RSS](/packages/alhimik1986-yii2-settings-module/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependenciesVersions (2)Used By (0)

yii2 settings module
====================

[](#yii2-settings-module)

Модуль для хранения и получения системных настроек приложения. Является аналогом Yii::$app-&gt;params, только его можно править через веб-интерфейс.

Для чего нужен:
---------------

[](#для-чего-нужен)

В системных настройках можно хранить параметры подключения к базе данных и менять их через веб-интерфейс. Это удобно. Особенно это бывает необходимо, если код обфусцирован и в нем нельзя задавать настройки. Конечно, можно вынести настройки в отдельный файл, но пользователям вряд ли понравится искать этот файл в дебрях папок и что-то править, согласно дурацким правилам json-, xml-, yaml- или ini-формата. Куда интереснее это будет править настройки через красивый веб-интерфейс. Демонстрация
------------

[](#демонстрация)

\[!\[Демонстрация\]([http://img.youtube.com/vi/GDnTz0CJKHk/0.jpg)\](http://www.youtube.com/watch?v=GDnTz0CJKHk](http://img.youtube.com/vi/GDnTz0CJKHk/0.jpg)](http://www.youtube.com/watch?v=GDnTz0CJKHk)) УСТАНОВКА:
----------

[](#установка)

Скачивается с помощью composer. В папке приложения в файле composer.json дописать строчку:

```
    "require": {
		"alhimik1986/yii2_settings_module": "1.0"
    },

```

или в командой строке ввести:

```
$ composer require alhimik1986/yii2_settings_module

```

В файле config/web.php прописать настройки:

```
$config = [
    'components' => [
		...........
		'settings' => ['class' => 'alhimik1986\yii2_settings_module\components\Settings'], // Для доступа к настройкам
    ],

	// Для доступа на странцу редактирования настроек
	'modules' => [
		...........
		'settings' => [
			'class' => 'alhimik1986\yii2_settings_module\Module',
			// Необязательные параметры
			'password' => '123', // Пароль для в входа на страницу редактирования настроек. По умолчанию 123, если указать пустой, то вход без авторизации
			'password_in_settings' => false, // Если указать true, то брать и проверять пароль в настройках (settings.json), а не в web.config-файле.
			'allowedIPs' => ['127.0.0.1', '::1'], // Доступ по IP-адресам
			//'l18n_base_path' => realpath(__DIR__ .'/../messages/alhimik1986/yii2_settings_module'); // Папка, в которой содержатся переводы на другие языки
		],
	],
];

```

// Или так:

```
$config['components']['settings']['class'] = 'alhimik1986\yii2_settings_module\components\Settings'; // Для доступа к настройкам
$config['modules']['settings']['class']    = 'alhimik1986\yii2_settings_module\Module';              // Для доступа на странцу редактирования настроек

```

Адрес для входа в настройки:
----------------------------

[](#адрес-для-входа-в-настройки)

http://localhost/index.php?r=settings
Пароль: 123 Все эти настройки, находится в файле vendor/alhimik1986/yii2\_settings\_module/settings/settings.json

Пример доступа к настройкам:
----------------------------

[](#пример-доступа-к-настройкам)

``` $db = Yii::$app-&gt;settings-&gt;param\['db'\]; // Здесь хранятся кэшированные данные $db = Yii::$app-&gt;settings-&gt;get('db'); // То же самое, тольк данные не кэшируются, но быстродействие от этого практически не пострадает Yii::$app-&gt;settings-&gt;set('password', '1234243'); // Меняем значение настройки "password" ``` В переменной $db ключи value, label, description исключены, так как они не нужны. Берется только name (ключ настройки) и значение value (значенние настройки). Т.е., если в settings.json было: ``` { "db": { "value": { "connectionString": "sqlite:@app\\/data\\/database.s3db", "username": "", "password": "", "tablePrefix": "", "class": "yii\\\\db\\\\Connection" }, "label": "Настройки подключения к базе данных.", "description": "" }, } ``` То $db будет равен: ``` \[ 'connectionString' =&gt; 'sqlite:@app/data/database.s3db', 'username' =&gt; '', 'password' =&gt; '', 'tablePrefix' =&gt; '', 'class' =&gt; 'yii\\db\\Connection', \] ``` Пример использования этого модуля в файле web.php для установки параметров подключения к базе данных:
-----------------------------------------------------------------------------------------------------

[](#пример-использования-этого-модуля-в-файле-webphp-для-установки-параметров-подключения-к-базе-данных)

``` require\_once(realpath(\_\_DIR\_\_.'/../vendor/alhimik1986/yii2\_settings\_module/models/SettingsModel.php')); $config\['components'\]\['db'\] = alhimik1986\\yii2\_settings\_module\\models\\SettingsModel::getSetting('db'); ``` Подписи параметров настроек
---------------------------

[](#подписи-параметров-настроек)

Подписи параметров настроек находятся в папке модуля модуля в файле messages/\[language\]/settings\_messages.php Править переводы в папке vendor не совсем правильно. Поэтому лучше в настройках прописать путь к папке переводов, например, в \[папка\_приложения\]/messages/alhimik1986/yii2\_settings\_module. B скопировать туда содержимое папки messages нашего модуля. ``` $config\['modules'\]\['settings'\]\['l18n\_base\_path'\] = realpath(\_\_DIR\_\_ .'/../messages/alhimik1986/yii2\_settings\_module'); ``` То же самое касается и файла settings.json. Его расположение также можно задать в настройках: ``` $settings\_path = realpath(\_\_DIR\_\_ .'/../config').'/settings.json'; require\_once(realpath(\_\_DIR\_\_.'/../vendor/alhimik1986/yii2\_settings\_module/models/SettingsModel.php')); alhimik1986\\yii2\_settings\_module\\models\\SettingsModel::set\_custom\_settings\_json\_file\_path($settings\_path); $config\['components'\]\['db'\] = alhimik1986\\yii2\_settings\_module\\models\\SettingsModel::getSetting('db'); ``` Суммарно типичные настройки выглядят вот так:
---------------------------------------------

[](#суммарно-типичные-настройки-выглядят-вот-так)

``` // Модуль настроек $config\['modules'\]\['settings'\]\['class'\] = 'alhimik1986\\yii2\_settings\_module\\Module'; //$config\['modules'\]\['settings'\]\['password'\] = '123'; // Пароль для в входа на страницу редактирования настроек. По умолчанию 123, если указать пустой, то вход без авторизации $config\['modules'\]\['settings'\]\['password\_in\_settings'\] = true; // Если указать true, то брать и проверять пароль в настройках (settings.json), а не в web.config-файле. $config\['modules'\]\['settings'\]\['allowedIPs'\] = \['127.0.0.1', '::1'\]; // Доступ по IP-адресам //$config\['modules'\]\['settings'\]\['l18n\_base\_path' = realpath(\_\_DIR\_\_ .'/../messages/alhimik1986/yii2\_settings\_module'); // Папка, в которой содержатся переводы на другие языки $config\['modules'\]\['settings'\]\['settings\_json\_file'\] = realpath(\_\_DIR\_\_ .'/../config').'/settings.json'; // Для доступа к настройкам $config\['components'\]\['settings'\]\['class'\] = 'alhimik1986\\yii2\_settings\_module\\components\\Settings';

// Подключение к базе данных через настройки $settings\_path = realpath(**DIR** .'/../config').'/settings.json'; require\_once(realpath(**DIR**.'/../vendor/alhimik1986/yii2\_settings\_module/models/SettingsModel.php')); alhimik1986\\yii2\_settings\_module\\models\\SettingsModel::set\_custom\_settings\_json\_file\_path($settings\_path); $config\['components'\]\['db'\] = alhimik1986\\yii2\_settings\_module\\models\\SettingsModel::getSetting('db');

```

```

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3566d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f0bdbe7c1285ef99a818b17036da98d18b346c362e4045bf910b0a79211a3fc3?d=identicon)[alhimik19861](/maintainers/alhimik19861)

---

Top Contributors

[![alhimik1986](https://avatars.githubusercontent.com/u/7689682?v=4)](https://github.com/alhimik1986 "alhimik1986 (39 commits)")

---

Tags

Settingsyii2module

### Embed Badge

![Health badge](/badges/alhimik1986-yii2-settings-module/health.svg)

```
[![Health](https://phpackages.com/badges/alhimik1986-yii2-settings-module/health.svg)](https://phpackages.com/packages/alhimik1986-yii2-settings-module)
```

###  Alternatives

[akiraz2/yii2-ticket-support

Yii2 Support Ticket Module, easy, flexible, fast

601.7k](/packages/akiraz2-yii2-ticket-support)[hiqdev/yii2-language

Yii2 module for language switching

1026.3k1](/packages/hiqdev-yii2-language)[vova07/yii2-start-comments-module

The comments module for Yii2-Start application.

149.5k1](/packages/vova07-yii2-start-comments-module)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
