New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

konekt/gears

Settings and User Preferences library for Laravel
80,519 6
Install
composer require konekt/gears
Latest Version:1.15.0
PHP:^8.3
Laravel:11 · 12 · 13
Older releases:5 – 10
License:MIT
Last Updated:Apr 17, 2026
Links: GitHub  ·  Packagist
Maintainer: konekt

Settings & Preferences In Laravel Applications

Tests Packagist Stable Version StyleCI Packagist downloads MIT Software License

This Laravel package allows you to manage and save/retrieve settings and preferences in your Laravel application.

  • Settings are user defined values that apply to the application.
  • Preferences are user defined values that apply to a specific user.

Settings and preferences are being managed separately. Values (by default) are being saved to the database (settings and preferences tables) and are cached with the configured cache for your application.

The backend for storing the settings can be completely replaced, so it is possible to store them in anywhere else like MongoDB, ElasticSearch, Firebase, DynamoDB, S3, etc.

Laravel Compatibility

Laravel Gears
5.4 0.9 - 1.1
5.5 0.9 - 1.2
5.6 0.9 - 1.2
5.7 1.1 - 1.2
5.8 1.2 - 1.5
6.x 1.2 - 1.8
7.x 1.3 - 1.8
8.x 1.5 - 1.10
9.x 1.8 - 1.12
10.x 1.11+
11.x 1.13+
12.x 1.14+

Installation

Minimum requirements (as of v1.13) are PHP 8.1 and Laravel 10.0

Install with composer:

composer require konekt/gears

The service provider and the aliases (facades) get registered automatically.

Usage

Settings are identified by a key (string) and need to be registered in order to be used.

Register Settings
/** @var \Konekt\Gears\Registry\SettingsRegistry $settingsRegistry */
$settingsRegistry = app('gears.settings_registry');

$settingsRegistry->addByKey('mailchimp.api_key');
Saving And Retrieving Settings
use Konekt\Gears\Facades\Settings;

// using the facade:
Settings::set('mailchimp.api_key', '123456789abcdef');
echo Settings::get('mailchimp.api_key');
// '123456789abcdef'

// using the service from the container:
$settings = app('gears.settings');
$settings->set('mailchimp.api_key', 'fbcdef');
echo $settings->get('mailgun.api_key');
// fbcdef

To run the entire CI job suite locally: act -P ubuntu-latest=shivammathur/node:latest

There are many more options and possibilities detailed in the Documentation.

Related Packages

geniusts/preferences

Very easy way to generate a preferences page for applications that have multiple...

5,378 2
konekt/enum-eloquent

Enum attribute casting for Eloquent models

2,553,824 63
konekt/laravel-migration-compatibility

Library to help migrations to figure out whether a related field is int or bigIn...

351,590 0
hosmelq/laravel-model-preferences

Per-model preferences for Laravel with defaults and validation.

9,023 1

Version History

Version Released PHP Laravel License
1.15.0 ^8.3 ^11.46.2|^12.50|^13.0 MIT
1.14.0 ^8.1 ^10.0|^11.0|^12.0 MIT
1.13.0 ^8.0 ^10.0|^11.0 MIT
1.12.1 ^8.0 ^9.0|^10.0 MIT
1.12.0 ^8.0 ^9.0|^10.0 MIT
Pre-releases (2)
Version Released PHP Laravel License
1.0.0-rc.2 >=7.0.0 ~5.4 MIT
1.0.0-rc.1 >=7.0.0 ~5.4 MIT