stratos/laravel-settings

A flexible and extensible settings management package for Laravel applications

Installs: 6

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/stratos/laravel-settings

v1.0.0 2025-11-20 10:18 UTC

This package is auto-updated.

Last update: 2025-11-20 10:18:41 UTC


README

Tests PHP Version Laravel Version License Documentation

A flexible, enterprise-ready settings management package for Laravel applications. Manage global settings, user preferences, and dynamic configuration with powerful features including encryption, validation, audit trails, and granular permissions.

โœจ Key Features

  • ๐ŸŒ Global & User Settings - Application-wide and per-user preferences
  • ๐Ÿ”’ Encryption - Secure sensitive data with Laravel's encryption
  • โœ… Validation - Per-setting validation rules
  • ๐Ÿ“ Audit Trail - Complete change history with rollback
  • ๐Ÿ” Permissions - Role and permission-based access control
  • ๐ŸŒ Multilingual - Translations for labels and descriptions
  • โšก Caching - Automatic caching with smart invalidation
  • ๐Ÿ“ฆ Import/Export - Backup and migration (JSON/YAML)
  • ๐ŸŽฏ Type Casting - Automatic type detection (string, int, bool, array, json)
  • ๐Ÿงช Well Tested - 131 Pest tests with full coverage

๐Ÿ“‹ Requirements

  • PHP 8.3 or higher
  • Laravel 12.0 or higher

๐Ÿš€ Quick Start

Installation

composer require stratos/laravel-settings
php artisan vendor:publish --tag="settings-migrations"
php artisan migrate

Basic Usage

use Stratos\Settings\Facades\Settings;

// Set a value
Settings::set('site.name', 'My Application');

// Get a value
$name = Settings::get('site.name', 'Default Name');

// Use helper
$name = setting('site.name');

// Blade directive
<h1>@setting('site.name')</h1>

User Settings

// Set user preference
Settings::user()->set('theme', 'dark');

// Get user preference
$theme = user_setting('theme', 'light');

// Blade
<body class="theme-@userSetting('theme')">

Advanced Features

// Encrypted values
Settings::setEncrypted('api.stripe_key', 'sk_live_...');

// With validation
Settings::setWithMetadata(
    key: 'max_users',
    value: 100,
    validationRules: ['integer', 'min:1', 'max:1000']
);

// With permissions
Settings::setPermissions(
    key: 'api.credentials',
    viewType: 'roles',
    viewPermissions: ['admin', 'developer'],
    editType: 'roles',
    editPermissions: ['admin']
);

// View history
$history = Settings::getHistory('site.name');

// Rollback
Settings::restoreToVersion('site.name', $historyId);

Artisan Commands

# Create setting interactively
php artisan settings:create

# Set a setting
php artisan settings:set site.name "My App"

# Get a setting
php artisan settings:get site.name

# List all settings
php artisan settings:list

# Export/Import
php artisan settings:export settings.json
php artisan settings:import settings.json

๐Ÿ“š Documentation

For complete documentation, visit the docs folder:

Getting Started

Features

Reference

Guides

๐ŸŽฏ Use Cases

Perfect for:

  • SaaS Applications - Per-tenant or per-user configuration
  • API Credentials - Securely store API keys with encryption
  • Feature Flags - Toggle features dynamically
  • User Preferences - Theme, language, timezone, notifications
  • Email Configuration - Dynamic SMTP settings
  • Multi-Tenant Apps - Tenant-specific settings
  • Enterprise Apps - Audit compliance and change tracking

๐Ÿ†š Comparison

Feature Laravel Settings Spatie Settings Config Files
Global Settings โœ… โœ… โœ…
User Settings โœ… โŒ โŒ
Encryption โœ… โŒ โŒ
Validation โœ… โŒ โŒ
Permissions โœ… โŒ โŒ
Audit Trail โœ… โŒ โŒ
Import/Export โœ… โŒ โŒ
History/Rollback โœ… โŒ โŒ
Caching โœ… โœ… โœ…
Dynamic Updates โœ… โœ… โŒ

๐Ÿงช Testing

# Run tests
vendor/bin/pest

# Run with coverage
vendor/bin/pest --coverage

๐Ÿ“ Changelog

See CHANGELOG.md for recent changes.

๐Ÿค Contributing

Contributions are welcome! Please see CONTRIBUTING.md for details.

๐Ÿ”’ Security

If you discover any security-related issues, please email security@stratosdigital.com instead of using the issue tracker.

๐Ÿ“„ License

Laravel Settings is open-sourced software licensed under the MIT license.

๐Ÿ‘จโ€๐Ÿ’ป Credits

๐ŸŒŸ Support

If you find this package useful, please consider:

๐Ÿ“š Read the Full Documentation | ๐Ÿš€ View on GitHub