Skip to content

Commit d55437d

Browse files
committed
Support property-level extending for array properties
1 parent e64a980 commit d55437d

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

phpcs.xsd

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,14 @@
9292
</xs:attribute>
9393
<xs:attribute name="name" type="xs:string" use="required"></xs:attribute>
9494
<xs:attribute name="value" type="xs:string"></xs:attribute>
95+
<xs:attribute name="extend">
96+
<xs:simpleType>
97+
<xs:restriction base="xs:string">
98+
<xs:enumeration value="true"/>
99+
<xs:enumeration value="false"/>
100+
</xs:restriction>
101+
</xs:simpleType>
102+
</xs:attribute>
95103
</xs:complexType>
96104
</xs:element>
97105
</xs:sequence>

src/Ruleset.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -950,6 +950,13 @@ private function processRule($rule, $newSniffs, $depth=0)
950950
&& (string) $prop['type'] === 'array'
951951
) {
952952
$values = [];
953+
if (isset($prop['extend']) === true
954+
&& (string) $prop['extend'] === 'true'
955+
&& isset($this->ruleset[$code]['properties'][$name]) === true
956+
) {
957+
$values = $this->ruleset[$code]['properties'][$name];
958+
}
959+
953960
if (isset($prop->element) === true) {
954961
$printValue = '';
955962
foreach ($prop->element as $element) {

0 commit comments

Comments
 (0)