Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
L

laravel-settings

> 编程语言
Open source

Persistent settings in Laravel

931 stars0 likes1 views
WebsiteGitHub

About

Persistent settings in Laravel

Laravel Settings

Persistent, application-wide settings for Laravel.

Despite the package name, this package should work with Laravel 4, 5, 6, 7 and 8 (though some versions are not automatically tested).

Common problems

  • Class not found errors: https://github.com/anlutro/laravel-settings/issues/38

Installation - Laravel >= 5.5

  1. composer require anlutro/l4-settings
  2. Publish the config file by running php artisan vendor:publish --provider="anlutro\LaravelSettings\ServiceProvider" --tag="config". The config file will give you control over which storage engine to use as well as some storage-specific settings.

Installation - Laravel 'anlutro\LaravelSettings\Facade'to the array of aliases inconfig/app.php`.

Usage

You can either access the setting store via its facade or inject it by type-hinting towards the abstract class anlutro\LaravelSettings\SettingStore.

Call Setting::save() explicitly to save changes made.

You could also use the setting() helper:

// Get the store instance
setting();

// Get values
setting('foo');
setting('foo.bar');
setting('foo', 'default value');
setting()->get('foo');

// Set values
setting(['foo' => 'bar']);
setting(['foo.bar' => 'baz']);
setting()->set('foo', 'bar');

// Method chaining
setting(['foo' => 'bar'])->save();

Auto-saving

In Laravel 4.x, the library makes sure to auto-save every time the application shuts down if anything has been changed.

In Laravel 5.x, if you add the middleware anlutro\LaravelSettings\SaveMiddleware to your middleware list in app\Http\Kernel.php, settings will be saved automatically at the end of all HTTP requests, but you'll still need to call Setting::save() explicitly in console commands, queue workers etc.

Store cache

When reading from the store, you can enable the cache.

You can also configure flushing of the cache when writing and configure time to live.

Reading will come from the store, and then from the cache, this can reduce load on the store.

// Cache usage configurations.
'enableCache' => false,
'forgetCacheByWrite' => true,
'cacheTtl' => 15,

JSON storage

You can modify the path used on run-time using Setting::setPath($path).

Database storage

Using Migration File

If you use the database store you need to run php artisan migrate --package=anlutro/l4-settings (Laravel 4.x) or php artisan vendor:publish --provider="anlutro\LaravelSettings\ServiceProvider" --tag="migrations" && php artisan migrate (Laravel 5.x) to generate the table.

Example

For example, if you want to store settings for multiple users/clients in the same database you can do so by specifying extra columns:

 Auth::user()->id
));
?>

where user_id = x will now be added to the database query when settings are retrieved, and when new settings are saved, the user_id will be populated.

If you need more fine-tuned control over which data gets queried, you can use the setConstraint method which takes a closure with two arguments:

  • $query is the query builder instance
  • $insert is a boolean telling you whether the query is an insert or not. If it is an insert, you usually don't need to do anything to $query.
where(/* ... */);
});
?>

Custom stores

This package uses the Laravel Manager class under the hood, so it's easy to add your own custom session store driver if you want to store in some other way. All you need to do is extend the abstract SettingStore class, implement the abstract methods and call Setting::extend.

make('MyStore');
});
?>

Contact

Open an issue on GitHub if you have any problems or suggestions.

License

The contents of this repository is released under the MIT license.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

PHP

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言