centrex/laravel-settings

Manage settings in laravel


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Settings for Laravel allows you to store your application settings in the database. It works alongside of the built-in configuration system that Laravel offers. With this package, you can store application specific settings.

Contents

Installation

You can install the package via composer:

composer require centrex/laravel-settings

You can publish the config file with:

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

You can publish and run the migrations with:

php artisan migrate

Usage

To get and retrieve stored settings, you can do it easily with the Settings Facade or by using the settings() helper function:

// Set a setting
Settings::set('foo', 'bar');
settings()->set('foo', 'bar');
settings(['foo' => 'bar']);

// Get a setting
Settings::get('foo'); // 'bar'
settings()->get('foo');
settings('foo');

// Check existence
if (settings()->has('app.debug')) {
    // ...
}

// Remove a setting
settings()->forget('old.setting');

// Refresh cache
settings()->refreshCache();
// Check if setting exists (cached)
Setting::exists('app.timezone');

// Get autoloaded settings
Setting::autoload()->get();

// Get settings in a group
Setting::group('email')->get();

// Find settings with matching keys
Setting::keyLike('app.')->get();

// Remove a setting
Setting::remove('old.setting');

Helpers

// Get a setting with default value
$timezone = settings('app.timezone', 'UTC');

// Get using dedicated function
$debug = get_setting('app.debug', false);

// Set a setting
set_setting('app.maintenance_mode', true);

// Check existence
if (setting_exists('app.feature_flag')) {
    // ...
}

// Remove a setting
remove_setting('old.setting');

// Access Settings instance directly
settings()->refreshCache();

Testing

๐Ÿงน Keep a modern codebase with Pint:

composer lint

โœ… Run refactors using Rector

composer refacto

โš—๏ธ Run static analysis using PHPStan:

composer test:types

โœ… Run unit tests using PEST

composer test:unit

๐Ÿš€ Run the entire test suite:

composer test

Changelog

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

Contributing

Please see CONTRIBUTING for details.

Credits

License

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