PHPackages                             katalis-kreasi/laravel-user-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. katalis-kreasi/laravel-user-settings

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

katalis-kreasi/laravel-user-settings
====================================

Simple user settings facade for Laravel 5.

1.2.1(12mo ago)017MITPHPPHP ^8.2

Since Apr 28Pushed 12mo agoCompare

[ Source](https://github.com/Zainal21/laravel-user-settings)[ Packagist](https://packagist.org/packages/katalis-kreasi/laravel-user-settings)[ Docs](https://github.com/Zainal21/laravel-user-settings)[ RSS](/packages/katalis-kreasi-laravel-user-settings/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (3)Versions (5)Used By (0)

laravel-user-settings
=====================

[](#laravel-user-settings)

Simple user settings facade for Laravel 5. Settings are stored as JSON in a single database column, so you can easily add it to an existing table (`users` for example).

**Still using Laravel 4?** Make sure to use [version 1.x](https://github.com/Grimthorr/laravel-user-settings/tree/laravel4) instead (`composer require grimthorr/laravel-user-settings ~1.0`).

> **Warning**
>
> **This repository has been archived.** It is no longer maintained and can be considered abandoned. While it may work with later versions of Laravel, you should exercise caution while using it to avoid introducing any unexpected security risks.

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

[](#installation)

1. Run `composer require grimthorr/laravel-user-settings` to include this in your project.
2. Add `'KatalisKreasi\LaravelUserSettings\ServiceProvider'` to `providers` in `config/app.php`.

```
'providers' => array(
  // ...
  'KatalisKreasi\LaravelUserSettings\ServiceProvider',
),
```

3. Add `'Setting' => 'KatalisKreasi\LaravelUserSettings\Facade'` to `aliases` in `config/app.php`.

```
'aliases' => array(
  // ...
  'Setting' => 'KatalisKreasi\LaravelUserSettings\Facade',
),
```

4. Run `php artisan vendor:publish --provider="KatalisKreasi\LaravelUserSettings\ServiceProvider" --tag="config"` to publish the config file.
5. Modify the published configuration file located at `config/laravel-user-settings.php` to your liking.
6. Create a varchar (string) column in a table on your database to match the config file in step 5. Alternatively, use the Laravel migration included in this package to automatically create a `settings` column in the `users` table: `php artisan vendor:publish --provider="KatalisKreasi\LaravelUserSettings\ServiceProvider" --tag="migrations" && php artisan migrate`.

Configuration
-------------

[](#configuration)

Pop open `config/laravel-user-settings.php` to adjust package configuration. If this file doesn't exist, run `php artisan vendor:publish --provider="KatalisKreasi\LaravelUserSettings\ServiceProvider" --tag="config"` to create the default configuration file.

```
return array(
  'table' => 'users',
  'column' => 'settings',
  'constraint_key' => 'id',
  'default_constraint_value' => null,
  'custom_constraint' => null,
);
```

#### Table

[](#table)

Specify the table on your database that you want to use.

#### Column

[](#column)

Specify the column in the above table that you want to store the settings JSON data in.

#### Constraint key

[](#constraint-key)

Specify the index column used for the constraint - this is used to differentiate between different users, objects or models (normally id).

#### Default constraint value

[](#default-constraint-value)

Specify the default constraint value - by default this will be the current user's ID, and will be superseded by specifying a `$constraint_value` on any function call.

#### Custom constraint

[](#custom-constraint)

Specify a where clause for each query - set this if you **do not** want to access different rows (for example if your app is single-user only).

Usage
-----

[](#usage)

Use the Setting facade (`Setting::`) or the helper function (`setting()->`) to access the methods in this package. The `$constraint_value` parameter is optional on all functions; if this is not passed, the `default_constraint_value` from the config file will be used.

#### Set

[](#set)

```
Setting::set('key', 'value', $constraint_value);
setting()->set('key', 'value', $constraint_value);
```

Use `set` to change the value of a setting. If the setting does not exist, it will be created automatically. You can set multiple keys at once by passing an associative (key=&gt;value) array to the first parameter.

#### Get

[](#get)

```
Setting::get('key', 'default', $constraint_value);
setting()->get('key', 'default', $constraint_value);
setting('key', 'default', $constraint_value);
```

Use `get` to retrieve the value of a setting. The second parameter is optional and can be used to specify a default value if the setting does not exist (the default default value is `null`).

#### Forget

[](#forget)

```
Setting::forget('key', $constraint_value);
setting()->forget('key', $constraint_value);
```

Unset or delete a setting by calling `forget`.

#### Has

[](#has)

```
Setting::has('key', $constraint_value);
setting()->has('key', $constraint_value);
```

Check for the existence of a setting, returned as a boolean.

#### All

[](#all)

```
Setting::all($constraint_value);
setting()->all($constraint_value);
```

Retrieve all settings as an associative array (key=&gt;value).

#### Save

[](#save)

```
Setting::save($constraint_value);
setting()->save($constraint_value);
```

Save all changes back to the database. This will need to be called after making changes; it is not automatic.

#### Load

[](#load)

```
Setting::load($constraint_value);
setting()->load($constraint_value);
```

Reload settings from the database. This is called automatically if settings have not been loaded before being accessed or mutated.

Example
-------

[](#example)

These examples are using the default configuration.

#### Using the default constraint value

[](#using-the-default-constraint-value)

The following sets and returns the currently logged in user's setting "example".

```
// Set 'example' setting to 'hello world'
Setting::set('example', 'hello world');

// Save to database
Setting::save();

// Get the same setting
return Setting::get('example');
```

#### Specify a constraint value

[](#specify-a-constraint-value)

The following sets and returns the setting "example" for the user with id of 23.

```
// Set 'example' setting to 'hello world'
Setting::set('example', 'hello world', 23);

// Save to database
Setting::save(23);

// Get the same setting
return Setting::get('example', null, 23);
```

Finally
-------

[](#finally)

#### Contributing

[](#contributing)

Feel free to create a fork and submit a pull request if you would like to contribute.

#### Bug reports

[](#bug-reports)

Raise an issue on GitHub if you notice something broken.

#### Credits

[](#credits)

Based loosely on .

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance50

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 79.6% 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

Every ~5 days

Total

4

Last Release

364d ago

### Community

Maintainers

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

---

Top Contributors

[![Grimthorr](https://avatars.githubusercontent.com/u/5190473?v=4)](https://github.com/Grimthorr "Grimthorr (43 commits)")[![Zainal21](https://avatars.githubusercontent.com/u/48118434?v=4)](https://github.com/Zainal21 "Zainal21 (8 commits)")[![johannesschobel](https://avatars.githubusercontent.com/u/9431350?v=4)](https://github.com/johannesschobel "johannesschobel (2 commits)")[![balping](https://avatars.githubusercontent.com/u/5840038?v=4)](https://github.com/balping "balping (1 commits)")

### Embed Badge

![Health badge](/badges/katalis-kreasi-laravel-user-settings/health.svg)

```
[![Health](https://phpackages.com/badges/katalis-kreasi-laravel-user-settings/health.svg)](https://phpackages.com/packages/katalis-kreasi-laravel-user-settings)
```

###  Alternatives

[barryvdh/laravel-ide-helper

Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.

14.9k123.0M687](/packages/barryvdh-laravel-ide-helper)[psalm/plugin-laravel

Psalm plugin for Laravel

3274.9M308](/packages/psalm-plugin-laravel)[orchestra/canvas

Code Generators for Laravel Applications and Packages

21017.2M158](/packages/orchestra-canvas)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)[kirschbaum-development/commentions

A package to allow you to create comments, tag users and more

12369.2k](/packages/kirschbaum-development-commentions)

PHPackages © 2026

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