A PHP library for managing static settings using a type-safe API with PHP 8.1+ enums.
- PHP 8.1 or higher
You can install the package via composer:
composer require owenbush/static-settingsFirst, 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';
}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);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);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
composer installvendor/bin/phpunit- 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.
Static Settings is open-source software licensed under the GPL-2 License.