Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
thenInvalid example
->
thenUnset
(
)
->
end
(
)
->
end
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'simple_array_node'
)
->
end
(
)
->
enumNode
(
'enum_node'
)
->
values
(
[
'a', 'b'
]
)
->
end
(
)
->
variableNode
(
'variable_node'
)
->
end
(
)
->
scalarNode
(
'string_node'
)
->
validate
(
)
->
ifTrue
(
fn
(
$value
)
=> !\
is_string
(
$value
)
|| 'fail' ===
$value
)
->
thenInvalid
(
'%s is not a valid string'
)
->
end
(
)
->
end
(
)
->
end
(
)
;
return
$treeBuilder
;
}
}
class
ConfigurationWithArrayNodeRequiringOneElement
implements
ConfigurationInterface
{
public
function
getConfigTreeBuilder
(
)
: TreeBuilder
{
->
end
(
)
->
end
(
)
->
arrayNode
(
'supports'
)
->
beforeNormalization
(
)
->
ifString
(
)
->
then
(
fn
(
$v
)
=>
[
$v
]
)
->
end
(
)
->
prototype
(
'scalar'
)
->
cannotBeEmpty
(
)
->
validate
(
)
->
ifTrue
(
fn
(
$v
)
=> !
class_exists
(
$v
)
&& !
interface_exists
(
$v
, false
)
)
->
thenInvalid
(
'The supported class or interface "%s" does not exist.'
)
->
end
(
)
->
end
(
)
->
end
(
)
->
scalarNode
(
'support_strategy'
)
->
cannotBeEmpty
(
)
->
end
(
)
->
arrayNode
(
'initial_marking'
)
->
beforeNormalization
(
)
->
castToArray
(
)
->
end
(
)
->
defaultValue
(
[
]
)
->
prototype
(
'scalar'
)
->
end
(
)
->
end
(
)
return
true;
}
)
->
then
(
fn
(
$v
)
=>
[
'value' =>
$v
]
)
->
end
(
)
->
children
(
)
->
scalarNode
(
'id'
)
->
end
(
)
->
scalarNode
(
'type'
)
->
validate
(
)
->
ifNotInArray
(
[
'service'
]
)
->
thenInvalid
(
'The %s type is not supported'
)
->
end
(
)
->
end
(
)
->
variableNode
(
'value'
)
->
end
(
)
->
end
(
)
->
end
(
)
->
end
(
)
->
end
(
)
;
}
private
function
addTwigOptions
(
ArrayNodeDefinition
$rootNode
)
: void
{
->
children
(
)
->
enumNode
(
'strategy'
)
->
values
(
$this
->
getAccessDecisionStrategies
(
)
)
->
end
(
)
->
scalarNode
(
'service'
)
->
end
(
)
->
scalarNode
(
'strategy_service'
)
->
end
(
)
->
booleanNode
(
'allow_if_all_abstain'
)
->
defaultFalse
(
)
->
end
(
)
->
booleanNode
(
'allow_if_equal_granted_denied'
)
->
defaultTrue
(
)
->
end
(
)
->
end
(
)
->
validate
(
)
->
ifTrue
(
fn
(
$v
)
=>
isset
(
$v
[
'strategy'
]
,
$v
[
'service'
]
)
)
->
thenInvalid
(
'"strategy" and "service" cannot be used together.'
)
->
end
(
)
->
validate
(
)
->
ifTrue
(
fn
(
$v
)
=>
isset
(
$v
[
'strategy'
]
,
$v
[
'strategy_service'
]
)
)
->
thenInvalid
(
'"strategy" and "strategy_service" cannot be used together.'
)
->
end
(
)
->
validate
(
)
->
ifTrue
(
fn
(
$v
)
=>
isset
(
$v
[
'service'
]
,
$v
[
'strategy_service'
]
)
)
->
thenInvalid
(
'"service" and "strategy_service" cannot be used together.'
)
->
end
(
)
->
end
(
)
->
end
(
)
;
yield
[
'value',
[
'value'
]
]
;
yield
[
-3.14,
[
-3.14
]
]
;
yield
[
null,
[
null
]
]
;
yield
[
[
'value'
]
,
[
'value'
]
]
;
}
public
function
testThenInvalid
(
)
{
$this
->
expectException
(
InvalidConfigurationException::
class
)
;
$test
=
$this
->
getTestBuilder
(
)
->
ifString
(
)
->
thenInvalid
(
'Invalid value'
)
->
end
(
)
;
$this
->
finalizeTestBuilder
(
$test
)
;
}
public
function
testThenUnsetExpression
(
)
{
$test
=
$this
->
getTestBuilder
(
)
->
ifString
(
)
->
thenUnset
(
)
->
end
(
)
;
$this
->
assertEquals
(
[
]
,
$this
->
finalizeTestBuilder
(
$test
)
)
;
}