kolirt / laravel-settings
Package for settings
Fund package maintenance!
www.buymeacoffee.com/kolirt
Requires
- php: >=8.1
- laravel/framework: >=10.0
README
Package for managing settings in a Laravel projects
Structure
Getting started
Requirements
- PHP >= 8.1
- Laravel >= 10
For lesser versions of Laravel or PHP, use the v1
Installation
composer require kolirt/laravel-settings
Setup
php artisan settings:install php artisan migrate
Compatibility with Laravel Octane
To ensure proper operation with Laravel Octane (RoadRunner or Swoole) and state synchronization across workers:
- Use a shared cache store (e.g., 'redis') in
config/cache.php
or viaCACHE_STORE=redis
in.env
. - Add
\Kolirt\Settings\Core\Setting::class
to the warm array inconfig/octane.php
to initialize the singleton at worker startup:'warm' => [ \Kolirt\Settings\Core\Setting::class, ],
- Add
\Kolirt\Settings\Octane\FlushSettings::class
to thelisteners[OperationTerminated::class]
array inconfig/octane.php
to reset internal state after each request:'listeners' => [ OperationTerminated::class => [ \Kolirt\Settings\Octane\FlushSettings::class, ] ],
- Restart Octane after changes:
php artisan octane:reload
.
This ensures settings are reloaded from the shared cache or database for each request, keeping workers synchronized.
Console commands
settings:install
- Install settings packagesettings:publish-config
- Publish the config filesettings:publish-migrations
- Publish migration filessettings:flush-cache
- Flush cache
Methods
set
The set
method is used to set a value in the settings
use Kolirt\Settings\Facades\Setting; Setting::set('string', 'value'); Setting::set('array', [0, 1, 2]); Setting::set('array.0', 'new value with index 0');
all
The all
method is used to get all settings
use Kolirt\Settings\Facades\Setting; Setting::all(); /** * Returns * * [ * 'string' => 'value', * 'array' => ['new value with index 0', 1, 2] * ] */
get
The get
method is used to get a value from the settings
use Kolirt\Settings\Facades\Setting; Setting::get('string'); // 'value' Setting::get('array'); // ['new value with index 0', 1, 2] Setting::get('array.0'); // 'new value with index 0' // or via helper setting('string'); // 'value' setting('array'); // ['new value with index 0', 1, 2] setting('array.0'); // 'new value with index 0'
delete
The delete
method is used to delete a value from the settings
use Kolirt\Settings\Facades\Setting; Setting::delete('string'); Setting::delete('array'); // delete all array values Setting::delete('array.0'); // delete array value with index 0
flushCache
The flushCache
method is used to flush the cache
use Kolirt\Settings\Facades\Setting; Setting::flushCache();
FAQ
Check closed issues to get answers for most asked questions
License
Other packages
Check out my other packages on my GitHub profile