A Laravel package for persistent, application-wide settings with multiple storage backends.
Laravel Settings is a PHP package for Laravel that provides persistent, application-wide storage for configuration values, user preferences, or dynamic settings. It offers a unified interface to store and retrieve data using multiple backends like JSON files or databases, with support for dot-notation access and caching.
Laravel developers building applications that require persistent user-specific settings, dynamic configuration, or feature flags that need to survive across requests and sessions.
Developers choose Laravel Settings for its native Laravel integration, flexible storage options, and simple API that reduces boilerplate code for managing persistent settings compared to manual database or file handling.
Persistent settings in Laravel
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports JSON files, databases, and custom stores via Laravel's Manager class, allowing developers to choose persistence based on performance or environment needs, as detailed in the README's configuration options.
Offers a clean API with facades, helper functions, and middleware for auto-saving, making it feel like a built-in Laravel component rather than a third-party add-on, as shown in the usage examples.
Enables user-specific or entity-scoped settings through extra columns or query constraints in database storage, ideal for multi-tenant apps, demonstrated with setExtraColumns and setConstraint methods.
Includes configurable caching with TTL and write-triggered invalidation to reduce store load, as per the cache usage configurations in the README, improving read-heavy applications.
Auto-saving in Laravel 5.x only works via middleware for HTTP requests; console commands, queue workers, and other non-HTTP contexts require explicit Setting::save() calls, adding development complexity.
Installation and configuration differ for Laravel versions below 5.5, with separate steps for service providers and migrations, which can lead to confusion or errors, as noted in the README's installation sections.
Lacks out-of-the-box features like encryption for sensitive settings, validation, or a GUI admin panel, forcing developers to implement these separately if needed.