Download the PHP package codersandip/laravel-dynamic-settings without Composer
On this page you can find all versions of the php package codersandip/laravel-dynamic-settings. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download codersandip/laravel-dynamic-settings
More information about codersandip/laravel-dynamic-settings
Files in codersandip/laravel-dynamic-settings
Package laravel-dynamic-settings
Short Description A professional Laravel package to store and manage application settings dynamically using the database with caching, multi-tenant support, and an admin panel UI.
License MIT
Informations about the package laravel-dynamic-settings
Laravel Dynamic Settings Manager
A professional Laravel package to store and manage application settings dynamically using the database instead of config files. Supports automatic caching, multi-tenant scoping, per-user overrides, and a beautiful admin panel UI.
Features
- 📦 Database-driven settings — store any key/value with type casting
- ⚡ Automatic caching — configurable driver and TTL, cache invalidated on update
- 🏢 Multi-tenant support — tenant-scoped settings with global fallback
- 👤 Per-user overrides — priority: user → tenant → global
- 🎨 Admin Panel UI — dark-mode Bootstrap 5 CRUD interface with search, filter, toggles
- 🔄 Inline editing — AJAX quick-update widget on the edit page
- 🛡️ Type support —
string,integer,float,boolean,json - 🖥️ Artisan commands —
settings:cache,settings:clear,settings:seed - ✅ Fully tested — PHPUnit test suite included
Requirements
- PHP 8.1+
- Laravel 10.x / 11.x / 12.x
Installation
1. Install via Composer
Laravel auto-discovers the service provider. No manual registration needed.
2. Publish assets
Publish everything at once:
Or selectively:
3. Run migrations
4. (Optional) Seed default settings
Configuration
After publishing, edit config/settings.php:
You can also set these in your .env file:
Usage
Helper Function
Set a Setting
Facade
Service (Dependency Injection)
Data Types
| Type | PHP Type | Storage | Example |
|---|---|---|---|
string |
string |
As-is | "Hello World" |
integer |
int |
Numeric string | 42 |
float |
float |
Numeric string | 3.14 |
boolean |
bool |
"1" / "0" |
true / false |
json |
array |
JSON string | ["stripe", "paypal"] |
Multi-Tenant Support
Settings resolve with this priority: user → tenant → global
Fluent API
Artisan Commands
| Command | Description |
|---|---|
settings:cache |
Pre-warm cache with all settings from DB |
settings:clear |
Flush the settings cache |
settings:seed |
Seed a set of default settings |
Admin Panel
Access the admin panel at /admin/settings (configurable via route_prefix).
The panel includes:
- 📋 Index — list all settings with search, group/type filter, boolean toggles
- ➕ Create — add a new setting with type, group, scope options
- ✏️ Edit — update a setting, with inline AJAX quick-update widget
- 🗑️ Delete — remove a setting (with confirmation)
Protecting the Admin Panel
Set the middleware in config/settings.php:
Or disable the built-in routes and define your own:
Then publish routes:
And register the file in bootstrap/app.php or routes/web.php.
Database Schema
Testing
Changelog
See CHANGELOG.md.
License
The MIT License (MIT). See LICENSE for details.
Author
Sandip — [email protected]
GitHub: github.com/codersandip
All versions of laravel-dynamic-settings with dependencies
illuminate/support Version ^10.0|^11.0|^12.0
illuminate/database Version ^10.0|^11.0|^12.0
illuminate/http Version ^10.0|^11.0|^12.0
illuminate/cache Version ^10.0|^11.0|^12.0
illuminate/console Version ^10.0|^11.0|^12.0