Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
allowedValues example
$this
->resolver->
define
(
'foo'
)
;
$this
->resolver->
define
(
'foo'
)
;
}
public
function
testResolveOptionsDefinedByOptionConfigurator
(
)
{
$this
->resolver->
define
(
'foo'
)
->
required
(
)
->
deprecated
(
'vendor/package', '1.1'
)
->
default
(
'bar'
)
->
allowedTypes
(
'string', 'bool'
)
->
allowedValues
(
'bar', 'zab'
)
->
normalize
(
static
fn
(
Options
$options
,
$value
)
=>
$value
)
->
info
(
'info message'
)
;
$introspector
=
new
OptionsResolverIntrospector
(
$this
->resolver
)
;
$this
->
assertTrue
(
true,
$this
->resolver->
isDefined
(
'foo'
)
)
;
$this
->
assertTrue
(
true,
$this
->resolver->
isDeprecated
(
'foo'
)
)
;
$this
->
assertTrue
(
true,
$this
->resolver->
hasDefault
(
'foo'
)
)
;
$this
->
assertSame
(
'bar',
$introspector
->
getDefault
(
'foo'
)
)
;
$this
->
assertSame
(
[
'string', 'bool'
]
,
$introspector
->
getAllowedTypes
(
'foo'
)
)
;
$this
->
assertSame
(
[
'bar', 'zab'
]
,
$introspector
->
getAllowedValues
(
'foo'
)
)
;
throw
$e
;
}
throw
new
\
LogicException
(
sprintf
(
'Cannot parse interval "%s", please use a valid unit as described on https://www.php.net/datetime.formats.relative.',
$m
[
1
]
)
)
;
}
}
;
$options
->
define
(
'id'
)
->
required
(
)
->
define
(
'policy'
)
->
required
(
)
->
allowedValues
(
'token_bucket', 'fixed_window', 'sliding_window', 'no_limit'
)
->
define
(
'limit'
)
->
allowedTypes
(
'int'
)
->
define
(
'interval'
)
->
allowedTypes
(
'string'
)
->
normalize
(
$intervalNormalizer
)
->
define
(
'rate'
)
->
default
(
function
DOptionsResolver
$rate
)
use
(
$intervalNormalizer
)
{
$rate
->
define
(
'amount'
)
->
allowedTypes
(
'int'
)
->
default
(
1
)
->
define
(
'interval'
)
->
allowedTypes
(
'string'
)
->
normalize
(
$intervalNormalizer
)
;
}
)
->
normalize
(
function
DOptions
$options
,
$value
)
{