aboutsummaryrefslogtreecommitdiff
path: root/phpcs.xml
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2024-08-01 20:31:40 +0200
committerGravatar GitHub <noreply@github.com> 2024-08-01 20:31:40 +0200
commitd2247221bbf23a8fe19f66ea4ad7d0a59ffaa5b4 (patch)
treef5174c1b1d174cd41dca20f350e1297894e1c6fa /phpcs.xml
parentb2c8cb74562b2f7cb290abd61ff1b6f35475f23a (diff)
Minor update whitespace PHPCS rules (#6666)
* Minor update whitespace PHPCS rules To simplify our configuration, apply more rules, and be clearer about what is added or removed compared with PSR12. Does not change our current conventions, but just a bit more consistent. * Forgotten *.phtml * Sort exclusion patterns + add a few for Extensions repo * Relaxed some rules
Diffstat (limited to 'phpcs.xml')
-rw-r--r--phpcs.xml157
1 files changed, 72 insertions, 85 deletions
diff --git a/phpcs.xml b/phpcs.xml
index bc9610e6c..64002d10d 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -1,122 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
-<ruleset name="FreshRSS Ruleset">
- <description>Created with the PHP Coding Standard Generator. https://edorian.github.com/php-coding-standard-generator/</description>
- <arg name="extensions" value="php,phtml,css,js"/>
+<ruleset name="FreshRSS">
+ <arg name="extensions" value="php,phtml"/>
<arg name="tab-width" value="4"/>
<exclude-pattern>./.git/</exclude-pattern>
- <exclude-pattern>./lib/SimplePie/</exclude-pattern>
- <exclude-pattern>./lib/marienfressinaud/</exclude-pattern>
- <exclude-pattern>./lib/phpgt/</exclude-pattern>
- <exclude-pattern>./lib/phpmailer/</exclude-pattern>
- <exclude-pattern>./lib/http-conditional.php</exclude-pattern>
- <exclude-pattern>./node_modules/</exclude-pattern>
<exclude-pattern>./data/config.php</exclude-pattern>
<exclude-pattern>./data/update.php</exclude-pattern>
<exclude-pattern>./data/users/*/config.php</exclude-pattern>
<exclude-pattern>./extensions/</exclude-pattern>
+ <exclude-pattern>./lib/http-conditional.php</exclude-pattern>
+ <exclude-pattern>./lib/marienfressinaud/</exclude-pattern>
+ <exclude-pattern>./lib/phpgt/</exclude-pattern>
+ <exclude-pattern>./lib/phpmailer/</exclude-pattern>
+ <exclude-pattern>./lib/SimplePie/</exclude-pattern>
+ <exclude-pattern>./node_modules/</exclude-pattern>
<exclude-pattern>./p/scripts/vendor/</exclude-pattern>
<exclude-pattern>./vendor/</exclude-pattern>
- <exclude-pattern>*.min.js$</exclude-pattern>
- <!-- Duplicate class names are not allowed -->
+ <!-- Additional exclusions for Extensions: -->
+ <exclude-pattern>./symbolic/</exclude-pattern>
+ <exclude-pattern>./third-party/</exclude-pattern>
+ <exclude-pattern>./tmp/</exclude-pattern>
+ <exclude-pattern>./xExtension-TTRSS_API</exclude-pattern>
+ <rule ref="PSR12">
+ <exclude name="Generic.ControlStructures.InlineControlStructure.NotAllowed"/>
+ <exclude name="Generic.Formatting.DisallowMultipleStatements.SameLine"/>
+ <exclude name="Generic.WhiteSpace.DisallowTabIndent.NonIndentTabsUsed"/>
+ <exclude name="Generic.WhiteSpace.DisallowTabIndent.TabsUsed"/>
+ <exclude name="Generic.WhiteSpace.DisallowTabIndent.TabsUsedHeredocCloser"/>
+ <exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace"/>
+ <exclude name="PSR1.Classes.ClassDeclaration.MultipleClasses"/>
+ <exclude name="PSR1.Files.SideEffects.FoundWithSymbols"/>
+ <exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps"/>
+ <exclude name="PSR12.Classes.OpeningBraceSpace.Found"/><!-- Consider using PSR12 defaults instead -->
+ <exclude name="PSR12.ControlStructures.ControlStructureSpacing.CloseParenthesisLine"/>
+ <exclude name="PSR12.ControlStructures.ControlStructureSpacing.FirstExpressionLine"/><!-- Consider using PSR12 defaults instead -->
+ <exclude name="PSR12.Files.FileHeader.IncorrectOrder"/><!-- Consider using PSR12 defaults instead -->
+ <exclude name="PSR12.Files.FileHeader.SpacingAfterBlock"/><!-- Consider using PSR12 defaults instead -->
+ <exclude name="PSR12.Traits.UseDeclaration.MultipleImport"/>
+ <exclude name="PSR2.Classes.ClassDeclaration.CloseBraceAfterBody"/><!-- Consider using PSR12 defaults instead -->
+ <exclude name="PSR2.Classes.ClassDeclaration.OpenBraceNewLine"/><!-- Consider using PSR12 defaults instead -->
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.BodyOnNextLineCASE"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.BreakNotNewLine"/>
+ <exclude name="PSR2.Functions.FunctionCallSignature.ContentAfterOpenBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.CloseBracketLine"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.ContentAfterOpenBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.Indent"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.MultipleArguments"/>
+ <exclude name="PSR2.Methods.MethodDeclaration.Underscore"/>
+ <exclude name="Squiz.Classes.ValidClassName.NotCamelCaps"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.BraceOnSameLine"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.CloseBracketLine"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.ContentAfterBrace"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.FirstParamSpacing"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.Indent"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.OneParamPerLine"/>
+ <exclude name="Squiz.WhiteSpace.ScopeClosingBrace.ContentBefore"/>
+ </rule>
<rule ref="Generic.Classes.DuplicateClassName"/>
- <!-- Statements must not be empty -->
<rule ref="Generic.CodeAnalysis.EmptyStatement"/>
- <!-- Unconditional if-statements are not allowed -->
<rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>
- <!-- Do not use final statements inside final classes -->
<rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/>
- <!-- Do not override methods to call their parent -->
<rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/>
- <!-- Maximum line length -->
<rule ref="Generic.Files.LineLength">
- <!-- For language strings maximum line lengths make little sense. -->
- <exclude-pattern>./app/i18n/</exclude-pattern>
- <!-- Don’t enforce line length on the HTML; the point is to improve legibility, not reduce it -->
- <exclude-pattern>*.phtml$</exclude-pattern>
<properties>
<property name="lineLimit" value="165"/>
<property name="absoluteLineLimit" value="190"/>
</properties>
+ <exclude-pattern>/app/i18n/*\.php$</exclude-pattern>
+ <exclude-pattern>*\.phtml$</exclude-pattern>
</rule>
- <!-- When calling a function: -->
- <!-- Do not add a space before the opening parenthesis -->
- <!-- Do not add a space after the opening parenthesis -->
- <!-- Do not add a space before the closing parenthesis -->
- <!-- Do not add a space before a comma -->
- <!-- Add a space after a comma -->
- <rule ref="Generic.Functions.FunctionCallArgumentSpacing"/>
- <rule ref="Generic.PHP.DisallowShortOpenTag">
- <exclude name="Generic.PHP.DisallowShortOpenTag.EchoFound"/>
- </rule>
- <rule ref="Generic.PHP.DeprecatedFunctions" />
- <!-- Use UPPERCARE for constants -->
- <rule ref="Generic.NamingConventions.UpperCaseConstantName"/>
- <!-- Use lowercase for 'true', 'false' and 'null' -->
- <rule ref="Generic.PHP.LowerCaseConstant"/>
- <!-- Use a single string instead of concatenating -->
+ <rule ref="Generic.Functions.OpeningFunctionBraceKernighanRitchie"/><!-- Consider using PSR12 defaults instead -->
+ <rule ref="Generic.PHP.DeprecatedFunctions"/>
<rule ref="Generic.Strings.UnnecessaryStringConcat">
<properties>
- <!-- Allow string concatenating across multiple lines -->
<property name="allowMultiline" value="true"/>
</properties>
</rule>
- <!-- Use tabs for indentation -->
<rule ref="Generic.WhiteSpace.DisallowSpaceIndent"/>
- <!-- Parameters with default values must appear last in functions -->
- <rule ref="PEAR.Functions.ValidDefaultValue"/>
- <!-- Use 'elseif' instead of 'else if' -->
- <rule ref="PSR2.ControlStructures.ElseIfDeclaration"/>
- <!-- Do not add spaces after opening or before closing bracket -->
- <rule ref="PSR2.ControlStructures.ControlStructureSpacing"/>
- <!-- Add a new line at the end of a file -->
- <rule ref="PSR2.Files.EndFileNewline"/>
- <!-- Use Unix newlines -->
- <rule ref="Generic.Files.LineEndings">
- <properties>
- <property name="eolChar" value="\n" />
- </properties>
+ <rule ref="Generic.WhiteSpace.ScopeIndent.Incorrect">
+ <exclude-pattern>*\.phtml$</exclude-pattern>
+ <exclude-pattern>/app/install.php</exclude-pattern>
</rule>
- <!-- Add space after closing parenthesis -->
- <!-- Add body into new line -->
- <!-- Close body in new line -->
- <rule ref="Squiz.ControlStructures.ControlSignature">
- <!-- No space after keyword (before opening parenthesis) -->
- <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword"/>
+ <rule ref="Generic.WhiteSpace.ScopeIndent.IncorrectExact">
+ <exclude-pattern>*\.phtml$</exclude-pattern>
+ <exclude-pattern>/app/install.php</exclude-pattern>
</rule>
- <!-- When declaring a function: -->
- <!-- Do not add a space before a comma -->
- <!-- Add a space after a comma -->
- <!-- Add a space before and after an equal sign -->
- <rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing">
+ <rule ref="Internal.NoCodeFound">
+ <exclude-pattern>*\.phtml$</exclude-pattern>
+ </rule>
+ <!-- <rule ref="Squiz.Commenting.ClassComment.Missing"/> --><!-- Consider adding -->
+ <rule ref="Squiz.ControlStructures.ControlSignature">
+ <include-pattern>*\.phtml$</include-pattern>
<properties>
- <property name="equalsSpacing" value="1"/>
+ <property name="requiredSpacesBeforeColon" value="0" />
</properties>
</rule>
- <!-- Do not add spaces when casting -->
- <rule ref="Squiz.WhiteSpace.CastSpacing"/>
- <!-- Operators must have a space around them -->
+ <rule ref="Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace">
+ <exclude-pattern>*\.phtml$</exclude-pattern>
+ </rule>
<rule ref="Squiz.WhiteSpace.OperatorSpacing">
<properties>
- <property name="ignoreNewlines" value="true" />
+ <property name="ignoreNewlines" value="true"/>
</properties>
</rule>
- <!-- Do not add a whitespace before a semicolon -->
- <rule ref="Squiz.WhiteSpace.SemicolonSpacing"/>
- <!-- Do not add whitespace at start or end of a file or end of a line -->
- <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace"/>
- <!-- Expected space after closing parenthesis -->
- <rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis">
- <exclude-pattern>.phtml$</exclude-pattern>
- </rule>
- <!-- Opening brace on same line as function declaration -->
- <rule ref="Generic.Functions.OpeningFunctionBraceKernighanRitchie" />
- <!-- Newline required after opening brace -->
- <rule ref="Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace">
- <exclude-pattern>.phtml$</exclude-pattern>
- <exclude-pattern>.js$</exclude-pattern>
- </rule>
- <!-- No PHP code was found in this file -->
- <rule ref="Internal.NoCodeFound">
- <exclude-pattern>.phtml$</exclude-pattern>
+ <rule ref="Squiz.WhiteSpace.ScopeClosingBrace.Indent">
+ <exclude-pattern>*\.phtml$</exclude-pattern>
</rule>
+ <rule ref="Squiz.WhiteSpace.SemicolonSpacing"/>
</ruleset>