sergey-lisitsyn / yii2-key-value-settings-storage
Storage in database for persist, retrieve and manage system settings for web application
Installs: 181
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: ~2.0.0
README
Storage in database for persist, retrieve and manage system settings for web application
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist sergey-lisitsyn/yii2-key-value-settings-storage "*"
or add
"sergey-lisitsyn/yii2-key-value-settings-storage": "*"
to the require section of your composer.json
file.
Add migration path to migrationNamespaces section in main config file.
...... 'controllerMap' => [ 'migrate' => [ 'class' => 'yii\console\controllers\MigrateController', 'migrationNamespaces' => [ ... 'sergeylisitsyn\settingsStorage\migrations', ], ], ] ......
Add to components:
...... 'components' => [ 'settingsStorage' => [ 'class' => 'sergeylisitsyn\settingsStorage\SystemSetting', 'storage' => 'sergeylisitsyn\settingsStorage\models\SettingStorage', 'formatters' => [ 'string' => 'sergeylisitsyn\settingsStorage\models\formatters\StringStorageFormatter', 'number' => 'sergeylisitsyn\settingsStorage\models\formatters\NumberStorageFormatter', 'bool' => 'sergeylisitsyn\settingsStorage\models\formatters\BooleanStorageFormatter', 'array' => 'sergeylisitsyn\settingsStorage\models\formatters\ArrayStorageFormatter' ], ], ] ......
And to bootstrap:
'bootstrap' => [
...
'settingsStorage'
],
To access the module, you need to add this to your application configuration:
...... 'modules' => [ 'settings-storage' => [ 'class' => 'sergeylisitsyn\settingsStorage\Module', ], ], ......
Usage
Once the extension is installed, simply use it in your code to create and persist property in storage :
$foo = Yii::$app->settingsStorage::create('foo', SystemSetting::TYPE_STRING, 'bar', 'xyz', 'test'); $foo->save(); // or just $saved = Yii::$app->settingsStorage->put('foo', SystemSetting::TYPE_STRING, 'bar', 'xyz', 'test');
Getting and setting value into storage :
$fooVal = Yii::$app->settingsStorage->getValue('foo'); echo($fooVal); // bar Yii::$app->settingsStorage->set('foo', 'baz'); $fooVal = Yii::$app->settingsStorage->getValue('foo'); echo($fooVal); // baz
Or just retrieve value by the name :
Yii::$app->settingsStorage->getValue('foo');
Or only set with name and value :
Yii::$app->settingsStorage->set('foo', 'baz');
Change setting type by name :
Yii::$app->settingsStorage->setType('foo', SystemSetting::TYPE_NUMBER); Yii::$app->settingsStorage->set('foo', 1000000);
or change all properties by the edit method :
$foo = Yii::$app->settingsStorage->get('foo'); $foo->edit('foo', SystemSetting::TYPE_STRING, 'baz', 'zyx', 'another description'); $foo->save(); // or just Yii::$app->settingsStorage->update('foo', SystemSetting::TYPE_STRING, 'baz', 'zyx', 'another description');
X11 License.