slaxweb / config
Config component for the SlaxWeb Framework
Installs: 1 104
Dependents: 8
Suggesters: 1
Security: 0
Stars: 1
Watchers: 3
Forks: 1
Open Issues: 0
Requires
- php: >=7.0.0
Requires (Dev)
- behat/gherkin: ~4.4
- codeception/codeception: dev-master
- desperado/xml-bundle: ~0.1
Suggests
- desperado/xml-bundle: If you would like to use XML config files, you have to install desperado/xml-bundle package, version 0.1.x
- pimple/pimple: Make use of available providers for Pimple version 3.0.x
- symfony/yaml: If you would like to use YAML config files, you have to install symfony/yaml package, version 3.0.x
This package is not auto-updated.
Last update: 2024-11-23 20:04:21 UTC
README
Config component of the SlaxWeb\Framework handles loading and parsing of configuration options from multiple sources. Currently only file based resources are supported, and can be in 3 formats, PHP, XML, or Yaml.
Requirements
- PHP 7.0+
- desperado/xml-bundle 0.1.* package - for XML configuration handler
- symfony/yaml 3.0.* package - for Yaml configuration handler
- pimple/pimple 3.0.* package - to use the provided service provider
Installation
Easiest form of installation is through composer, just require the package in your composer.json file:
{ "require": { "slaxweb/config": "~0.1" } }
And this should get you started to use the Config component, with the PHP configuration handler. If you want to use XML or Yaml configuration providers, you need to install their respective required packages with composer (see Requirements).
Usage
The Config component provides you a Factory class for easier instantiation. To get started, simply call the init static method of the Factory with the correct constant for the configuration handler you want to use, and the path to your configuration file location. Configuration handler constants:
- \SlaxWeb\Config\Container::PHP_CONFIG_HANDLER
- \SlaxWeb\Config\Container::XML_CONFIG_HANDLER
- \SlaxWeb\Config\Container::YAML_CONFIG_HANDLER
$config = \SlaxWeb\Config\Factory::init( \SlaxWeb\Config\Container::PHP_CONFIG_HANDLER, "/path/to/configuration/" );
The factory will automatically instantiate the correct configuration handler and inject it to the Config class, along with your provided configuration resource location.
Manipulating configuration
The Container class implements ArrayAccess and must be used as such. Retrieving, setting, removing and checking for existence, is done like if it were on an array. For loading of new configuration resources, the load method is provided. Example PHP configuration file:
<?php $configuration["foo"] = "bar"; $configuration["baz"] = true;
The PHP configuration file requires the $configuration array, and all of your configuration items must be set to it.
To load the configuration file, just place it inside your /path/to/configuration and call load method with the file name:
$config->load("myconfig.php");
After the configuration file has been loaded you can normally do operations on $config as if it is a simple array:
if (isset($config["foo"])) { $foo = $config["foo"]; } $config["foo"] = "baz"; unset($config["baz"]);
Using the Provider
If you are using the Pimple\Pimple Dependency Injection Container, you can use the provided Service Provider. Make sure that before you are going to use the config.service, that you have set the configResourceLocation, and the configHandler properties in your container. To use the provider, simply register it with your container:
<?php use Pimple\Container; $container = new Container; $container->register(new \SlaxWeb\Config\Service\Provider); $container["configHandler"] = \SlaxWeb\Config\Container::PHP_CONFIG_HANDLER; $container["configResourceLocation"] = "/path/to/configuration"; $container["service.provider"]->load("myconfig.php");