prepr / laravel-settings
Simple Settings package for laravel application
Installs: 1 279
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Language:HTML
Requires
- php: >=5.6.4
This package is not auto-updated.
Last update: 2024-11-09 20:34:05 UTC
README
A Laravel package that provides laravel applications settings module which needed in every application.
Supports laravel >= 5.2
Installation
- composer
Add the following to your composer file.
"prepr/laravel-settings": "3.0"
or run the following command:
composer require prepr/laravel-settings
- config/app.php [no need for this step in laravel 5.5 because of packages auto discovery feature]
add your new provider to the providers array:
'providers' => [
// ...
\PREPR\Settings\App\Providers\SettingServiceProvider::class
// ...
],
and add Setting class to the aliases array:
'aliases' => [
// ...
'Settings' => \PREPR\Settings\App\Facades\Setting::class
// ...
],
- publish
run the following command:
php artisan vendor:publish
config/settings.php
and resources/vendor/settings
will be added to your laravel project.
- migration
you can set table name in config/settings.php
return [
// ...
// settings package table name the default is `settings`
'table' => 'settings'
// ...
];
the default table name is settings
. then run the migration command
php artisan migrate
settings table will be migrated to your Database.
Package Options
after publishing the package new config file added config/settings.php
update values as your business requirement:
return [
//settings route
'route' => 'settings',
'middleware' => ['web', 'auth'],
// hidden records not editable from interface when set to false
'show_hidden_records' => false,
//javascript format
'date_format' => 'mm/dd/yyyy',
// number of digits after the decimal point
'number_step' => 0.001,
// upload path for settings of type file
'upload_path' => 'uploads/settings',
// valid mime types for settings of type file
'mimes' => 'jpg,jpeg,png,txt,csv,pdf',
'per_page' => 10,
// settings package table name the default is `settings`
'table' => 'settings'
];
How to use
the default route for settings is
your-domain/settings
it will shows a list of all settings you have and you can manage your settings from there.
in the code to get a setting value use the facade like that
Validate if the key exist:
\Settings::has('SETTING_KEY');
\Settings::get('SETTING_KEY'); \Settings::get('SETTING_KEY', 'Default value if not exist');
for example:
\Settings::get('SITE_TITLE', 'Laravel Settings');
also you can use astrisk to get group of settings. for example:
\Settings::get('MAIL_*');
will return an array of all settings with keys started with MAIL such as:
[
'MAIL_DRIVER' => 'smtp',
'MAIL_HOST' => 'mailtrap.io',
'MAIL_PORT' => '2525',
]
in case of file type a full path will return:
config('settings.upload_path') . '/' . $value;
such as:
uploads/settings/site_logo.png
===================================