1<?xml version="1.0"?> 2<ruleset name="DokuWiki Coding Standard Standard" namespace="DokuWiki\CS\Standard"> 3 <description>Coding Standard used for DokuWiki</description> 4 5 <!-- default config --> 6 <arg name="colors"/> 7 <arg value="sp"/> 8 <arg name="extensions" value="php"/> 9 10 <ini name="memory_limit" value="-1" /> 11 12 <!-- where to look --> 13 <file>../inc</file> 14 <file>../lib</file> 15 <file>../bin</file> 16 <file>../doku.php</file> 17 <file>../index.php</file> 18 <file>../feed.php</file> 19 <file>../install.php</file> 20 21 <!-- skip these completely --> 22 <exclude-pattern>*/lang/*/lang.php</exclude-pattern> 23 <exclude-pattern>*/lang/*/settings.php</exclude-pattern> 24 <exclude-pattern>*/_test/*</exclude-pattern> 25 26 <!-- 3rd party libs, these should be moved to composer some day --> 27 <exclude-pattern>*/inc/DifferenceEngine.php</exclude-pattern> 28 <exclude-pattern>*/inc/IXR_Library.php</exclude-pattern> 29 <exclude-pattern>*/inc/JSON.php</exclude-pattern> 30 <exclude-pattern>*/inc/JpegMeta.php</exclude-pattern> 31 <exclude-pattern>*/lib/plugins/authad/adLDAP</exclude-pattern> 32 33 <!-- deprecated files to be removed soon --> 34 <exclude-pattern>*/inc/cli.php</exclude-pattern> 35 36 <!-- rules on top of PSR-2 --> 37 <rule ref="PSR2"> 38 <!-- the following rule is not in PSR-2 and breaks the guardian pattern --> 39 <exclude name="Generic.ControlStructures.InlineControlStructure.NotAllowed"/> 40 41 <!-- we have lots of legacy classes without name spaces --> 42 <exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace"/> 43 </rule> 44 45 <!-- disable some rules for certain paths, for legacy support --> 46 <rule ref="Squiz.Classes.ValidClassName.NotCamelCaps"> 47 <exclude-pattern>*/inc/parser/*</exclude-pattern> 48 49 <exclude-pattern>*/inc/Plugin.php</exclude-pattern> 50 <exclude-pattern>*/inc/PluginInterface.php</exclude-pattern> 51 <exclude-pattern>*/inc/PluginTrait.php</exclude-pattern> 52 53 <exclude-pattern>*/lib/plugins/*.php</exclude-pattern> 54 <exclude-pattern>*/lib/plugins/*/action.php</exclude-pattern> 55 <exclude-pattern>*/lib/plugins/*/action/*.php</exclude-pattern> 56 <exclude-pattern>*/lib/plugins/*/admin.php</exclude-pattern> 57 <exclude-pattern>*/lib/plugins/*/admin/*.php</exclude-pattern> 58 <exclude-pattern>*/lib/plugins/*/auth.php</exclude-pattern> 59 <exclude-pattern>*/lib/plugins/*/auth/*.php</exclude-pattern> 60 <exclude-pattern>*/lib/plugins/*/cli.php</exclude-pattern> 61 <exclude-pattern>*/lib/plugins/*/cli/*.php</exclude-pattern> 62 <exclude-pattern>*/lib/plugins/*/helper.php</exclude-pattern> 63 <exclude-pattern>*/lib/plugins/*/helper/*.php</exclude-pattern> 64 <exclude-pattern>*/lib/plugins/*/remote.php</exclude-pattern> 65 <exclude-pattern>*/lib/plugins/*/remote/*.php</exclude-pattern> 66 <exclude-pattern>*/lib/plugins/*/syntax.php</exclude-pattern> 67 <exclude-pattern>*/lib/plugins/*/syntax/*.php</exclude-pattern> 68 </rule> 69 70 <!-- underscore skips exposing public methods to remote api --> 71 <rule ref="PSR2.Methods.MethodDeclaration.Underscore"> 72 <exclude-pattern>*/inc/Extension/RemotePlugin.php</exclude-pattern> 73 <exclude-pattern>*/lib/plugins/*/remote.php</exclude-pattern> 74 <exclude-pattern>*/lib/plugins/*/remote/*.php</exclude-pattern> 75 </rule> 76 77 <rule ref="PSR1.Methods.CamelCapsMethodName.NotCamelCaps"> 78 <exclude-pattern>*/inc/Extension/PluginInterface.php</exclude-pattern> 79 <exclude-pattern>*/inc/Extension/PluginTrait.php</exclude-pattern> 80 81 <exclude-pattern>*/inc/parser/*</exclude-pattern> 82 </rule> 83 84 <!-- for now we mix declarations and execution here FIXME --> 85 <rule ref="PSR1.Files.SideEffects"> 86 <exclude-pattern>*/doku.php</exclude-pattern> 87 <exclude-pattern>*/install.php</exclude-pattern> 88 <exclude-pattern>*/feed.php</exclude-pattern> 89 <exclude-pattern>*/inc/load.php</exclude-pattern> 90 <exclude-pattern>*/bin/*.php</exclude-pattern> 91 <exclude-pattern>*/lib/exe/*.php</exclude-pattern> 92 </rule> 93 94</ruleset> 95