PHPackages                             kamalsroor/laravel-settings - 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. kamalsroor/laravel-settings

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

kamalsroor/laravel-settings
===========================

Persistent key-value storage for Laravel

v1.5.0(4y ago)0105MITPHP

Since Apr 5Pushed 4y agoCompare

[ Source](https://github.com/Kamalsroor/laravel-settings)[ Packagist](https://packagist.org/packages/kamalsroor/laravel-settings)[ RSS](/packages/kamalsroor-laravel-settings/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (4)Versions (12)Used By (0)

 [![StyleCI](https://camo.githubusercontent.com/5a264c3a51de29bb6afd51ade13508b682d8788fff90017bce41e261c75a9b9e/68747470733a2f2f6769746875622e7374796c6563692e696f2f7265706f732f3137393430373031362f736869656c643f7374796c653d666c6174)](https://github.styleci.io/repos/179407016) [![Travis Build Status](https://camo.githubusercontent.com/1300b7f21242fd65dee7534b17b247413cf4fcf86529085587795ef68b3a869b/68747470733a2f2f7472617669732d63692e6f72672f6c617261656173742f6c61726176656c2d73657474696e67732e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/laraeast/laravel-settings) [![Circleci Build Status](https://camo.githubusercontent.com/628cca031d7dbe4b92099d4ff6c4a324baad3957c707802dc91266e4f752e9ca/68747470733a2f2f636972636c6563692e636f6d2f67682f6c617261656173742f6c61726176656c2d73657474696e67732e706e673f7374796c653d736869656c64)](https://circleci.com/gh/laraeast/laravel-settings) [![Total Downloads](https://camo.githubusercontent.com/6d2889e26f8824e3c2fdad5e41408fdb86eb9d927593fbbfb152c566ae6227ed/68747470733a2f2f706f7365722e707567782e6f72672f6c617261656173742f6c61726176656c2d73657474696e67732f642f746f74616c2e737667)](https://packagist.org/packages/laraeast/laravel-settings) [![Latest Stable Version](https://camo.githubusercontent.com/b691fb2e8963b3c083d3517ec2248a8950296fc493c45c8aa6958d50f3938564/68747470733a2f2f706f7365722e707567782e6f72672f6c617261656173742f6c61726176656c2d73657474696e67732f762f737461626c652e737667)](https://packagist.org/packages/laraeast/laravel-settings) [![License](https://camo.githubusercontent.com/97ec1e2b56bf3041d566ecff9d793f7d513b7b7d32d956a6bd348f047012336e/68747470733a2f2f706f7365722e707567782e6f72672f6c617261656173742f6c61726176656c2d73657474696e67732f6c6963656e73652e737667)](https://packagist.org/packages/laraeast/laravel-settings)

Persistent Settings Manager for Laravel
=======================================

[](#persistent-settings-manager-for-laravel)

- Simple key-value storage
- Localization supported.
- Localization using [Astrotomic/laravel-translatable](https://github.com/Astrotomic/laravel-translatable) Structure

Installation
------------

[](#installation)

1. Install package

    ```
    composer require laraeast/laravel-settings
    ```
2. Edit config/app.php (Skip this step if you are using laravel 5.5+)

    service provider:

    ```
    KamalSroor\LaravelSettings\Providers\SettingsServiceProvider::class,
    ```

    class aliases:

    ```
    'Settings' => KamalSroor\LaravelSettings\Facades\Settings::class,
    ```
3. Create settings table for `database` driver

    ```
    php artisan settings:table
    php artisan migrate
    ```

Usage
-----

[](#usage)

```
Settings::get('name', 'Computer');
// get setting value with key 'name'
// return 'Computer' if the key does not exists

Settings::locale('en')->get('name', 'Computer');
// get setting value with key and language

Settings::get('name:en', 'Computer');
// get setting value with key and language

Settings::set('name', 'Computer');
// set setting value by key

Settings::locale('en')->set('name', 'Computer');
// set setting value by key and language

Settings::set('name:en', 'Computer');
// set setting value by key and language

Settings::has('name');
// check the key exists, return boolean

Settings::locale('en')->has('name');
// check the key exists by language, return boolean

Settings::has('name:en');
// check the key exists by language, return boolean

Settings::delete('name');
// delete the setting by key

Settings::locale('en')->delete('name');
// delete the setting by key and language

Settings::delete('name:en');
// delete the setting by key and language
```

Dealing with array
------------------

[](#dealing-with-array)

```
Settings::get('item');
// return null;

Settings::set('item', ['USB' => '8G', 'RAM' => '4G']);
Settings::get('item');
// return array(
//     'USB' => '8G',
//     'RAM' => '4G',
// );
```

### Usage

[](#usage-1)

```
Settings::locale('en')->set('title', 'Example Website');

Settings::locale('en')->get('title');
// return return 'Example Website';

Settings::set('title:ar', 'عنوان الموقع');

Settings::locale('ar')->get('title');
// return return 'عنوان الموقع';

Settings::locale('ar')->has('title') // bool
Settings::locale('ar')->delete('title')

App::setLocale('en');

Settings::locale()->get('title');
// return return 'Example Website';
```

### Extend Driver

[](#extend-driver)

> You can extend your custom driver by adding this code in `register()` method of your `AppServiceProvier`

###### EX :

[](#ex-)

```
$this->app['settings.manager']->extend('file', function () {
	return new SettingsFileDriverHandler();
});
```

> Note : your custom driver `SettingsFileDriverHandler` should implements `KamalSroor\LaravelSettings\Contracts\SettingsStore` contract

```
