OptionsResolverWrapper
class OptionsResolverWrapper extends OptionsResolver
Methods
$this | setDefault(string $option, mixed $value) Sets the default value of a given option. | from OptionsResolver |
$this | setDefaults(array $defaults) Sets a list of default values. | from OptionsResolver |
bool | hasDefault(string $option) Returns whether a default value is set for an option. | from OptionsResolver |
$this | setRequired(string|string[] $optionNames) Marks one or more options as required. | from OptionsResolver |
bool | isRequired(string $option) Returns whether an option is required. | from OptionsResolver |
string[] | getRequiredOptions() Returns the names of all required options. | from OptionsResolver |
bool | isMissing(string $option) Returns whether an option is missing a default value. | from OptionsResolver |
string[] | getMissingOptions() Returns the names of all options missing a default value. | from OptionsResolver |
$this | setDefined(string|string[] $optionNames) Defines a valid option name. | from OptionsResolver |
bool | isDefined(string $option) Returns whether an option is defined. | from OptionsResolver |
string[] | getDefinedOptions() Returns the names of all defined options. | from OptionsResolver |
$this | setNormalizer(string $option, Closure $normalizer) Sets the normalizer for an option. | |
$this | setAllowedValues(string $option, mixed $allowedValues) Sets allowed values for an option. | |
$this | addAllowedValues(string $option, mixed $allowedValues) Adds allowed values for an option. | |
$this | setAllowedTypes(string $option, string|string[] $allowedTypes) Sets allowed types for an option. | |
$this | addAllowedTypes(string $option, string|string[] $allowedTypes) Adds allowed types for an option. | |
$this | remove(string|string[] $optionNames) Removes the option with the given name. | from OptionsResolver |
$this | clear() Removes all options. | from OptionsResolver |
array | resolve(array $options = array()) Merges options with the default values stored in the container and validates them. | |
mixed | offsetGet(string $option) Returns the resolved value of an option. | from OptionsResolver |
bool | offsetExists(string $option) Returns whether a resolved option with the given name exists. | from OptionsResolver |
offsetSet($option, $value) Not supported. | from OptionsResolver | |
offsetUnset($option) Not supported. | from OptionsResolver | |
int | count() Returns the number of set options. | from OptionsResolver |
getUndefinedOptions() |
Details
$this setDefault(string $option, mixed $value)
Sets the default value of a given option.
If the default value should be set based on other options, you can pass a closure with the following signature:
function (Options $options) {
// ...
}
The closure will be evaluated when {@link resolve()} is called. The closure has access to the resolved values of other options through the passed {@link Options} instance:
function (Options $options) {
if (isset($options['port'])) {
// ...
}
}
If you want to access the previously set default value, add a second argument to the closure's signature:
$options->setDefault('name', 'Default Name');
$options->setDefault('name', function (Options $options, $previousValue) {
// 'Default Name' === $previousValue
});
This is mostly useful if the configuration of the {@link Options} object is spread across different locations of your code, such as base and sub-classes.
Parameters
string | $option | The name of the option |
mixed | $value | The default value of the option |
Return Value
$this |
Exceptions
AccessException | If called from a lazy option or normalizer |
$this setDefaults(array $defaults)
Sets a list of default values.
Parameters
array | $defaults | The default values to set |
Return Value
$this |
Exceptions
AccessException | If called from a lazy option or normalizer |
bool hasDefault(string $option)
Returns whether a default value is set for an option.
Returns true if {@link setDefault()} was called for this option. An option is also considered set if it was set to null.
Parameters
string | $option | The option name |
Return Value
bool | Whether a default value is set |
$this setRequired(string|string[] $optionNames)
Marks one or more options as required.
Parameters
string|string[] | $optionNames | One or more option names |
Return Value
$this |
Exceptions
AccessException | If called from a lazy option or normalizer |
bool isRequired(string $option)
Returns whether an option is required.
An option is required if it was passed to {@link setRequired()}.
Parameters
string | $option | The name of the option |
Return Value
bool | Whether the option is required |
string[] getRequiredOptions()
Returns the names of all required options.
Return Value
string[] | The names of the required options |
See also
isRequired() |
bool isMissing(string $option)
Returns whether an option is missing a default value.
An option is missing if it was passed to {@link setRequired()}, but not to {@link setDefault()}. This option must be passed explicitly to {@link resolve()}, otherwise an exception will be thrown.
Parameters
string | $option | The name of the option |
Return Value
bool | Whether the option is missing |
string[] getMissingOptions()
Returns the names of all options missing a default value.
Return Value
string[] | The names of the missing options |
See also
isMissing() |
$this setDefined(string|string[] $optionNames)
Defines a valid option name.
Defines an option name without setting a default value. The option will be accepted when passed to {@link resolve()}. When not passed, the option will not be included in the resolved options.
Parameters
string|string[] | $optionNames | One or more option names |
Return Value
$this |
Exceptions
AccessException | If called from a lazy option or normalizer |
bool isDefined(string $option)
Returns whether an option is defined.
Returns true for any option passed to {@link setDefault()}, {@link setRequired()} or {@link setDefined()}.
Parameters
string | $option | The option name |
Return Value
bool | Whether the option is defined |
string[] getDefinedOptions()
Returns the names of all defined options.
Return Value
string[] | The names of the defined options |
See also
isDefined() |
$this setNormalizer(string $option, Closure $normalizer)
Sets the normalizer for an option.
The normalizer should be a closure with the following signature:
php
function (Options $options, $value) {
// ...
}
The closure is invoked when {@link resolve()} is called. The closure has access to the resolved values of other options through the passed {@link Options} instance.
The second parameter passed to the closure is the value of the option.
The resolved option value is set to the return value of the closure.
Parameters
string | $option | The option name |
Closure | $normalizer | The normalizer |
Return Value
$this |
Exceptions
UndefinedOptionsException | If the option is undefined |
AccessException | If called from a lazy option or normalizer |
$this setAllowedValues(string $option, mixed $allowedValues)
Sets allowed values for an option.
Instead of passing values, you may also pass a closures with the following signature:
function ($value) {
// return true or false
}
The closure receives the value as argument and should return true to accept the value and false to reject the value.
Parameters
string | $option | The option name |
mixed | $allowedValues | One or more acceptable values/closures |
Return Value
$this |
Exceptions
UndefinedOptionsException | If the option is undefined |
AccessException | If called from a lazy option or normalizer |
$this addAllowedValues(string $option, mixed $allowedValues)
Adds allowed values for an option.
The values are merged with the allowed values defined previously.
Instead of passing values, you may also pass a closures with the following signature:
function ($value) {
// return true or false
}
The closure receives the value as argument and should return true to accept the value and false to reject the value.
Parameters
string | $option | The option name |
mixed | $allowedValues | One or more acceptable values/closures |
Return Value
$this |
Exceptions
UndefinedOptionsException | If the option is undefined |
AccessException | If called from a lazy option or normalizer |
$this setAllowedTypes(string $option, string|string[] $allowedTypes)
Sets allowed types for an option.
Any type for which a corresponding is_
Parameters
string | $option | The option name |
string|string[] | $allowedTypes | One or more accepted types |
Return Value
$this |
Exceptions
UndefinedOptionsException | If the option is undefined |
AccessException | If called from a lazy option or normalizer |
$this addAllowedTypes(string $option, string|string[] $allowedTypes)
Adds allowed types for an option.
The types are merged with the allowed types defined previously.
Any type for which a corresponding is_
Parameters
string | $option | The option name |
string|string[] | $allowedTypes | One or more accepted types |
Return Value
$this |
Exceptions
UndefinedOptionsException | If the option is undefined |
AccessException | If called from a lazy option or normalizer |
$this remove(string|string[] $optionNames)
Removes the option with the given name.
Undefined options are ignored.
Parameters
string|string[] | $optionNames | One or more option names |
Return Value
$this |
Exceptions
AccessException | If called from a lazy option or normalizer |
$this clear()
Removes all options.
Return Value
$this |
Exceptions
AccessException | If called from a lazy option or normalizer |
array resolve(array $options = array())
Merges options with the default values stored in the container and validates them.
Exceptions are thrown if:
- Undefined options are passed;
- Required options are missing;
- Options have invalid types;
- Options have invalid values.
Parameters
array | $options | A map of option names to values |
Return Value
array | The merged and validated options |
Exceptions
UndefinedOptionsException | If an option name is undefined |
InvalidOptionsException | If an option doesn't fulfill the specified validation rules |
MissingOptionsException | If a required option is missing |
OptionDefinitionException | If there is a cyclic dependency between lazy options and/or normalizers |
NoSuchOptionException | If a lazy option reads an unavailable option |
AccessException | If called from a lazy option or normalizer |
mixed offsetGet(string $option)
Returns the resolved value of an option.
Parameters
string | $option | The option name |
Return Value
mixed | The option value |
Exceptions
AccessException | If accessing this method outside of {@link resolve()} |
NoSuchOptionException | If the option is not set |
InvalidOptionsException | If the option doesn't fulfill the specified validation rules |
OptionDefinitionException | If there is a cyclic dependency between lazy options and/or normalizers |
bool offsetExists(string $option)
Returns whether a resolved option with the given name exists.
Parameters
string | $option | The option name |
Return Value
bool | Whether the option is set |
Exceptions
AccessException | If accessing this method outside of {@link resolve()} |
See also
\ArrayAccess::offsetExists() |
offsetSet($option, $value)
Not supported.
Parameters
$option | ||
$value |
Exceptions
AccessException |
offsetUnset($option)
Not supported.
Parameters
$option |
Exceptions
AccessException |
int count()
Returns the number of set options.
This may be only a subset of the defined options.
Return Value
int | Number of options |
Exceptions
AccessException | If accessing this method outside of {@link resolve()} |
See also
\Countable::count() |
getUndefinedOptions()
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/4.0/Symfony/Component/Form/Util/OptionsResolverWrapper.html