LaravelPackages.net
Acme Inc.
Toggle sidebar
stratos/laravel-settings

A flexible and extensible settings management package for Laravel applications

39
0
v1.0.0
About stratos/laravel-settings

stratos/laravel-settings is a Laravel package for a flexible and extensible settings management package for laravel applications. It currently has 0 GitHub stars and 39 downloads on Packagist (latest version v1.0.0). Install it with composer require stratos/laravel-settings. Discover more Laravel packages by stratos or browse all Laravel packages to compare alternatives.

Last updated

Laravel Settings

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 [email protected] 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

Comments