steevanb/symfony-options-resolver

为 Symfony OptionsResolver 组件添加功能。

1.1.0 2019-12-06 11:16 UTC

This package is auto-updated.

Last update: 2024-09-06 22:35:21 UTC


README

version doctrine php Lines Total Downloads Scrutinizer

symfony-options-resolver

为 Symfony OptionsResolver 组件添加功能。

变更日志

安装

composer require "steevanb/symfony-options-resolver": "^1.1.0"

示例

定义具有默认值的可选选项

use steevanb\SymfonyOptionsResolver\OptionsResolver;

$optionsResolver = new OptionsResolver();

# Configure an optional option 
$optionsResolver->configureOption('foo', ['string'], 'default', ['default', 'value1', 'value2']);

# Equivalent to call original OptionsResolver methods:
$optionsResolver
    ->setDefined('foo')
    ->setAllowedTypes('foo', ['string'])
    ->setDefault('foo', 'default')
    ->setAllowedValues('foo', ['default', 'value1', 'value2']);

定义必需选项

use steevanb\SymfonyOptionsResolver\OptionsResolver;

$optionsResolver = new OptionsResolver();

# Configure a required option 
$optionsResolver->configureRequiredOption('foo', ['string'], ['value1', 'value2']);

# Equivalent to call original OptionsResolver methods:
$optionsResolver
    ->setRequired('foo')
    ->setAllowedTypes('foo', ['string'])
    ->setAllowedValues('foo', ['value1', 'value2']);

允许未知键

use steevanb\SymfonyOptionsResolver\OptionsResolver;

# This will not throw an exception because extraKey is not configured
(new OptionsResolver())
    ->configureRequiredOption('foo', ['string'], ['value1', 'value2'])
    ->setAllowUnknownKeys(true)
    ->resolve(['foo' => 'value1', 'extraKey' => 'extraValue']);