--- /dev/null
+<?xml version="1.0"?>
+<ruleset name="Purtle">
+ <!-- See https://github.com/wikimedia/mediawiki-tools-codesniffer/blob/master/MediaWiki/ruleset.xml -->
+ <rule ref="vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
+ <exclude name="MediaWiki.Commenting.FunctionComment" />
+ <exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment" />
+ </rule>
+
+ <rule ref="Generic.Files.InlineHTML" />
+ <rule ref="Generic.Files.OneClassPerFile" />
+ <rule ref="Generic.Files.OneInterfacePerFile" />
+ <rule ref="Generic.Files.OneTraitPerFile" />
+
+ <rule ref="Generic.Metrics.CyclomaticComplexity">
+ <exclude-pattern>RdfWriterFactory\.php</exclude-pattern>
+ </rule>
+ <rule ref="Generic.Metrics.NestingLevel" />
+
+ <rule ref="Generic.PHP.CharacterBeforePHPOpeningTag" />
+
+ <rule ref="MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName">
+ <!-- Exclude test methods like "testGivenInvalidInput_methodThrowsException". -->
+ <exclude-pattern>tests/phpunit/*Test*\.php</exclude-pattern>
+ </rule>
+
+ <rule ref="PSR1" />
+ <rule ref="PSR1.Files.SideEffects.FoundWithSymbols">
+ <exclude-pattern>Purtle\.php</exclude-pattern>
+ </rule>
+ <rule ref="PSR1.Methods.CamelCapsMethodName.NotCamelCaps">
+ <!-- Exclude test methods like "testGivenInvalidInput_methodThrowsException". -->
+ <exclude-pattern>tests/phpunit/*Test*\.php</exclude-pattern>
+ </rule>
+
+ <rule ref="PSR2.Files" />
+
+ <rule ref="Squiz.Classes.SelfMemberReference" />
+ <rule ref="Squiz.ControlStructures.ControlSignature" />
+ <rule ref="Squiz.Functions.FunctionDuplicateArgument" />
+ <rule ref="Squiz.Functions.GlobalFunction" />
+ <rule ref="Squiz.Scope" />
+
+ <rule ref="Squiz.WhiteSpace.FunctionSpacing">
+ <properties>
+ <property name="spacing" value="1" />
+ </properties>
+ </rule>
+ <rule ref="Squiz.WhiteSpace.OperatorSpacing">
+ <properties>
+ <property name="ignoreNewlines" value="true" />
+ </properties>
+ </rule>
+
+ <file>.</file>
+ <arg name="extensions" value="php" />
+ <arg name="encoding" value="utf8" />
+ <exclude-pattern type="relative">^vendor/</exclude-pattern>
+</ruleset>