owenbush / static-settings
An API for storing and retrieving static settings
Installs: 13 122
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=8.1
Requires (Dev)
- drupal/coder: ^8.3
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10
- squizlabs/php_codesniffer: ^3.11
This package is auto-updated.
Last update: 2025-07-26 02:24:55 UTC
README
A PHP library for managing static settings using a type-safe API with PHP 8.1+ enums.
Requirements
- PHP 8.1 or higher
Installation
You can install the package via composer:
composer require owenbush/static-settings
Usage
1. Define Your Setting Enum
First, create an enum that implements BaseStaticSettingInterface
:
<?php declare(strict_types=1); namespace YOURNAMESPACE; use StaticSettings\BaseStaticSettingInterface; enum Environment: string implements BaseStaticSettingInterface { case Development = 'development'; case Staging = 'staging'; case Production = 'production'; }
2. Register Your Setting
Before you use your setting, you should register it. This prevents other code from registering the same name and conflicting. This step is optional as when you set a setting for the first time it will also register it.
use StaticSettings\StaticSettings; StaticSettings::registerSetting(Environment::class);
3. Set and Get Values
Now you can set and get values:
// Set the environment StaticSettings::set(Environment::class, Environment::Production); // Get the current environment $environment = StaticSettings::get(Environment::class); if ($environment === Environment::Production) { // Do production-specific things }
You can also set multiple values at once using:
// Set up some settings. $settings = [ Environment::class => Environment::Production, SomeOtherClass:class => SomeOtherClass::Value, ]; // Set multiple settings at once. StaticSettings::setMultiple($settings); // Retrieve the environment setting. $environment = StaticSettings::get(Environment::class);
Error Handling
The library will throw InvalidStaticSettingsException
in these cases:
- Attempting to get an unregistered setting
- Setting an invalid value for an enum
- Registering the same setting name with different classes
Development
Running Tests
Install Dependencies
composer install
Run test suite
vendor/bin/phpunit
Contributing
- Fork the repository
- Create a feature branch
- Write your changes
- Write tests for your changes
- Run the tests
- Submit a pull request
Please make sure to update tests as appropriate and adhere to the existing coding style.
License
Static Settings is open-source software licensed under the GPL-2 License.