1- Dot Access Configuration
2- ========================
1+ # Dot Access Configuration
32
43Given a deep data structure representing a configuration, access
54configuration by dot notation.
@@ -8,40 +7,37 @@ This library combines [dflydev/dot-access-data](https://github.com/dflydev/dflyd
87and [ dflydev/placeholder-resolver] ( https://github.com/dflydev/dflydev-placeholder-resolver )
98to provide a complete configuration solution.
109
11-
12- Requirements
13- ------------
10+ ## Requirements
1411
1512 * PHP (5.3+)
1613 * [ dflydev/dot-access-data] ( https://github.com/dflydev/dflydev-dot-access-data ) (1.* )
1714 * [ dflydev/placeholder-resolver] ( https://github.com/dflydev/dflydev-placeholder-resolver ) (1.* )
1815 * [ symfony/yaml] ( https://github.com/symfony/Yaml ) (>2,<2.2) * (suggested)*
1916
20-
21- Usage
22- -----
17+ ## Usage
2318
2419Generally one will use an implementation of ` ConfigurationBuilderInterface `
2520to build ` ConfigurationInterface ` instances. For example, to build a Configuration
2621out of a YAML file, one would use the ` YamlFileConfigurationBuilder ` :
2722
28- use Dflydev\DotAccessConfiguration\YamlFileConfigurationBuilder;
29-
30- $configurationBuilder = new YamlFileConfigurationBuilder('config/config.yml');
31- $configuration = $configurationBuilder->build();
23+ ``` php
24+ use Dflydev\DotAccessConfiguration\YamlFileConfigurationBuilder;
3225
26+ $configurationBuilder = new YamlFileConfigurationBuilder('config/config.yml');
27+ $configuration = $configurationBuilder->build();
28+ ```
3329
3430Once created, the Configuration instance behaves similarly to a Data
3531instance from [ dflydev/dot-access-data] ( https://github.com/dflydev/dflydev-dot-access-data ) .
3632
37- $configuration->set('a.b.c', 'ABC');
38- $configuration->get('a.b.c');
39- $configuration->set('a.b.e', array('A', 'B', 'C'));
40- $configuration->append('a.b.e', 'D');
41-
33+ ``` php
34+ $configuration->set('a.b.c', 'ABC');
35+ $configuration->get('a.b.c');
36+ $configuration->set('a.b.e', array('A', 'B', 'C'));
37+ $configuration->append('a.b.e', 'D');
38+ ```
4239
43- Custom Configurations
44- ---------------------
40+ ## Custom Configurations
4541
4642Configuration Builders use Configuration Factories and Placeholder Resolver
4743Factories behind the scenes in order to build a working configuration.
@@ -57,60 +53,59 @@ with the standard builders, one would need to implement
5753` ConfigurationBuilderInterface ` .
5854
5955If a Configuration is declared as follows:
56+ ``` php
57+ namespace MyProject;
6058
61- namespace MyProject ;
62-
63- use Dflydev\DotAccessConfiguration\ Configuration;
64-
65- class MyConf extends Configuration
59+ use Dflydev\DotAccessConfiguration\Configuration ;
60+
61+ class MyConf extends Configuration
62+ {
63+ public function someSpecialMethod()
6664 {
67- public function someSpecialMethod()
68- {
69- // Whatever you want here.
70- }
65+ // Whatever you want here.
7166 }
67+ }
68+ ```
7269
7370Create the following factory:
71+ ``` php
72+ namespace MyProject;
73+
74+ use Dflydev\DotAccessConfiguration\ConfigurationFactoryInterface;
7475
75- namespace MyProject;
76-
77- use Dflydev\DotAccessConfiguration\ConfigurationFactoryInterface;
78-
79- class MyConfFactory implements ConfigurationFactoryInterface
76+ class MyConfFactory implements ConfigurationFactoryInterface
77+ {
78+ /**
79+ * {@inheritdocs}
80+ */
81+ public function create()
8082 {
81- /**
82- * {@inheritdocs}
83- */
84- public function create()
85- {
86- return new MyConf;
87- }
83+ return new MyConf;
8884 }
85+ }
86+ ```
8987
9088To use the factory with any builder, inject it as follows:
89+ ``` php
90+ use Dflydev\DotAccessConfiguration\YamlFileConfigurationBuilder;
91+ use MyProject\MyConfFactory;
9192
92- use Dflydev\DotAccessConfiguration\YamlFileConfigurationBuilder;
93- use MyProject\MyConfFactory;
94-
95- $configurationBuilder = new YamlFileConfigurationBuilder('config/config.yml');
96-
97- // Inject your custom Configuration Factory
98- $configurationBuilder->setConfigurationFactory(new MyConfFactory);
93+ $configurationBuilder = new YamlFileConfigurationBuilder('config/config.yml');
9994
100- // Will now build instances of MyConfFactory instead of
101- // the standard Configuration implementation.
102- $configuration = $configurationBuilder->build();
95+ // Inject your custom Configuration Factory
96+ $configurationBuilder->setConfigurationFactory(new MyConfFactory);
10397
98+ // Will now build instances of MyConfFactory instead of
99+ // the standard Configuration implementation.
100+ $configuration = $configurationBuilder->build();
101+ ```
104102
105- License
106- -------
103+ ## License
107104
108105This library is licensed under the New BSD License - see the LICENSE file
109106for details.
110107
111-
112- Community
113- ---------
108+ ## Community
114109
115110If you have questions or want to help out, join us in the
116- [ #dflydev] ( irc://irc.freenode.net/#dflydev ) channel on irc.freenode.net.
111+ [ #dflydev] ( irc://irc.freenode.net/#dflydev ) channel on irc.freenode.net.
0 commit comments