This is my package settings

Maintainers

Package info

github.com/zahidhassanshaikot/settings

pkg:composer/zahidhassanshaikot/settings

Transparency log

Statistics

Installs: 222

Dependents: 0

Suggesters: 0

Stars: 7

Open Issues: 0

v2.1 2026-07-23 10:46 UTC

This package is auto-updated.

Last update: 2026-07-23 10:46:56 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads License GitHub issues GitHub forks GitHub stars GitHub watchers GitHub contributors GitHub Sponsors GitHub last commit GitHub pull requests GitHub closed pull requests GitHub language count GitHub top language GitHub repo size GitHub code size in bytes GitHub repo file count

This package allows you to store settings in a database. The settings are cached to prevent queries to the database. If you update a setting it will be stored in the database and the cache will be flushed. This package is for managing most basic settings in your laravel application like site title, site logo etc. You can add your custom settings using this package.

Support us

If you find this project helpful or appreciate my work, please consider buying me a coffee! ☕️

Buy Me a Coffee

Installation

You can install the package via composer:

composer require zahidhassanshaikot/settings

You can publish and run the migrations with:

php artisan vendor:publish --tag="settings-migrations"
php artisan migrate

You can publish the config file with:

php artisan vendor:publish --tag="settings-config"

This is the contents of the published config file:

return [
    'cache' => [
        'enabled' => true,
    ],
];

Usage

Facade

You can use the facade for shorter code. Add the following to your facades:

use zahidhassanshaikot\Settings\Facades\Settings;

Settings::all();
Settings::updateOrCreate('site_name', 'laravel-settings');
Settings::updateOrCreateMultiple(['site_name' => 'laravel-settings', 'timezone' => 'UTC']);
Settings::get('site_name');
Settings::get('missing_key', 'a default value');
Settings::delete('site_name');

Helper function

A global settings() helper is also available as shorthand for the facade:

settings('site_name');
settings('missing_key', 'a default value');
settings(); // same as Settings::all()

Typed values

Values are no longer limited to strings. Booleans, integers, arrays, and other JSON-serializable values are stored and returned as their original type:

Settings::updateOrCreate('maintenance_mode', true);
Settings::updateOrCreate('max_attempts', 5);
Settings::updateOrCreate('allowed_ips', ['127.0.0.1', '10.0.0.1']);

Settings::get('maintenance_mode'); // true
Settings::get('max_attempts');     // 5
Settings::get('allowed_ips');      // ['127.0.0.1', '10.0.0.1']

Existing plain-string values written before this feature was added continue to work unchanged.

Artisan commands

php artisan settings:list
php artisan settings:set {key} {value}
php artisan settings:forget {key}

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.