Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hankz1108/laravel-system-settings
A Laravel package designed for managing system configuration values in database.
https://github.com/hankz1108/laravel-system-settings
composer configuration laravel laravel-package php settings
Last synced: 26 days ago
JSON representation
A Laravel package designed for managing system configuration values in database.
- Host: GitHub
- URL: https://github.com/hankz1108/laravel-system-settings
- Owner: hankz1108
- License: mit
- Created: 2023-12-17T16:41:46.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-01-15T16:12:35.000Z (10 months ago)
- Last Synced: 2024-09-19T03:13:55.967Z (about 2 months ago)
- Topics: composer, configuration, laravel, laravel-package, php, settings
- Language: PHP
- Homepage: https://packagist.org/packages/hankz/laravel-system-settings
- Size: 16.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
English Document | 繁體中文文件# Laravel System Settings
A Laravel package designed for managing system configuration values in database.## Installation
### 1. Composer install
Run the Composer require command from the Terminal:
```bash
composer require hankz/laravel-system-settings
```### 2. Setup
This package supports Laravel's auto-discovery feature and it's ready to use once installed.### 3. Publishing the config file
You need publish the config file.
```bash
php artisan vendor:publish --provider="Hankz\LaravelSystemSettings\SystemSettingProvider"
```### 4. Configuration
You can configure this package in `config\system-settings.php`
```php
'system_settings',/**
* default value.
*/
'default' => [
'group' => 'default',
],
];```
- table_name - Save the system settings table name in the database.
- default.group - The default group name when you are missing the group parameter.### 5. Migration
You should also run the migrate command.
```bash
php artisan migrate
```## Usage
This package is very simple and provides the following methods for your use.### `new(string $key, string $value, string $group = null, string $description = null): bool`
Create a new system setting.
#### Parameters:
- `$key` (string): The unique identifier for the system setting.
- `$value` (string): The value associated with the system setting.
- `$group` (string|null): (Optional) The group to which the system setting belongs. Default is `null`.
- `$description` (string|null): (Optional) A description providing additional information about the system setting. Default is `null`.#### Example:
```php
SystemSettingManager::new('keyName', 'value', 'groupName', 'description');
```#### Returns:
- `bool`: Returns `true` if the system setting is created successfully, or throws a `SystemSettingAlreadyExistsException` if the setting already exists.---
### `has(string $key, string $group = null): bool`
The `has()` method checks if a system setting exists with the given key and optional group.
#### Parameters:
- `$key` (string): The unique identifier for the system setting.
- `$group` (string|null): (Optional) The group to which the system setting belongs. Default is `null`.#### Example:
```php
SystemSettingManager::has('keyName', 'groupName');
```#### Returns:
- `bool`: Returns `true` if the system setting exists, otherwise `false`.---
### `all(): array`
Return all system settings with key and value in the format of key-value pairs.
#### Example:
```php
SystemSettingManager::all();
```#### Returns:
- `array`: An associative array containing all system settings in the format `['key' => 'value']`.---
### `get(string $key, string $group = null, string $default = null): null|string`
The `get()` method allows you to retrieve the value using both the key name and group name, and it also accepts a default value.
#### Parameters:
- `$key` (string): The unique identifier for the system setting.
- `$group` (string|null): (Optional) The group to which the system setting belongs. Default is `null`.
- `$default` (string|null): (Optional) The default value to return if the system setting is not found. Default is `null`.#### Example:
```php
SystemSettingManager::get('keyName', 'groupName', 'defaultValue');
```#### Returns:
- `string|null`: Returns the value of the system setting if found, otherwise returns the specified default value or `null` if no default is provided.---
### `set(string $key, string $value, string $group = null, string $description = null, bool $createWhenNotExist = false): void`
The `set()` method allows you to update the value and description of an existing system setting or create a new one if it does not exist.
#### Parameters:
- `$key` (string): The unique identifier for the system setting.
- `$value` (string): The new value to set for the system setting.
- `$group` (string|null): (Optional) The group to which the system setting belongs. Default is `null`.
- `$description` (string|null): (Optional) A description providing additional information about the system setting. Default is `null`.
- `$createWhenNotExist` (bool): (Optional) If set to `true`, a new system setting will be created if the specified key does not exist. Default is `false`.#### Example:
```php
SystemSettingManager::set('keyName', 'newValue', 'groupName', 'newDescription', true);
```#### Returns:
- `void`---
### `getByGroup(string $group): array`
Retrieve all system settings within a specified group.
#### Parameters:
- `$group` (string): The group from which to retrieve system settings.#### Example:
```php
SystemSettingManager::getByGroup('groupName');
```#### Returns:
- `array`: An associative array containing system settings within the specified group in the format `['key' => 'value']`.---
### `setByGroup(array $settings, string $group = null, bool $createWhenNotExist = false): void`
Update or create multiple system settings within a specified group.
#### Parameters:
- `$settings` (array): An associative array containing system settings in the format `['key' => ['value' => '', 'description' => '']]`.
- `$group` (string|null): (Optional) The group to which the system settings belong. Default is `null`.
- `$createWhenNotExist` (bool): (Optional) If set to `true`, new system settings will be created for keys that do not exist in the specified group. Default is `false`.#### Example:
```php
SystemSettingManager::setByGroup(['key1' => ['value' => 'value1', 'description' => 'desc1']], 'groupName', true);
```#### Returns:
- `void`---
### `delete(string $key, string $group = null): bool|null`
Delete a system setting with the specified key and optional group.
#### Parameters:
- `$key` (string): The unique identifier for the system setting.
- `$group` (string|null): (Optional) The group to which the system setting belongs. Default is `null`.#### Example:
```php
SystemSettingManager::delete('keyName', 'groupName');
```#### Returns:
- `bool|null`: Returns `true` if the system setting is successfully deleted, `false` if the setting does not exist, or `null` if an error occurs.---
## To-do list
- Add audit log## License
[MIT License](https://github.com/hankz1108/laravel-system-settings/blob/main/LICENSE) © 2023 [Hankz](https://github.com/hankz1108)