opxcore / config
The OpxCore config.
Requires
- php: ^7.4
- opxcore/array: ^1.0.0
- opxcore/config-cache-interface: ^1.0.1
- opxcore/config-environment-interface: ^1.0.0
- opxcore/config-interface: ^1.0.1
- opxcore/config-repository-interface: ^1.0.2
Requires (Dev)
- phpunit/phpunit: ^9.5
README
Config
Config is a component designed to load config for your project. It uses three components as dependency injection: config repository loader, config caching and environment variables. All of them set to config as dependency injection. In general, you can use standard components operating on local files. Also, you can make your own components for your purposes. Each of they must implement teh corresponding interface (see below).
Of course, these three components are optional. If component is not set, functionality it provides would not be able.
Creating
$config = new \OpxCore\Config\Config($repository, $cache, $environment);
Config repository
Config repository provides functionality for loading configuration. This component must implement ConfigRepositoryInterface.
Realization: ConfigRepositoryFiles
Config cache
This component provides functionality for configuration caching. This component must implement ConfigCacheInterface.
Realization: ConfigCacheFiles
Environment
This component provides functionality for defining configuration values via environment files. This component must implement EnvironmentInterface.
Realization: Environment
In case of environment is assigned to config, last one can use environment variables to configure cache driver.
# Is config caching disabled. true of false CONFIG_CACHE_ENABLE=true # Cache lifetime in seconds. null for forever CONFIG_CACHE_TTL=null
Loading configuration
$config->load($profile, $overrides, $force);
$profile
and $overrides
are variables passed to config repository (
see repository) for more information.
If $forse
is set to true
, loading configuration from cache will bi skipped, as cached configuration was not found.
Accessing configuration
Config implements ArrayAccess
interface, so you can use $config
as an array.
Accessing to configuration is realized with Array so all operations with keys uses dot notation.
$config->has($key);
same as isset($config[$key]);
checks if value is defined;
$config->get($key, $default);
same sa $config[$key];
gets value;
$config->set($key, $value);
same as $config[$key] = $value;
sets value;
$config->push($key, $value);
pushes value;
$config->all();
returns all configuration array.