-
-
Notifications
You must be signed in to change notification settings - Fork 9.7k
Closed
Labels
Description
For many projects or even Symfony components, the full functionality of the OptionsResolver is overkill. Nevertheless, the component contains code that is very useful, but not easily accessible.
I suggest to make the validate*
methods in the OptionsResolver class accessible through a simple low-level API such as:
use Symfony\Component\OptionsResolver\Options;
// throws MissingOptionsException if the option(s) is (are) missing
Options::require($options, 'toTz');
// throws InvalidOptionsException if any of the options have an invalid type
Options::validateTypes($options, array(
'fromTz' => 'string',
'toTz' => 'string',
'dateFormat' => 'string',
'timeFormat' => 'string',
'calendar' => array('null', 'integer'),
));
// throws InvalidOptionsException if any of the options contain an invalid value
Options::validateValues($options, array(
'calendar' => array(
\IntlDateFormatter::GREGORIAN,
\IntlDateFormatter::TRADITIONAL,
),
));
// throws InvalidOptionsException if any of the given options is not known
$options = Options::resolve($options, array(
'fromTz' => null,
'toTz' => null,
'dateFormat' => \IntlDateFormatter::MEDIUM,
'timeFormat' => \IntlDateFormatter::SHORT,
'calendar' => \IntlDateFormatter::GREGORIAN,
));
Opinions?