zahidhassanshaikot / settings
This is my package settings
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0||^12.0||^13.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^11.0.0||^10.0.0||^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- spatie/laravel-ray: ^1.35
README
This package allows you to store settings in a database. The settings are cached to prevent queries to the database. If you update a setting it will be stored in the database and the cache will be flushed. This package is for managing most basic settings in your laravel application like site title, site logo etc. You can add your custom settings using this package.
Support us
If you find this project helpful or appreciate my work, please consider buying me a coffee! ☕️
Installation
You can install the package via composer:
composer require zahidhassanshaikot/settings
You can publish and run the migrations with:
php artisan vendor:publish --tag="settings-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="settings-config"
This is the contents of the published config file:
return [ 'cache' => [ 'enabled' => true, ], ];
Usage
Facade
You can use the facade for shorter code. Add the following to your facades:
use zahidhassanshaikot\Settings\Facades\Settings; Settings::all(); Settings::updateOrCreate('site_name', 'laravel-settings'); Settings::updateOrCreateMultiple(['site_name' => 'laravel-settings', 'timezone' => 'UTC']); Settings::get('site_name'); Settings::get('missing_key', 'a default value'); Settings::delete('site_name');
Helper function
A global settings() helper is also available as shorthand for the facade:
settings('site_name'); settings('missing_key', 'a default value'); settings(); // same as Settings::all()
Typed values
Values are no longer limited to strings. Booleans, integers, arrays, and other JSON-serializable values are stored and returned as their original type:
Settings::updateOrCreate('maintenance_mode', true); Settings::updateOrCreate('max_attempts', 5); Settings::updateOrCreate('allowed_ips', ['127.0.0.1', '10.0.0.1']); Settings::get('maintenance_mode'); // true Settings::get('max_attempts'); // 5 Settings::get('allowed_ips'); // ['127.0.0.1', '10.0.0.1']
Existing plain-string values written before this feature was added continue to work unchanged.
Artisan commands
php artisan settings:list
php artisan settings:set {key} {value}
php artisan settings:forget {key}
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.