Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
scalarPrototype example
class
ConfigurationWithArrayNodeRequiringOneElement
implements
ConfigurationInterface
{
public
function
getConfigTreeBuilder
(
)
: TreeBuilder
{
$treeBuilder
=
new
TreeBuilder
(
'env_extension'
)
;
$treeBuilder
->
getRootNode
(
)
->
children
(
)
->
arrayNode
(
'nodes'
)
->
isRequired
(
)
->
requiresAtLeastOneElement
(
)
->
scalarPrototype
(
)
->
end
(
)
->
end
(
)
->
end
(
)
;
return
$treeBuilder
;
}
}
class
EnvExtension
extends
Extension
{
private
ConfigurationInterface
$configuration
;
private
array
$config
;
$treeBuilder
=
new
TreeBuilder
(
'storefront'
)
;
$rootNode
=
$treeBuilder
->
getRootNode
(
)
;
$rootNode
->
children
(
)
->
arrayNode
(
'reverse_proxy'
)
->
children
(
)
->
booleanNode
(
'enabled'
)
->
end
(
)
->
booleanNode
(
'use_varnish_xkey'
)
->
defaultFalse
(
)
->
end
(
)
->
arrayNode
(
'hosts'
)
->
performNoDeepMerging
(
)
->
scalarPrototype
(
)
->
end
(
)
->
end
(
)
->
integerNode
(
'max_parallel_invalidations'
)
->
defaultValue
(
2
)
->
end
(
)
->
scalarNode
(
'redis_url'
)
->
end
(
)
->
scalarNode
(
'ban_method'
)
->
defaultValue
(
'BAN'
)
->
end
(
)
->
arrayNode
(
'ban_headers'
)
->
performNoDeepMerging
(
)
->
defaultValue
(
[
]
)
->
scalarPrototype
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'purge_all'
)
->
children
(
)
->
scalarNode
(
'ban_method'
)
->
defaultValue
(
'BAN'
)
->
end
(
)
->
arrayNode
(
'ban_headers'
)
->
performNoDeepMerging
(
)
->
defaultValue
(
[
]
)
->
scalarPrototype
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'urls'
)
->
performNoDeepMerging
(
)
->
defaultValue
(
[
'/'
]
)
->
scalarPrototype
(
)
->
end
(
)
->
end
(
)
->
end
(
)
->
end
(
)
->
end
(
)
->
booleanNode
(
'cache_enabled'
)
->
defaultTrue
(
)
->
end
(
)
->
arrayNode
(
'sets'
)
->
useAttributeAsKey
(
'name'
)
->
arrayPrototype
(
)
->
children
(
)
->
scalarNode
(
'name'
)
->
end
(
)
->
arrayNode
(
'tags'
)
->
defaultValue
(
[
]
)
->
scalarPrototype
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'attributes'
)
->
defaultValue
(
[
]
)
->
scalarPrototype
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'custom_attributes'
)
->
defaultValue
(
[
]
)
->
arrayPrototype
(
)
->
children
(
)
->
arrayNode
(
'tags'
)
->
defaultValue
(
[
]
)
->
arrayNode
(
'ssl'
)
->
children
(
)
->
scalarNode
(
'cert_path'
)
->
end
(
)
->
scalarNode
(
'cert_password'
)
->
end
(
)
->
scalarNode
(
'cert_key_path'
)
->
end
(
)
->
scalarNode
(
'cert_key_password'
)
->
end
(
)
->
booleanNode
(
'verify_server_cert'
)
->
defaultValue
(
true
)
->
end
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'index_settings'
)
->
variablePrototype
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'analysis'
)
->
performNoDeepMerging
(
)
->
variablePrototype
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'language_analyzer_mapping'
)
->
defaultValue
(
[
]
)
->
scalarPrototype
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'dynamic_templates'
)
->
performNoDeepMerging
(
)
->
variablePrototype
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'product'
)
->
children
(
)
->
arrayNode
(
'custom_fields_mapping'
)
->
variablePrototype
(
)
->
end
(
)
->
end
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'search'
)
->
children
(
)
->
scalarNode
(
'timeout'
)
->
end
(
)
public
function
testPrototypeVariable
(
)
{
$node
=
new
ArrayNodeDefinition
(
'root'
)
;
$this
->
assertEquals
(
$node
->
prototype
(
'variable'
)
,
$node
->
variablePrototype
(
)
)
;
}
public
function
testPrototypeScalar
(
)
{
$node
=
new
ArrayNodeDefinition
(
'root'
)
;
$this
->
assertEquals
(
$node
->
prototype
(
'scalar'
)
,
$node
->
scalarPrototype
(
)
)
;
}
public
function
testPrototypeBoolean
(
)
{
$node
=
new
ArrayNodeDefinition
(
'root'
)
;
$this
->
assertEquals
(
$node
->
prototype
(
'boolean'
)
,
$node
->
booleanPrototype
(
)
)
;
}
public
function
testPrototypeInteger
(
)
{
$node
=
new
ArrayNodeDefinition
(
'root'
)
;
->
canBeEnabled
(
)
->
fixXmlConfig
(
'private_header'
)
->
children
(
)
->
booleanNode
(
'debug'
)
->
defaultValue
(
'%kernel.debug%'
)
->
end
(
)
->
enumNode
(
'trace_level'
)
->
values
(
[
'none', 'short', 'full'
]
)
->
end
(
)
->
scalarNode
(
'trace_header'
)
->
end
(
)
->
integerNode
(
'default_ttl'
)
->
end
(
)
->
arrayNode
(
'private_headers'
)
->
performNoDeepMerging
(
)
->
scalarPrototype
(
)
->
end
(
)
->
end
(
)
->
arrayNode
(
'skip_response_headers'
)
->
performNoDeepMerging
(
)
->
scalarPrototype
(
)
->
end
(
)
->
end
(
)
->
booleanNode
(
'allow_reload'
)
->
end
(
)
->
booleanNode
(
'allow_revalidate'
)
->
end
(
)
->
integerNode
(
'stale_while_revalidate'
)
->
end
(
)
->
integerNode
(
'stale_if_error'
)
->
end
(
)
->
booleanNode
(
'terminate_on_cache_hit'
)
->
end
(
)
->
end
(
)
->
scalarNode
(
'realm'
)
->
defaultNull
(
)
->
end
(
)
->
arrayNode
(
'token_extractors'
)
->
fixXmlConfig
(
'token_extractors'
)
->
beforeNormalization
(
)
->
ifString
(
)
->
then
(
fn
(
$v
)
=>
[
$v
]
)
->
end
(
)
->
cannotBeEmpty
(
)
->
defaultValue
(
[
'security.access_token_extractor.header',
]
)
->
scalarPrototype
(
)
->
end
(
)
->
end
(
)
;
$tokenHandlerNodeBuilder
=
$builder
->
arrayNode
(
'token_handler'
)
->
example
(
[
'id' => 'App\Security\CustomTokenHandler',
]
)
->
beforeNormalization
(
)
->
ifString
(
)