X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=vendor%2Fdflydev%2Fdot-access-configuration%2FREADME.md;fp=vendor%2Fdflydev%2Fdot-access-configuration%2FREADME.md;h=b20c581a3fe087283213302f26fd043c3290b25e;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hp=0000000000000000000000000000000000000000;hpb=aea91e65e895364e460983b890e295aa5d5540a5;p=yaffs-website diff --git a/vendor/dflydev/dot-access-configuration/README.md b/vendor/dflydev/dot-access-configuration/README.md new file mode 100644 index 000000000..b20c581a3 --- /dev/null +++ b/vendor/dflydev/dot-access-configuration/README.md @@ -0,0 +1,116 @@ +Dot Access Configuration +======================== + +Given a deep data structure representing a configuration, access +configuration by dot notation. + +This library combines [dflydev/dot-access-data](https://github.com/dflydev/dflydev-dot-access-data) +and [dflydev/placeholder-resolver](https://github.com/dflydev/dflydev-placeholder-resolver) +to provide a complete configuration solution. + + +Requirements +------------ + + * PHP (5.3+) + * [dflydev/dot-access-data](https://github.com/dflydev/dflydev-dot-access-data) (1.*) + * [dflydev/placeholder-resolver](https://github.com/dflydev/dflydev-placeholder-resolver) (1.*) + * [symfony/yaml](https://github.com/symfony/Yaml) (>2,<2.2) *(suggested)* + + +Usage +----- + +Generally one will use an implementation of `ConfigurationBuilderInterface` +to build `ConfigurationInterface` instances. For example, to build a Configuration +out of a YAML file, one would use the `YamlFileConfigurationBuilder`: + + use Dflydev\DotAccessConfiguration\YamlFileConfigurationBuilder; + + $configurationBuilder = new YamlFileConfigurationBuilder('config/config.yml'); + $configuration = $configurationBuilder->build(); + + +Once created, the Configuration instance behaves similarly to a Data +instance from [dflydev/dot-access-data](https://github.com/dflydev/dflydev-dot-access-data). + + $configuration->set('a.b.c', 'ABC'); + $configuration->get('a.b.c'); + $configuration->set('a.b.e', array('A', 'B', 'C')); + $configuration->append('a.b.e', 'D'); + + +Custom Configurations +--------------------- + +Configuration Builders use Configuration Factories and Placeholder Resolver +Factories behind the scenes in order to build a working configuration. + +Under normal circumstances one should not need to do anything with the +Placeholder Resolver Factory. However, one may wish to extend the +default `Configuration` class or use an entirely different implementation +altogether. + +In order to build instances of custom `ConfigurationInterface` implementations +with the standard builders, one would need to implement +`ConfigurationFactoryInterface` and inject it into any +`ConfigurationBuilderInterface`. + +If a Configuration is declared as follows: + + namespace MyProject; + + use Dflydev\DotAccessConfiguration\Configuration; + + class MyConf extends Configuration + { + public function someSpecialMethod() + { + // Whatever you want here. + } + } + +Create the following factory: + + namespace MyProject; + + use Dflydev\DotAccessConfiguration\ConfigurationFactoryInterface; + + class MyConfFactory implements ConfigurationFactoryInterface + { + /** + * {@inheritdocs} + */ + public function create() + { + return new MyConf; + } + } + +To use the factory with any builder, inject it as follows: + + use Dflydev\DotAccessConfiguration\YamlFileConfigurationBuilder; + use MyProject\MyConfFactory; + + $configurationBuilder = new YamlFileConfigurationBuilder('config/config.yml'); + + // Inject your custom Configuration Factory + $configurationBuilder->setConfigurationFactory(new MyConfFactory); + + // Will now build instances of MyConfFactory instead of + // the standard Configuration implementation. + $configuration = $configurationBuilder->build(); + + +License +------- + +This library is licensed under the New BSD License - see the LICENSE file +for details. + + +Community +--------- + +If you have questions or want to help out, join us in the +[#dflydev](irc://irc.freenode.net/#dflydev) channel on irc.freenode.net. \ No newline at end of file