Get expert guidance in a few days with a Laravel code review

Laravel Setting Pro

sajadsdi/laravel-setting-pro image

Laravel Setting Pro stats

Downloads
21
Stars
21
Open Issues
0
Forks
0

View on GitHub →

Easy settings management for laravel framework

Laravel Setting Pro

Effortless Management of Laravel Application Settings.

Description

A Laravel package that provides a simple and effective way to handle application settings with support for persistent storage using both file-based and database drivers.

Features

The Laravel Setting Pro package simplifies application settings management in Laravel and provides these key features:

  • Flexible Storage: Choose between file-based or database storage to suit your application's needs.

  • Flexible Database: Choose between mysql or mongodb or create own db connection for settings.

  • Caching: Improve performance with automatic caching of settings. You can choose between file or redis or create own cache driver.

  • Queue Support: Handle setting updates and deletes in the background, ensuring smooth user experiences.

  • Event Triggers: Respond to setting changes in real-time by leveraging Laravel events.

  • Global Helper Function & Facade: Access and manipulate settings anywhere in your laravel app with a simple setting function or Setting facade (even in the config files).

  • Artisan Commands for Ease of Use: Publish configuration and migrations effortlessly with the setting:publish artisan command; complete installations, migrations, and initial tests using the setting:install command.

  • Easy get & set and delete settings with dot notation: get & set & delete and has operations on nested settings keys.

  • Easy import settings : Import settings from a driver to default store driver.

  • Auto create setting : you can use default value for get operation or set operation on any new setting name.

This package is designed for developers looking for an efficient and intuitive way to handle application settings. It offers the necessary tools while keeping the process simple and maintainable.

Requirements

  • PHP ^8.1
  • Laravel ^9.0|^10.0

Installation

Use Composer to install the package:

composer require sajadsdi/laravel-setting-pro

Setup

After the package installation, use the provided Artisan commands to publish configuration and migration files, and complete the installation process:

First, publish the configuration and migration files using:

php artisan setting:publish

This will publish _setting.php to your config folder and migration file.

Then, use the installation command to perform migrations and any necessary setup operations:

php artisan setting:install

These commands will set up your settings table in the database and ensure that the package is ready to use.

Usage

Two ways to use Laravel Setting Pro:

  1. Using the setting function:
// Get a setting value
$value = setting('my_setting')->get('key', 'default value');
//or
$value = setting('my_setting','key', 'default value');
//or
$value = setting()->select('my_setting')->get('key', 'default value');
 
 
// Set a setting value
setting('my_setting')->set(['key' => 'value']);
//or
setting()->select('my_setting')->set(['key' => 'value']);
 
 
//delete a key from setting
setting('my_setting')->delete('key');
//or
setting()->select('my_setting')->delete('key');
  1. Using the Setting facade:
<?php
use Sajadsdi\LaravelSettingPro\Support\Setting;
 
// Get a setting value
$value = Setting::select('my_setting')->get('key', 'default value');
//or
$value = Setting::my_setting()->get('key', 'default value');
//or
$value = Setting::my_setting('key', 'default value');
 
// Set a setting value
Setting::select('my_setting')->set('key', 'value');
//or
Setting::my_setting()->set('key', 'value');
 
//delete key from setting
Setting::select('my_setting')->delete('key');
//or
Setting::my_setting()->delete('key');
 
//checking exists by has method
if(Setting::select('my_setting')->has('key')){
echo "key exists!";
}else{
echo "key not exists!";
}

Advanced Usage

you can use set and get operation in any way as stated above, with dot notation and multiple keys and defaults like this:

//get operation
 
$value = Setting::my_setting(['users.3.profile.pic','users.3.profile.name'], ["default.png","No name"]);
//or multi keys and single defaults
$value = setting('my_setting')->get(['users.3.profile.pic','users.3.profile.name'], ["no data"]);
 
 
//set operation
setting::select('my_setting')->set(['users.3.profile.pic' => "profile.png",'users.3.profile.name' => "john"])
 
//delete multiple keys
setting::select('my_setting')->delete(['users.3.profile.pic','users.3.profile.name']);
 
//multiple keys checking exists by has method
if(Setting::select('my_setting')->has(['users.3.profile.pic','users.3.profile.name'])){
echo "The keys are exists!";
}else{
echo "The keys do not exist!";
}
 
 
// it's very Easy

This package use Dot Notation Array package to getting keys and setting operations you can see Documentation to better use for Laravel Setting Pro

Caching

You can set config to enable setting cache, and you can choose cache driver for optimal performance. To clear the settings cache, use:

php artisan setting:clear-cache

Configuration

You can change _setting config on laravel config path.

For more details about Configuration Laravel Setting Pro , click here

Contributing

We welcome contributions from the community to improve and extend this library. If you'd like to contribute, please follow these steps:

  1. Fork the repository on GitHub.
  2. Clone your fork locally.
  3. Create a new branch for your feature or bug fix.
  4. Make your changes and commit them with clear, concise commit messages.
  5. Push your changes to your fork on GitHub.
  6. Submit a pull request to the main repository.

Reporting Bugs and Security Issues

If you discover any security vulnerabilities or bugs in this project, please let us know through the following channels:

  • GitHub Issues: You can open an issue on our GitHub repository to report bugs or security concerns. Please provide as much detail as possible, including steps to reproduce the issue.

  • Contact: For sensitive security-related issues, you can contact us directly through the following contact channels

Contact

If you have any questions, suggestions, financial, or if you'd like to contribute to this project, please feel free to contact the maintainer:

We appreciate your feedback, support, and any financial contributions that help us maintain and improve this project.

License

This package is open-sourced software licensed under the MIT license.


Made with ❤️ by SajaD SaeeDi.

Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.


Sajadsdi Laravel Setting Pro Related Articles

Building an AI-Powered Laravel + MongoDB App: A Walkthrough Using Laravel Boost image

Building an AI-Powered Laravel + MongoDB App: A Walkthrough Using Laravel Boost

Read article
PhpStorm 2025.3 brings bundled Laravel support, PHP 8.5, and new AI agents image

PhpStorm 2025.3 brings bundled Laravel support, PHP 8.5, and new AI agents

Read article
Querying Data in MongoDB With Laravel: From Basics to Advanced Techniques image

Querying Data in MongoDB With Laravel: From Basics to Advanced Techniques

Read article
Setup Command Added to Laravel's Composer File image

Setup Command Added to Laravel's Composer File

Read article
The Hidden Cost of MySQL Defaults in Laravel Apps image

The Hidden Cost of MySQL Defaults in Laravel Apps

Read article
Debugging and Logging in Laravel Applications image

Debugging and Logging in Laravel Applications

Read article
Cut PHP Code Review Time & Bugs into Half with CodeRabbit logo

Cut PHP Code Review Time & Bugs into Half with CodeRabbit

CodeRabbit is an AI-powered code review tool that specializes in PHP and Laravel, running PHPStan and offering automated PR analysis, security checks, and custom review features while remaining free for open-source projects.

Cut PHP Code Review Time & Bugs into Half with CodeRabbit
Curotec logo

Curotec

World class Laravel experts with GenAI dev skills. LATAM-based, embedded engineers that ship fast, communicate clearly, and elevate your product. No bloat, no BS.

Curotec
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS Starter Kit

SaaSykit is a Multi-tenant Laravel SaaS Starter Kit that comes with all features required to run a modern SaaS. Payments, Beautiful Checkout, Admin Panel, User dashboard, Auth, Ready Components, Stats, Blog, Docs and more.

SaaSykit: Laravel SaaS Starter Kit
Tinkerwell logo

Tinkerwell

The must-have code runner for Laravel developers. Tinker with AI, autocompletion and instant feedback on local and production environments.

Tinkerwell
Lucky Media logo

Lucky Media

Get Lucky Now - the ideal choice for Laravel Development, with over a decade of experience!

Lucky Media
Shift logo

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift