[OptionsParser] Renamed OptionsParser to OptionsResolver
This commit is contained in:
parent
04522ca4ed
commit
256b7081a4
@ -42,7 +42,7 @@
|
||||
"symfony/http-foundation": "self.version",
|
||||
"symfony/http-kernel": "self.version",
|
||||
"symfony/locale": "self.version",
|
||||
"symfony/options-parser": "self.version",
|
||||
"symfony/options-resolver": "self.version",
|
||||
"symfony/process": "self.version",
|
||||
"symfony/routing": "self.version",
|
||||
"symfony/security": "self.version",
|
||||
|
@ -19,7 +19,7 @@ use Symfony\Bridge\Doctrine\Form\ChoiceList\EntityLoaderInterface;
|
||||
use Symfony\Bridge\Doctrine\Form\EventListener\MergeDoctrineCollectionListener;
|
||||
use Symfony\Bridge\Doctrine\Form\DataTransformer\CollectionToArrayTransformer;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
abstract class DoctrineType extends AbstractType
|
||||
{
|
||||
|
@ -15,7 +15,7 @@ use Symfony\Bridge\Propel1\Form\ChoiceList\ModelChoiceList;
|
||||
use Symfony\Bridge\Propel1\Form\DataTransformer\CollectionToArrayTransformer;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilder;
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
/**
|
||||
* ModelType class.
|
||||
|
@ -26,7 +26,7 @@ use Symfony\Component\Form\Extension\Core\DataTransformer\ChoiceToValueTransform
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\ChoiceToBooleanArrayTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\ChoicesToValuesTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\ChoicesToBooleanArrayTransformer;
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
class ChoiceType extends AbstractType
|
||||
{
|
||||
|
@ -21,7 +21,7 @@ use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToArrayTransfo
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\ArrayToPartsTransformer;
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
class DateTimeType extends AbstractType
|
||||
{
|
||||
|
@ -22,7 +22,7 @@ use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToArrayTransfo
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer;
|
||||
use Symfony\Component\Form\ReversedTransformer;
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
class DateType extends AbstractType
|
||||
{
|
||||
|
@ -22,7 +22,7 @@ use Symfony\Component\Form\Extension\Core\EventListener\ValidationListener;
|
||||
use Symfony\Component\Form\Extension\Core\DataMapper\PropertyPathMapper;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\Form\Exception\FormException;
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
class FormType extends AbstractType
|
||||
{
|
||||
|
@ -20,7 +20,7 @@ use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransf
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToArrayTransformer;
|
||||
use Symfony\Component\Form\FormView;
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
class TimeType extends AbstractType
|
||||
{
|
||||
|
@ -13,7 +13,7 @@ namespace Symfony\Component\Form\Extension\Core\Type;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceList;
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
class TimezoneType extends AbstractType
|
||||
{
|
||||
|
@ -14,7 +14,7 @@ namespace Symfony\Component\Form;
|
||||
use Symfony\Component\Form\Exception\FormException;
|
||||
use Symfony\Component\Form\Exception\UnexpectedTypeException;
|
||||
use Symfony\Component\Form\Exception\TypeDefinitionException;
|
||||
use Symfony\Component\OptionsParser\OptionsParser;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class FormFactory implements FormFactoryInterface
|
||||
{
|
||||
@ -221,7 +221,7 @@ class FormFactory implements FormFactoryInterface
|
||||
$types = array();
|
||||
$optionValues = array();
|
||||
$knownOptions = array();
|
||||
$optionsParser = new OptionsParser();
|
||||
$optionsResolver = new OptionsResolver();
|
||||
|
||||
// Bottom-up determination of the type hierarchy
|
||||
// Start with the actual type and look for the parent type
|
||||
@ -255,14 +255,14 @@ class FormFactory implements FormFactoryInterface
|
||||
// options. Default options of children override default options
|
||||
// of parents.
|
||||
$typeOptions = $type->getDefaultOptions();
|
||||
$optionsParser->setDefaults($typeOptions);
|
||||
$optionsParser->addAllowedValues($type->getAllowedOptionValues());
|
||||
$optionsResolver->setDefaults($typeOptions);
|
||||
$optionsResolver->addAllowedValues($type->getAllowedOptionValues());
|
||||
$knownOptions = array_merge($knownOptions, array_keys($typeOptions));
|
||||
|
||||
foreach ($type->getExtensions() as $typeExtension) {
|
||||
$extensionOptions = $typeExtension->getDefaultOptions();
|
||||
$optionsParser->setDefaults($extensionOptions);
|
||||
$optionsParser->addAllowedValues($typeExtension->getAllowedOptionValues());
|
||||
$optionsResolver->setDefaults($extensionOptions);
|
||||
$optionsResolver->addAllowedValues($typeExtension->getAllowedOptionValues());
|
||||
$knownOptions = array_merge($knownOptions, array_keys($extensionOptions));
|
||||
}
|
||||
}
|
||||
@ -278,7 +278,7 @@ class FormFactory implements FormFactoryInterface
|
||||
}
|
||||
|
||||
// Resolve options
|
||||
$options = $optionsParser->parse($options);
|
||||
$options = $optionsResolver->resolve($options);
|
||||
|
||||
for ($i = 0, $l = count($types); $i < $l && !$builder; ++$i) {
|
||||
$builder = $types[$i]->createBuilder($name, $this, $options);
|
||||
|
@ -23,7 +23,7 @@ class DateTypeTest extends LocalizedTestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\InvalidOptionsException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
|
||||
*/
|
||||
public function testInvalidWidgetOption()
|
||||
{
|
||||
@ -33,7 +33,7 @@ class DateTypeTest extends LocalizedTestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\InvalidOptionsException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
|
||||
*/
|
||||
public function testInvalidInputOption()
|
||||
{
|
||||
|
@ -279,7 +279,7 @@ class FormFactoryTest extends \PHPUnit_Framework_TestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\InvalidOptionsException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
|
||||
*/
|
||||
public function testCreateNamedBuilderExpectsOptionsToExist()
|
||||
{
|
||||
@ -292,7 +292,7 @@ class FormFactoryTest extends \PHPUnit_Framework_TestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\InvalidOptionsException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
|
||||
*/
|
||||
public function testCreateNamedBuilderExpectsOptionsToBeInValidRange()
|
||||
{
|
||||
|
@ -19,7 +19,7 @@
|
||||
"php": ">=5.3.3",
|
||||
"symfony/event-dispatcher": "2.1.*",
|
||||
"symfony/locale": "2.1.*",
|
||||
"symfony/options-parser": "2.1.*"
|
||||
"symfony/options-resolver": "2.1.*"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/validator": "2.1.*",
|
||||
|
@ -9,7 +9,7 @@
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\OptionsParser\Exception;
|
||||
namespace Symfony\Component\OptionsResolver\Exception;
|
||||
|
||||
/**
|
||||
* Marker interface for the Options component.
|
@ -9,7 +9,7 @@
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\OptionsParser\Exception;
|
||||
namespace Symfony\Component\OptionsResolver\Exception;
|
||||
|
||||
/**
|
||||
* Exception thrown when an invalid option is passed.
|
@ -9,7 +9,7 @@
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\OptionsParser\Exception;
|
||||
namespace Symfony\Component\OptionsResolver\Exception;
|
||||
|
||||
/**
|
||||
* Exception thrown when a required option is missing.
|
@ -9,7 +9,7 @@
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\OptionsParser\Exception;
|
||||
namespace Symfony\Component\OptionsResolver\Exception;
|
||||
|
||||
/**
|
||||
* Thrown when an option definition is invalid.
|
@ -9,7 +9,7 @@
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\OptionsParser;
|
||||
namespace Symfony\Component\OptionsResolver;
|
||||
|
||||
use Closure;
|
||||
|
@ -9,12 +9,12 @@
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\OptionsParser;
|
||||
namespace Symfony\Component\OptionsResolver;
|
||||
|
||||
use ArrayAccess;
|
||||
use Iterator;
|
||||
use OutOfBoundsException;
|
||||
use Symfony\Component\OptionsParser\Exception\OptionDefinitionException;
|
||||
use Symfony\Component\OptionsResolver\Exception\OptionDefinitionException;
|
||||
|
||||
/**
|
||||
* Container for resolving inter-dependent options.
|
@ -9,18 +9,18 @@
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\OptionsParser;
|
||||
namespace Symfony\Component\OptionsResolver;
|
||||
|
||||
use Symfony\Component\OptionsParser\Exception\OptionDefinitionException;
|
||||
use Symfony\Component\OptionsParser\Exception\InvalidOptionsException;
|
||||
use Symfony\Component\OptionsParser\Exception\MissingOptionsException;
|
||||
use Symfony\Component\OptionsResolver\Exception\OptionDefinitionException;
|
||||
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
|
||||
use Symfony\Component\OptionsResolver\Exception\MissingOptionsException;
|
||||
|
||||
/**
|
||||
* Helper for merging default and concrete option values.
|
||||
*
|
||||
* @author Bernhard Schussek <bschussek@gmail.com>
|
||||
*/
|
||||
class OptionsParser
|
||||
class OptionsResolver
|
||||
{
|
||||
/**
|
||||
* The default option values.
|
||||
@ -29,13 +29,13 @@ class OptionsParser
|
||||
private $defaultOptions;
|
||||
|
||||
/**
|
||||
* The options known by the parser.
|
||||
* The options known by the resolver.
|
||||
* @var array
|
||||
*/
|
||||
private $knownOptions = array();
|
||||
|
||||
/**
|
||||
* The options required to be passed to parse().
|
||||
* The options required to be passed to resolve().
|
||||
* @var array
|
||||
*/
|
||||
private $requiredOptions = array();
|
||||
@ -100,7 +100,7 @@ class OptionsParser
|
||||
*
|
||||
* This method is identical to `setDefaults`, only that no default values
|
||||
* are configured for the options. If these options are not passed to
|
||||
* parse(), they will be missing in the final options array. This can be
|
||||
* resolve(), they will be missing in the final options array. This can be
|
||||
* helpful if you want to determine whether an option has been set or not.
|
||||
*
|
||||
* @param array $optionNames A list of option names.
|
||||
@ -121,7 +121,7 @@ class OptionsParser
|
||||
/**
|
||||
* Sets required options.
|
||||
*
|
||||
* If these options are not passed to parse(), an exception will be thrown.
|
||||
* If these options are not passed to resolve(), an exception will be thrown.
|
||||
*
|
||||
* @param array $optionNames A list of option names.
|
||||
*
|
||||
@ -189,7 +189,7 @@ class OptionsParser
|
||||
* @throws OptionDefinitionException If a cyclic dependency is detected
|
||||
* between two lazy options.
|
||||
*/
|
||||
public function parse(array $options)
|
||||
public function resolve(array $options)
|
||||
{
|
||||
$this->validateOptionNames(array_keys($options));
|
||||
|
@ -1,19 +1,19 @@
|
||||
OptionsParser Component
|
||||
OptionsResolver Component
|
||||
======================
|
||||
|
||||
OptionsParser helps to configure objects with option arrays.
|
||||
OptionsResolver helps at configuring objects with option arrays.
|
||||
|
||||
It supports default values on different levels of your class hierarchy,
|
||||
required options and lazy options where the default value depends on the
|
||||
concrete value of a different option.
|
||||
option constraints (required vs. optional, allowed values) and lazy options
|
||||
whose default value depends on the value of another option.
|
||||
|
||||
The following example demonstrates a Person class with two required options
|
||||
"firstName" and "lastName" and two optional options "age" and "gender", where
|
||||
the default value of "gender" is derived from the passed first name, if
|
||||
possible.
|
||||
possible, and may only be one of "male" and "female".
|
||||
|
||||
use Symfony\Component\OptionsParser\OptionsParser;
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
class Person
|
||||
{
|
||||
@ -21,21 +21,20 @@ possible.
|
||||
|
||||
public function __construct(array $options = array())
|
||||
{
|
||||
$parser = new OptionsParser();
|
||||
$this->setOptions($parser);
|
||||
$resolver = new OptionsResolver();
|
||||
$this->configureOptions($resolver);
|
||||
|
||||
$this->options = $parser->parse($options);
|
||||
$this->options = $resolver->resolve($options);
|
||||
}
|
||||
|
||||
protected function setOptions(OptionsParser $parser)
|
||||
protected function configure(OptionsResolver $resolver)
|
||||
{
|
||||
$parser->setRequired(array(
|
||||
$resolver->setRequired(array(
|
||||
'firstName',
|
||||
'lastName',
|
||||
'age',
|
||||
));
|
||||
|
||||
$parser->setDefaults(array(
|
||||
$resolver->setDefaults(array(
|
||||
'age' => null,
|
||||
'gender' => function (Options $options) {
|
||||
if (self::isKnownMaleName($options['firstName'])) {
|
||||
@ -46,7 +45,7 @@ possible.
|
||||
},
|
||||
));
|
||||
|
||||
$parser->setAllowedValues(array(
|
||||
$resolver->setAllowedValues(array(
|
||||
'gender' => array('male', 'female'),
|
||||
));
|
||||
}
|
||||
@ -69,35 +68,37 @@ We can also override the default values of the optional options:
|
||||
'age' => 30,
|
||||
));
|
||||
|
||||
Options can be added or changed in subclasses by overriding the `setOptions`
|
||||
Options can be added or changed in subclasses by overriding the `configure`
|
||||
method:
|
||||
|
||||
use Symfony\Component\OptionsParser\OptionsParser;
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
class Employee extends Person
|
||||
{
|
||||
protected function setOptions(OptionsParser $parser)
|
||||
protected function configure(OptionsResolver $resolver)
|
||||
{
|
||||
parent::setOptions($parser);
|
||||
parent::configure($resolver);
|
||||
|
||||
$parser->setRequired(array(
|
||||
$resolver->setRequired(array(
|
||||
'birthDate',
|
||||
));
|
||||
|
||||
$parser->setDefaults(array(
|
||||
$resolver->setDefaults(array(
|
||||
// $previousValue contains the default value configured in the
|
||||
// parent class
|
||||
'age' => function (Options $options, $previousValue) {
|
||||
return self::configureAgeFromBirthDate($options['birthDate']);
|
||||
return self::calculateAge($options['birthDate']);
|
||||
}
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Resources
|
||||
---------
|
||||
|
||||
You can run the unit tests with the following command:
|
||||
|
||||
phpunit -c src/Symfony/Component/OptionsParser/
|
||||
phpunit
|
@ -9,23 +9,23 @@
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\OptionsParser\Tests;
|
||||
namespace Symfony\Component\OptionsResolver\Tests;
|
||||
|
||||
use Symfony\Component\OptionsParser\OptionsParser;
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
class OptionsParserTest extends \PHPUnit_Framework_TestCase
|
||||
class OptionsResolverTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
private $options;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->parser = new OptionsParser();
|
||||
$this->resolver = new OptionsResolver();
|
||||
}
|
||||
|
||||
public function testParse()
|
||||
public function testResolve()
|
||||
{
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'one' => '1',
|
||||
'two' => '2',
|
||||
));
|
||||
@ -37,12 +37,12 @@ class OptionsParserTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertEquals(array(
|
||||
'one' => '1',
|
||||
'two' => '20',
|
||||
), $this->parser->parse($options));
|
||||
), $this->resolver->resolve($options));
|
||||
}
|
||||
|
||||
public function testParseLazy()
|
||||
public function testResolveLazy()
|
||||
{
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'one' => '1',
|
||||
'two' => function (Options $options) {
|
||||
return '20';
|
||||
@ -52,12 +52,12 @@ class OptionsParserTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertEquals(array(
|
||||
'one' => '1',
|
||||
'two' => '20',
|
||||
), $this->parser->parse(array()));
|
||||
), $this->resolver->resolve(array()));
|
||||
}
|
||||
|
||||
public function testParseLazyDependencyOnOptional()
|
||||
public function testResolveLazyDependencyOnOptional()
|
||||
{
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'one' => '1',
|
||||
'two' => function (Options $options) {
|
||||
return $options['one'] . '2';
|
||||
@ -71,18 +71,18 @@ class OptionsParserTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertEquals(array(
|
||||
'one' => '10',
|
||||
'two' => '102',
|
||||
), $this->parser->parse($options));
|
||||
), $this->resolver->resolve($options));
|
||||
}
|
||||
|
||||
public function testParseLazyDependencyOnMissingOptionalWithoutDefault()
|
||||
public function testResolveLazyDependencyOnMissingOptionalWithoutDefault()
|
||||
{
|
||||
$test = $this;
|
||||
|
||||
$this->parser->setOptional(array(
|
||||
$this->resolver->setOptional(array(
|
||||
'one',
|
||||
));
|
||||
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'two' => function (Options $options) use ($test) {
|
||||
$test->assertFalse(isset($options['one']));
|
||||
|
||||
@ -95,18 +95,18 @@ class OptionsParserTest extends \PHPUnit_Framework_TestCase
|
||||
|
||||
$this->assertEquals(array(
|
||||
'two' => '2',
|
||||
), $this->parser->parse($options));
|
||||
), $this->resolver->resolve($options));
|
||||
}
|
||||
|
||||
public function testParseLazyDependencyOnOptionalWithoutDefault()
|
||||
public function testResolveLazyDependencyOnOptionalWithoutDefault()
|
||||
{
|
||||
$test = $this;
|
||||
|
||||
$this->parser->setOptional(array(
|
||||
$this->resolver->setOptional(array(
|
||||
'one',
|
||||
));
|
||||
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'two' => function (Options $options) use ($test) {
|
||||
$test->assertTrue(isset($options['one']));
|
||||
|
||||
@ -121,15 +121,15 @@ class OptionsParserTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertEquals(array(
|
||||
'one' => '10',
|
||||
'two' => '102',
|
||||
), $this->parser->parse($options));
|
||||
), $this->resolver->resolve($options));
|
||||
}
|
||||
|
||||
public function testParseLazyDependencyOnRequired()
|
||||
public function testResolveLazyDependencyOnRequired()
|
||||
{
|
||||
$this->parser->setRequired(array(
|
||||
$this->resolver->setRequired(array(
|
||||
'one',
|
||||
));
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'two' => function (Options $options) {
|
||||
return $options['one'] . '2';
|
||||
},
|
||||
@ -142,20 +142,20 @@ class OptionsParserTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertEquals(array(
|
||||
'one' => '10',
|
||||
'two' => '102',
|
||||
), $this->parser->parse($options));
|
||||
), $this->resolver->resolve($options));
|
||||
}
|
||||
|
||||
public function testParseLazyReplaceDefaults()
|
||||
public function testResolveLazyReplaceDefaults()
|
||||
{
|
||||
$test = $this;
|
||||
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'one' => function (Options $options) use ($test) {
|
||||
$test->fail('Previous closure should not be executed');
|
||||
},
|
||||
));
|
||||
|
||||
$this->parser->replaceDefaults(array(
|
||||
$this->resolver->replaceDefaults(array(
|
||||
'one' => function (Options $options, $previousValue) {
|
||||
return '1';
|
||||
},
|
||||
@ -163,56 +163,56 @@ class OptionsParserTest extends \PHPUnit_Framework_TestCase
|
||||
|
||||
$this->assertEquals(array(
|
||||
'one' => '1',
|
||||
), $this->parser->parse(array()));
|
||||
), $this->resolver->resolve(array()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\InvalidOptionsException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
|
||||
*/
|
||||
public function testParseFailsIfNonExistingOption()
|
||||
public function testResolveFailsIfNonExistingOption()
|
||||
{
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'one' => '1',
|
||||
));
|
||||
|
||||
$this->parser->setRequired(array(
|
||||
$this->resolver->setRequired(array(
|
||||
'two',
|
||||
));
|
||||
|
||||
$this->parser->setOptional(array(
|
||||
$this->resolver->setOptional(array(
|
||||
'three',
|
||||
));
|
||||
|
||||
$this->parser->parse(array(
|
||||
$this->resolver->resolve(array(
|
||||
'foo' => 'bar',
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\MissingOptionsException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\MissingOptionsException
|
||||
*/
|
||||
public function testParseFailsIfMissingRequiredOption()
|
||||
public function testResolveFailsIfMissingRequiredOption()
|
||||
{
|
||||
$this->parser->setRequired(array(
|
||||
$this->resolver->setRequired(array(
|
||||
'one',
|
||||
));
|
||||
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'two' => '2',
|
||||
));
|
||||
|
||||
$this->parser->parse(array(
|
||||
$this->resolver->resolve(array(
|
||||
'two' => '20',
|
||||
));
|
||||
}
|
||||
|
||||
public function testParseSucceedsIfOptionValueAllowed()
|
||||
public function testResolveSucceedsIfOptionValueAllowed()
|
||||
{
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'one' => '1',
|
||||
));
|
||||
|
||||
$this->parser->setAllowedValues(array(
|
||||
$this->resolver->setAllowedValues(array(
|
||||
'one' => array('1', 'one'),
|
||||
));
|
||||
|
||||
@ -222,21 +222,21 @@ class OptionsParserTest extends \PHPUnit_Framework_TestCase
|
||||
|
||||
$this->assertEquals(array(
|
||||
'one' => 'one',
|
||||
), $this->parser->parse($options));
|
||||
), $this->resolver->resolve($options));
|
||||
}
|
||||
|
||||
public function testParseSucceedsIfOptionValueAllowed2()
|
||||
public function testResolveSucceedsIfOptionValueAllowed2()
|
||||
{
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'one' => '1',
|
||||
'two' => '2',
|
||||
));
|
||||
|
||||
$this->parser->addAllowedValues(array(
|
||||
$this->resolver->addAllowedValues(array(
|
||||
'one' => array('1'),
|
||||
'two' => array('2'),
|
||||
));
|
||||
$this->parser->addAllowedValues(array(
|
||||
$this->resolver->addAllowedValues(array(
|
||||
'one' => array('one'),
|
||||
'two' => array('two'),
|
||||
));
|
||||
@ -249,43 +249,43 @@ class OptionsParserTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertEquals(array(
|
||||
'one' => '1',
|
||||
'two' => 'two',
|
||||
), $this->parser->parse($options));
|
||||
), $this->resolver->resolve($options));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\InvalidOptionsException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
|
||||
*/
|
||||
public function testParseFailsIfOptionValueNotAllowed()
|
||||
public function testResolveFailsIfOptionValueNotAllowed()
|
||||
{
|
||||
$this->parser->setDefaults(array(
|
||||
$this->resolver->setDefaults(array(
|
||||
'one' => '1',
|
||||
));
|
||||
|
||||
$this->parser->setAllowedValues(array(
|
||||
$this->resolver->setAllowedValues(array(
|
||||
'one' => array('1', 'one'),
|
||||
));
|
||||
|
||||
$this->parser->parse(array(
|
||||
$this->resolver->resolve(array(
|
||||
'one' => '2',
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\OptionDefinitionException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\OptionDefinitionException
|
||||
*/
|
||||
public function testSetRequiredFailsIfDefaultIsPassed()
|
||||
{
|
||||
$this->parser->setRequired(array(
|
||||
$this->resolver->setRequired(array(
|
||||
'one' => '1',
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\OptionDefinitionException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\OptionDefinitionException
|
||||
*/
|
||||
public function testSetOptionalFailsIfDefaultIsPassed()
|
||||
{
|
||||
$this->parser->setOptional(array(
|
||||
$this->resolver->setOptional(array(
|
||||
'one' => '1',
|
||||
));
|
||||
}
|
@ -9,9 +9,9 @@
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\OptionsParser\Tests;
|
||||
namespace Symfony\Component\OptionsResolver\Tests;
|
||||
|
||||
use Symfony\Component\OptionsParser\Options;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
class OptionsTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
@ -50,7 +50,7 @@ class OptionsTest extends \PHPUnit_Framework_TestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\OptionDefinitionException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\OptionDefinitionException
|
||||
*/
|
||||
public function testSetNotSupportedAfterGet()
|
||||
{
|
||||
@ -60,7 +60,7 @@ class OptionsTest extends \PHPUnit_Framework_TestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\OptionDefinitionException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\OptionDefinitionException
|
||||
*/
|
||||
public function testUnsetNotSupportedAfterGet()
|
||||
{
|
||||
@ -151,7 +151,7 @@ class OptionsTest extends \PHPUnit_Framework_TestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\OptionsParser\Exception\OptionDefinitionException
|
||||
* @expectedException Symfony\Component\OptionsResolver\Exception\OptionDefinitionException
|
||||
*/
|
||||
public function testLazyOptionDisallowCyclicDependencies()
|
||||
{
|
@ -10,8 +10,8 @@
|
||||
*/
|
||||
|
||||
spl_autoload_register(function ($class) {
|
||||
if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\OptionsParser')) {
|
||||
if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\OptionsParser')).'.php')) {
|
||||
if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\OptionsResolver')) {
|
||||
if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\OptionsResolver')).'.php')) {
|
||||
require_once $file;
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "symfony/options-parser",
|
||||
"name": "symfony/options-resolver",
|
||||
"type": "library",
|
||||
"description": "Symfony OptionsParser Component",
|
||||
"description": "Symfony OptionsResolver Component",
|
||||
"keywords": [],
|
||||
"homepage": "http://symfony.com",
|
||||
"license": "MIT",
|
||||
@ -19,9 +19,9 @@
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": { "Symfony\\Component\\OptionsParser": "" }
|
||||
"psr-0": { "Symfony\\Component\\OptionsResolver": "" }
|
||||
},
|
||||
"target-dir": "Symfony/Component/OptionsParser",
|
||||
"target-dir": "Symfony/Component/OptionsResolver",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.1-dev"
|
@ -12,7 +12,7 @@
|
||||
bootstrap="Tests/bootstrap.php"
|
||||
>
|
||||
<testsuites>
|
||||
<testsuite name="Symfony OptionsParser Component Test Suite">
|
||||
<testsuite name="Symfony OptionsResolver Component Test Suite">
|
||||
<directory>./Tests/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
Reference in New Issue
Block a user