PHP code example of lav45 / yii2-settings
1. Go to this page and download the library: Download lav45/yii2-settings library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lav45 / yii2-settings example snippets
return [
'controllerMap' => [
'migrate' => [
'class' => yii\console\controllers\MigrateController::class,
'migrationPath' => [
'@app/migrations',
'@vendor/lav45/yii2-settings/migrations',
],
],
],
];
return [
'components' => [
'settings' => [
'class' => 'lav45\settings\Settings',
// You can add an arbitrary prefix to all keys
// 'keyPrefix' => 'key_',
// DbStorage use as default storage
// 'storage' => [
// 'class' => 'lav45\settings\storage\DbStorage',
// 'tableName' => '{{%settings}}',
// 'db' => 'db',
// ],
'as cache' => [
'class' => 'lav45\settings\behaviors\CacheBehavior',
// 'cache' => 'cache',
// 'cacheDuration' => 3600,
],
'as access' => [
'class' => 'lav45\settings\behaviors\QuickAccessBehavior',
],
'as context' => [
'class' => 'lav45\settings\behaviors\ContextBehavior',
],
],
/**
* FileStorage this is the adapter allows you to store your settings in a simple file
*/
'configFile' => [
'class' => 'lav45\settings\Settings',
// Be used for data serialization
'serializer' => ['serialize', 'unserialize'],
'storage' => [
'class' => 'lav45\settings\storage\FileStorage',
// it is desirable to determine the storage location
// of your configuration files in a convenient place
// 'path' => '@runtime/settings',
// 'dirMode' => 0755,
// 'fileSuffix' => '.bin',
],
],
/**
* PhpFileStorage this is an adapter to store data in php file
* the serializer can be disabled to increase performance
*/
'configPhpFile' => [
'class' => 'lav45\settings\Settings',
'serializer' => false,
'storage' => [
'class' => 'lav45\settings\storage\PhpFileStorage',
// 'path' => '@runtime/settings',
// 'fileSuffix' => '.php',
],
],
]
];
$settings = Yii::$app->settings;
// Get not exist key
$settings->get('key'); // => null
// Get default value if key exist
$settings->get('key', []); // => []
// Get default value from the callback function
$settings->get('enable', function () {
return true;
}); // => true
// Save and get data
$settings->set('array', ['data']); // => true
$settings->get('array'); // => [0 => 'data']
$settings->set('object', new User()); // => true
$settings->get('object'); // => User
$settings->set('float', 123.5); // => true
$settings->get('float'); // => 123.5
$settings->set('integer', 0); // => true
$settings->get('integer'); // => 0
$settings->set('bool', false); // => true
$settings->get('bool'); // => false
$settings->set('string', 'text'); // => true
$settings->get('string'); // => text
$settings->set('null', null); // => true
$settings->get('null'); // => null
// delete data by key
$settings->delete('array'); // => true
// Use as array
$settings['array'] = ['data'];
print_r($settings['array']); // => [0 => 'data']
isset($settings['array']) // => true
unset($settings['array']);
Yii::$app->settings->cache->flush(); // => true
// Getting data from multidimensional array
$data = [
'options' => [
'css' => ['bootstrap.css'],
'js' => ['jquery', 'bootstrap.js']
]
];
$settings = Yii::$app->settings;
// Save data
$settings->set('array', $data); // => true
// Get data by key
$settings->get('array.options.js'); // => ['jquery', 'bootstrap.js']
// Use as array
print_r($settings['array.options.js']); // => ['jquery', 'bootstrap.js']
print_r($settings['array']['options']['js']); // => ['jquery', 'bootstrap.js']
// Get not exist key
$settings->get('array.options.img'); // => null
// Get default value if key exist
$settings->get('array.options.imgs', []); // => []
// Replace value by path key
$settings->replace('array', 'options.js', ['jquery']);
$settings->replace('array', 'options.img', ['icon.jpg', 'icon.png']);
$settings->get('array.options.js'); // => ['jquery']
$settings->get('array');
/**
* [
* 'options' => [
* 'css' => ['bootstrap.css'],
* 'js' => ['jquery'], // rewrite
* 'img' => ['icon.jpg', 'icon.png'], // added
* ]
* ]
*/
$settings = Yii::$app->settings;
$settings->context('en-US')->set('key', ['data']); // => true
$settings->context('en-US')->get('key'); // => ['data']
$settings->context('ru-RU')->get('key'); // => null