<?xml version="1.0"?>
<ruleset name="BitApps/wpp">
<description>Coding standard used for wp plugin dev.</description>
<exclude-pattern>*/tests/*</exclude-pattern>
<exclude-pattern>tests.*</exclude-pattern>
<exclude-pattern>*/vendor/*</exclude-pattern>
<exclude-pattern type="relative">^/frontend/*</exclude-pattern>
<rule ref="Internal.Tokenizer.Exception">
<type>error</type>
</rule>
<!-- Include the whole PEAR standard -->
<rule ref="PEAR">
<exclude name="PEAR.NamingConventions.ValidFunctionName" />
<exclude name="PEAR.NamingConventions.ValidVariableName" />
<exclude name="PEAR.Commenting.ClassComment" />
<exclude name="PEAR.Commenting.FileComment" />
<exclude name="PEAR.WhiteSpace.ScopeIndent" />
<!-- <exclude name="PEAR.Commenting.FileComment.Missing" /> -->
<exclude name="PEAR.Commenting.FunctionComment" />
<!-- <exclude name="PEAR.Commenting.FunctionComment.MissingParamComment" /> -->
<!-- <exclude name="PEAR.Commenting.FileComment.MissingCategoryTag" />
<exclude name="PEAR.Commenting.FileComment.MissingPackageTag" />
<exclude name="PEAR.Commenting.FileComment.MissingLinkTag" />
<exclude name="PEAR.Commenting.FileComment.MissingVersion" /> -->
<exclude name="PEAR.Commenting.InlineComment" />
<exclude name="PEAR.ControlStructures.MultiLineCondition" />
</rule>
<rule ref="Squiz.Arrays.ArrayBracketSpacing" />
<rule ref="Squiz.Arrays.ArrayDeclaration" />
<rule ref="Squiz.ControlStructures.ControlSignature" />
<rule ref="Squiz.Formatting.OperatorBracket">
<exclude name="Squiz.Formatting.OperatorBracket.MissingBrackets" />
</rule>
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing">
<exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpaceBeforeEquals" />
<exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpaceAfterEquals" />
</rule>
<rule ref="Squiz.Scope.MethodScope" />
<rule ref="Squiz.WhiteSpace.ControlStructureSpacing">
<exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpenBrace" />
</rule>
<rule ref="Squiz.WhiteSpace.MemberVarSpacing">
<exclude name="Squiz.WhiteSpace.MemberVarSpacing.FirstIncorrect" />
</rule>
<rule ref="Squiz.WhiteSpace.OperatorSpacing">
<exclude name="Squiz.WhiteSpace.OperatorSpacing.SpacingBefore" />
</rule>
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace" />
<rule ref="Generic.Arrays.DisallowLongArraySyntax" />
<rule ref="Generic.Commenting.Todo" />
<rule ref="Generic.ControlStructures.DisallowYodaConditions" />
<rule ref="Generic.ControlStructures.InlineControlStructure" />
<rule ref="Generic.Formatting.DisallowMultipleStatements" />
<rule ref="Generic.Formatting.SpaceAfterCast" />
<rule ref="Generic.NamingConventions.ConstructorName" />
<rule ref="Generic.PHP.DeprecatedFunctions" />
<rule ref="Generic.PHP.LowerCaseKeyword" />
<rule ref="Generic.Strings.UnnecessaryStringConcat" />
<rule ref="Generic.WhiteSpace.IncrementDecrementSpacing" />
<rule ref="PSR2.Classes.PropertyDeclaration">
<exclude name="PSR2.Classes.PropertyDeclaration.Underscore" />
</rule>
<rule ref="PSR2.Methods.MethodDeclaration" />
<rule ref="PSR2.Files.EndFileNewline" />
<rule ref="PSR12.Files.OpenTag" />
<rule ref="Zend.Files.ClosingTag" />
<!-- PEAR uses warnings for inline control structures, so switch back to errors -->
<rule ref="Generic.ControlStructures.InlineControlStructure">
<properties>
<property name="error" value="true" />
</properties>
</rule>
<rule ref="Generic.Files.LineLength">
<properties>
<property name="lineLimit" value="120" />
<property name="absoluteLineLimit" value="130" />
</properties>
</rule>
<!-- We use custom indent rules for arrays -->
<rule ref="Generic.Arrays.ArrayIndent" />
<rule ref="Squiz.Arrays.ArrayDeclaration">
<exclude name="Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed" />
</rule>
<rule ref="Squiz.Arrays.ArrayDeclaration.KeyNotAligned">
<severity>0</severity>
</rule>
<rule ref="Squiz.Arrays.ArrayDeclaration.ValueNotAligned">
<severity>0</severity>
</rule>
<rule ref="Squiz.Arrays.ArrayDeclaration.CloseBraceNotAligned">
<severity>0</severity>
</rule>
<rule ref="Squiz.Arrays.ArrayDeclaration.CloseBraceNewLine">
<severity>0</severity>
</rule>
<rule ref="Squiz.NamingConventions.ValidVariableName" />
<rule ref="Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps">
<severity>0</severity>
</rule>
<!-- Only one argument per line in multi-line function calls -->
<rule ref="PEAR.Functions.FunctionCallSignature">
<properties>
<property name="allowMultipleArguments" value="false" />
</properties>
</rule>
<rule ref="Generic.Formatting.MultipleStatementAlignment">
<exclude name="Generic.Formatting.MultipleStatementAlignment.NotSame" />
<exclude name="Generic.Formatting.MultipleStatementAlignment.Incorrect" />
<exclude name="Generic.Formatting.MultipleStatementAlignment.NotSameWarning" />
</rule>
<rule ref="Generic.PHP.ForbiddenFunctions">
<properties>
<property name="forbiddenFunctions" type="array">
<element key="sizeof" value="count" />
<element key="delete" value="unset" />
<element key="print" value="error_log" />
<element key="print_r" value="error_log" />
<element key="var_dump" value="error_log" />
<element key="echo" value="error_log" />
<element key="eval" value="null" />
<element key="create_function" value="null" />
</property>
</properties>
</rule>
</ruleset>