okipa/laravel-settings-management

This package is abandoned and no longer maintained. No replacement package was suggested.

An easy way to get access to your app settings from anywhere.

1.0.4 2018-05-18 12:41 UTC

This package is auto-updated.

Last update: 2019-09-04 16:43:58 UTC


README

An easy way to get access to your app settings from anywhere.

Source Code Latest Version Total Downloads License: MIT Build Status Code Coverage Scrutinizer Code Quality

⚠️ This package has been abandonned ⚠️
Do not hesitate to contact me if you want to make it evolve and to maintain it.

Before starting

The settings management only uses one Model instance, which mean that using a database table to store your settings will read and update only one line.
Even if this package will work fine using database storage, using a Laravel Model Json Storage to do this can be a better option.

Installation

  • Install the package with composer :
composer require okipa/laravel-settings-management
  • Laravel 5.5+ uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider. If you don't use auto-discovery or if you use a Laravel 5.4- version, add the package service provider in the register() method from your app/Providers/AppServiceProvider.php :
// laravel settings management
// https://github.com/Okipa/laravel-settings-management
$this->app->register(Okipa\LaravelSettingsManagement\SettingsManagementServiceProvider::class);
  • Run the following command : php artisan vendor:publish --tag=settingsManagement.
    This will publish these files to your project (to customize according to your needs) :

    • app/Settings.php : The Settings model.
    • config/settings.php : the settings management configuration file.
    • database/migration/2018_05_16_145709_create_settings_table.php : the settings management migration (delete this file if you chose to use the Laravel Model Json Storage).
  • Run the Laravel migration command : php artisan migrate

  • You may want to customize the config/settings.php configuration file values :

    • model : set the namespace of the model used for your app settings management.

Caution :
Your model-settings-management migration should have each of its field set as nullable() or having a default value.
Without this configuration, a PDOException would be thrown because an empty instance of the settings model is stored in database when none does exist.

Usage

Use the settings() helper as a model instance to access to your settings data from anywhere in your app :

$email = settings()->email;

Update your settings data by using the settings() helper as well.

settings()->update(['email' => 'john@doe.com']);

// or

settings()->setAttribute('email', 'john@doe.com')->save();

// or

settings()->email = john@doe.com;
settings()->save();