1- [ ![ version] ( https://img.shields.io/badge/version-1.0.1 -green.svg )] ( https://github.com/steevanb/symfony-options-resolver/tree/1.0.1 )
1+ [ ![ version] ( https://img.shields.io/badge/version-1.1.0 -green.svg )] ( https://github.com/steevanb/symfony-options-resolver/tree/1.1.0 )
22[ ![ doctrine] ( https://img.shields.io/badge/symfony/options_resolver-^2.6||^3.0||^4.0-blue.svg )] ( https://github.com/symfony/options-resolver )
33[ ![ php] ( https://img.shields.io/badge/php-^7.1-blue.svg )] ( http://www.php.net )
4- ![ Lines] ( https://img.shields.io/badge/code%20lines-376 -green.svg )
4+ ![ Lines] ( https://img.shields.io/badge/code%20lines-454 -green.svg )
55![ Total Downloads] ( https://poser.pugx.org/steevanb/symfony-options-resolver/downloads )
66[ ![ Scrutinizer] ( https://scrutinizer-ci.com/g/steevanb/symfony-options-resolver/badges/quality-score.png?b=master )] ( https://scrutinizer-ci.com/g/steevanb/symfony-options-resolver/ )
77
@@ -14,41 +14,51 @@ Add features to Symfony [OptionsResolver](https://github.com/symfony/options-res
1414### Installation
1515
1616``` bash
17- composer require " steevanb/symfony-options-resolver" : " ^1.0.1 "
17+ composer require " steevanb/symfony-options-resolver" : " ^1.1.0 "
1818```
1919
2020### Examples
2121
2222Define an optional option with a default value:
2323``` php
24- use steevanb\SymfonyOptionsResolver\OptionsResolver
24+ use steevanb\SymfonyOptionsResolver\OptionsResolver;
2525
2626$optionsResolver = new OptionsResolver();
2727
2828# Configure an optional option
29- $optionsResolver->configureOption('foo', ['string'], ['bar ', 'baz'] , 'bar' );
29+ $optionsResolver->configureOption('foo', ['string'], 'default', ['default ', 'value1' , 'value2'] );
3030
3131# Equivalent to call original OptionsResolver methods:
3232$optionsResolver
3333 ->setDefined('foo')
3434 ->setAllowedTypes('foo', ['string'])
35- ->setAllowedValues ('foo', ['bar', 'baz'] )
36- ->setDefault ('foo', 'bar' );
35+ ->setDefault ('foo', 'default' )
36+ ->setAllowedValues ('foo', ['default', 'value1', 'value2'] );
3737```
3838
3939Define a required option:
4040``` php
41- use steevanb\SymfonyOptionsResolver\OptionsResolver
41+ use steevanb\SymfonyOptionsResolver\OptionsResolver;
4242
4343$optionsResolver = new OptionsResolver();
4444
4545# Configure a required option
46- $optionsResolver->configureRequiredOption('foo', ['string'], ['bar ', 'baz ']);
46+ $optionsResolver->configureRequiredOption('foo', ['string'], ['value1 ', 'value2 ']);
4747
4848# Equivalent to call original OptionsResolver methods:
4949$optionsResolver
50- ->setDefined ('foo')
50+ ->setRequired ('foo')
5151 ->setAllowedTypes('foo', ['string'])
52- ->setAllowedValues('foo', ['bar', 'baz'])
53- ->setRequired('foo');
52+ ->setAllowedValues('foo', ['value1', 'value2']);
53+ ```
54+
55+ Allow unknown keys:
56+ ``` php
57+ use steevanb\SymfonyOptionsResolver\OptionsResolver;
58+
59+ # This will not throw an exception because extraKey is not configured
60+ (new OptionsResolver())
61+ ->configureRequiredOption('foo', ['string'], ['value1', 'value2'])
62+ ->setAllowUnknownKeys(true)
63+ ->resolve(['foo' => 'value1', 'extraKey' => 'extraValue']);
5464```
0 commit comments