]> git.openstreetmap.org Git - nominatim.git/blobdiff - phpcs.xml
document how to extract subset of TIGER data needed for API tests
[nominatim.git] / phpcs.xml
index 6c7ce19efed671a83ebd08353132cda077227773..ab9d3969284b0961f0b4f31c9d4243de05556e5d 100644 (file)
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -8,29 +8,41 @@
   <!-- https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PSR2/ruleset.xml -->
   <rule ref="PSR2"/>
 
   <!-- https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PSR2/ruleset.xml -->
   <rule ref="PSR2"/>
 
+  <exclude-pattern>./lib/template/*html*</exclude-pattern>
+  <exclude-pattern>./lib/template/includes/</exclude-pattern>
+  <exclude-pattern>./module/</exclude-pattern>
+  <exclude-pattern>./website/css</exclude-pattern>
+  <exclude-pattern>./website/js</exclude-pattern>
 
 
-
-
-  <!-- currently 300 warnings, we set a limit later -->
   <rule ref="Generic.Files.LineLength">
     <properties>
   <rule ref="Generic.Files.LineLength">
     <properties>
-     <property name="lineLimit" value="9999"/>
-     <property name="absoluteLineLimit" value="0"/>
+     <property name="lineLimit" value="194"/>
+     <property name="absoluteLineLimit" value="194"/>
     </properties>
   </rule>
 
 
     </properties>
   </rule>
 
 
+  <!-- "A file should declare new symbols (classes, functions, constants, etc.) and cause no
+    other side effects, or it should execute logic with side effects, but should not do both."
+    ... we have too many script and includes to be able to enforce that.
+     -->
+  <rule ref="PSR1.Files.SideEffects.FoundWithSymbols">
+    <severity>0</severity>
+  </rule>
+
+
+
+  <!-- eval, system, etc -->
+  <rule ref="Generic.PHP.ForbiddenFunctions">
+    <properties>
+      <property name="forbiddenFunctions" type="array" value="sizeof=>count,delete=>unset,print=>echo,create_function=>null,eval=>null"/>
+    </properties>
+  </rule>
 
   <!-- **************************************************************
        DOCUMENTATION
        ************************************************************** -->
 
 
   <!-- **************************************************************
        DOCUMENTATION
        ************************************************************** -->
 
-  <rule ref="PEAR.Commenting.FileComment.Missing">
-    <severity>0</severity>
-  </rule>
-  <rule ref="PEAR.Commenting.ClassComment.Missing">
-    <severity>0</severity>
-  </rule>    
   <rule ref="PEAR.Commenting.FunctionComment.Missing">
     <severity>0</severity>
   </rule>
   <rule ref="PEAR.Commenting.FunctionComment.Missing">
     <severity>0</severity>
   </rule>
        COMMENTS
        ************************************************************** -->
 
        COMMENTS
        ************************************************************** -->
 
+  <!-- any comments in the lines before function() are better than forcing
+       a PHPdoc style right now -->
+  <rule ref="PEAR.Commenting.FunctionComment.WrongStyle">
+    <severity>0</severity>
+  </rule>
+
   <!-- We allow comments after statements -->
   <rule ref="Squiz.Commenting.PostStatementComment.Found">
     <severity>0</severity>
   <!-- We allow comments after statements -->
   <rule ref="Squiz.Commenting.PostStatementComment.Found">
     <severity>0</severity>
   <rule ref="Squiz.Commenting.InlineComment.NoSpaceBefore">
     <severity>0</severity>
   </rule>
   <rule ref="Squiz.Commenting.InlineComment.NoSpaceBefore">
     <severity>0</severity>
   </rule>
+  <!-- blank lines after inline comments are fine -->
+  <rule ref="Squiz.Commenting.InlineComment.SpacingAfter">
+    <severity>0</severity>
+  </rule>
 
   <!-- Comments don't have to start uppercase -->
   <rule ref="Squiz.Commenting.InlineComment.NotCapital">
 
   <!-- Comments don't have to start uppercase -->
   <rule ref="Squiz.Commenting.InlineComment.NotCapital">
   <rule ref="Squiz.Commenting.InlineComment.InvalidEndChar">
     <severity>0</severity>
   </rule>
   <rule ref="Squiz.Commenting.InlineComment.InvalidEndChar">
     <severity>0</severity>
   </rule>
-
-  <!-- we don't need '} // functionname()' at end of large blocks -->
-  <rule ref="Squiz.Commenting.ClosingDeclarationComment.Missing">
-    <severity>0</severity>
-  </rule>
-  <!-- .. same for conditions -->
-  <rule ref="Squiz.Commenting.LongConditionClosingComment.Missing">
+  <!-- Empty comments are fine -->
+  <rule ref="Squiz.Commenting.InlineComment.Empty">
     <severity>0</severity>
   </rule>
 
 
 
 
     <severity>0</severity>
   </rule>
 
 
 
 
-
   <!-- **************************************************************
        INDENTATION, SPACING
        ************************************************************** -->
 
   <!-- **************************************************************
        INDENTATION, SPACING
        ************************************************************** -->
 
-  <!-- We don't need 2 blank lines after function -->
-  <rule ref="Squiz.WhiteSpace.FunctionSpacing.After">
-    <severity>0</severity>
-  </rule>
-
-  <!-- Aligned looks nicer, but causes too many warnings currently -->
-  <rule ref="Generic.Formatting.MultipleStatementAlignment.NotSame">
-    <severity>0</severity>
-  </rule>
+  <rule ref="Squiz.Arrays.ArrayDeclaration.KeyNotAligned" />
 
   <!-- Aligned looks nicer, but causes too many warnings currently -->
   <rule ref="Squiz.Arrays.ArrayDeclaration.DoubleArrowNotAligned">
 
   <!-- Aligned looks nicer, but causes too many warnings currently -->
   <rule ref="Squiz.Arrays.ArrayDeclaration.DoubleArrowNotAligned">
 
 
 
 
 
 
-
   <!-- **************************************************************
        VARIABLES
        ************************************************************** -->
   <!-- **************************************************************
        VARIABLES
        ************************************************************** -->
     <severity>0</severity>
   </rule>
 
     <severity>0</severity>
   </rule>
 
+  <!-- array() instead of [] for initialisation -->
+  <rule ref="Generic.Arrays.DisallowShortArraySyntax.Found" />
+
+
+
+
+  <!-- **************************************************************
+       STRING QUOTING
+       ************************************************************** -->
+
+  <!-- Prefer single quoted strings -->
+  <rule ref="Squiz.Strings.DoubleQuoteUsage" />
+
+  <!-- We allow variabled inside double-quoted strings "abc $somevar" -->
+  <rule ref="Squiz.Strings.DoubleQuoteUsage.ContainsVar">
+    <severity>0</severity>
+  </rule>
+
+
 
 
 
 
 
 
   <rule ref="Generic.ControlStructures.InlineControlStructure.NotAllowed">
     <severity>0</severity>
   </rule>
   <rule ref="Generic.ControlStructures.InlineControlStructure.NotAllowed">
     <severity>0</severity>
   </rule>
-  <rule ref="Generic.ControlStructures.InlineControlStructure.Discouraged">
-    <severity>0</severity>
-  </rule>
-  <rule ref="Squiz.PHP.DisallowInlineIf.Found">
-    <severity>0</severity>
-  </rule>
 
   <!-- We allow "if (a)". No need for "if (a === TRUE)" -->
   <rule ref="Squiz.Operators.ComparisonOperatorUsage.ImplicitTrue">
 
   <!-- We allow "if (a)". No need for "if (a === TRUE)" -->
   <rule ref="Squiz.Operators.ComparisonOperatorUsage.ImplicitTrue">
     <severity>0</severity>
   </rule>
 
     <severity>0</severity>
   </rule>
 
-  <!-- We allow
-              if (a)
-              {
-  -->
-  <rule ref="PEAR.ControlStructures.MultiLineCondition.NewlineBeforeOpenBrace">
-    <severity>0</severity>
-  </rule>
-  <!-- ... same -->
-  <rule ref="Squiz.WhiteSpace.ControlStructureSpacing.NoLineAfterClose">
-    <severity>0</severity>
-  </rule>
-  <!-- ... same for foreach/while etc -->
-  <rule ref="PEAR.ControlStructures.ControlSignature">
-    <severity>0</severity>
-  </rule>
-  <!-- ... same -->
-  <rule ref="Squiz.WhiteSpace.FunctionClosingBraceSpace.SpacingBeforeClose">
-    <severity>0</severity>
-  </rule>
 
 
 </ruleset>
 
 
 </ruleset>