2017 © Pedro Peláez
 

yii2-extension yii2-settings

This extension helps you to easily store and retrieve data for your application.

image

lav45/yii2-settings

This extension helps you to easily store and retrieve data for your application.

  • Saturday, June 23, 2018
  • by LAV45
  • Repository
  • 3 Watchers
  • 14 Stars
  • 853 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 2 Forks
  • 1 Open issues
  • 9 Versions
  • 3 % Grown

The README.md

yii2-settings

Latest Stable Version License Total Downloads Build Status Code Coverage Scrutinizer Code Quality Code Climate, (*1)

This extension is very useful for storing any settings, for your application., (*2)

Installation

The preferred way to install this extension through composer., (*3)

You can set the console, (*4)

~$ composer require lav45/yii2-settings

or add, (*5)

"lav45/yii2-settings": "1.3.*"

in require section in composer.json file., (*6)

Migrate

Apply with the console command:, (*7)

~$ yii migrate/up --migrationPath=vendor/lav45/yii2-settings/migrations

or add it to your console config file ( console/config/main.php ), (*8)

return [
    'controllerMap' => [
        'migrate' => [
            'class' => yii\console\controllers\MigrateController::class,
            'migrationPath' => [
                '@app/migrations',
                '@vendor/lav45/yii2-settings/migrations',
            ],
        ],
    ],
];

Component Setup

To use the Setting Component, you need to configure the components array in your application configuration:, (*9)

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',
            ],
        ],
    ]
];

Using

Can default

$settings = Yii::$app->settings;

// Get not exist key
$settings->get('key'); // => null

// Get default value if key exist
$settings->get('key', []); // => []

// 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']);

CacheBehavior

The extension, which will help to speed up data loading by caching. If the data changes, the cache will be updated automatically., (*10)

To clean the cache, you can use this method, (*11)

Yii::$app->settings->cache->flush(); // => true

QuickAccessBehavior

This extension allows you to quickly obtain the necessary data from a multidimensional array, (*12)

// 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
 *     ]
 * ]
 */

ContextBehavior

This extension allows to retrieve data depending on the context. For example, depending on the selected language., (*13)

$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

Practical use: you can see in

License

yii2-settings it is available under a BSD 3-Clause License. Detailed information can be found in the LICENSE.md., (*14)

The Versions

23/06 2018

dev-master

9999999-dev https://github.com/lav45/yii2-settings

This extension helps you to easily store and retrieve data for your application.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexey Loban

settings extension config yii2 quick access

02/06 2018

1.2.1

1.2.1.0 https://github.com/lav45/yii2-settings

This extension helps you to easily store and retrieve data for your application.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexey Loban

settings extension config yii2 quick access

15/10 2017

1.2.0

1.2.0.0 https://github.com/lav45/yii2-settings

This extension helps you to easily store and retrieve data for your application.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexey Loban

settings extension yii2 quick access

22/06 2017

1.1.0

1.1.0.0 https://github.com/lav45/yii2-settings

This extension helps you to easily store and retrieve data for your application.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexey Loban

settings extension yii2 quick access

22/06 2017

1.0.4

1.0.4.0 https://github.com/lav45/yii2-settings

This extension helps you to easily store and retrieve data for your application.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexey Loban

settings extension yii2 quick access

11/04 2017

1.0.3

1.0.3.0 https://github.com/lav45/yii2-settings

This extension helps you to easily store and retrieve data for your application.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexey Loban

settings extension yii2 quick access

12/03 2017

1.0.2

1.0.2.0 https://github.com/lav45/yii2-settings

This extension helps you to easily store and retrieve data for your application.

  Sources   Download

BSD-3-Clause

The Requires

 

by Alexey Loban

settings extension yii2 quick access

26/02 2017

1.0.1

1.0.1.0 https://github.com/lav45/yii2-settings

This extension helps you to easily store and retrieve data for your application.

  Sources   Download

BSD-3-Clause

The Requires

 

by Alexey Loban

settings extension yii2 quick access

21/09 2016

1.0.0

1.0.0.0 https://github.com/lav45/yii2-settings

This extension helps you to easily store and retrieve data for your application.

  Sources   Download

BSD-3-Clause

The Requires

 

by Alexey Loban

settings extension yii2 quick access