File tree Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -100,6 +100,7 @@ private function addDocumentManagersSection(ArrayNodeDefinition $rootNode)
100
100
->arrayNode ('filters ' )
101
101
->useAttributeAsKey ('name ' )
102
102
->prototype ('array ' )
103
+ ->fixXmlConfig ('parameter ' )
103
104
->beforeNormalization ()
104
105
->ifString ()
105
106
->then (function ($ v ) { return array ('class ' => $ v ); })
@@ -119,7 +120,14 @@ private function addDocumentManagersSection(ArrayNodeDefinition $rootNode)
119
120
->booleanNode ('enabled ' )->defaultFalse ()->end ()
120
121
->arrayNode ('parameters ' )
121
122
->treatNullLike (array ())
122
- ->prototype ('scalar ' )
123
+ ->useAttributeAsKey ('name ' )
124
+ ->prototype ('variable ' )
125
+ ->beforeNormalization ()
126
+ // Detect JSON object and array syntax (for XML)
127
+ ->ifTrue (function ($ v ) { return is_string ($ v ) && (preg_match ('/\[.*\]/ ' , $ v ) || preg_match ('/\{.*\}/ ' , $ v )); })
128
+ // Decode objects to associative arrays for consistency with YAML
129
+ ->then (function ($ v ) { return json_decode ($ v , true ); })
130
+ ->end ()
123
131
->end ()
124
132
->end ()
125
133
->end ()
Original file line number Diff line number Diff line change 123
123
</xsd : complexType >
124
124
125
125
<xsd : complexType name =" filter" >
126
+ <xsd : sequence >
127
+ <xsd : element name =" parameter" type =" filter-parameter" minOccurs =" 0" maxOccurs =" unbounded" />
128
+ </xsd : sequence >
126
129
<xsd : attribute name =" name" type =" xsd:string" use =" required" />
127
130
<xsd : attribute name =" class" type =" xsd:string" use =" required" />
128
131
<xsd : attribute name =" enabled" type =" xsd:boolean" />
129
132
</xsd : complexType >
130
133
134
+ <xsd : complexType name =" filter-parameter" >
135
+ <xsd : simpleContent >
136
+ <xsd : extension base =" xsd:string" >
137
+ <xsd : attribute name =" name" type =" xsd:string" use =" required" />
138
+ </xsd : extension >
139
+ </xsd : simpleContent >
140
+ </xsd : complexType >
141
+
131
142
<xsd : complexType name =" mapping" >
132
143
<xsd : attribute name =" name" type =" xsd:string" use =" required" />
133
144
<xsd : attribute name =" alias" type =" xsd:string" />
You can’t perform that action at this time.
0 commit comments