kolirt/laravel-settings

Package for settings

2.1.0 2025-08-15 17:15 UTC

This package is auto-updated.

Last update: 2025-08-15 17:15:47 UTC


README

Package for managing settings in a Laravel projects

Structure

Buy Me A Coffee

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:

  1. Use a shared cache store (e.g., 'redis') in config/cache.php or via CACHE_STORE=redis in .env.
  2. Add \Kolirt\Settings\Core\Setting::class to the warm array in config/octane.php to initialize the singleton at worker startup:
    'warm' => [
        \Kolirt\Settings\Core\Setting::class,
    ],
  3. Add \Kolirt\Settings\Octane\FlushSettings::class to the listeners[OperationTerminated::class] array in config/octane.php to reset internal state after each request:
     'listeners' => [
         OperationTerminated::class => [
             \Kolirt\Settings\Octane\FlushSettings::class,
         ]
     ],
  4. 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 package
  • settings:publish-config - Publish the config file
  • settings:publish-migrations - Publish migration files
  • settings: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

MIT

Other packages

Check out my other packages on my GitHub profile