aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/phpCS.yml22
-rw-r--r--_test/phpcs.xml62
2 files changed, 84 insertions, 0 deletions
diff --git a/.github/workflows/phpCS.yml b/.github/workflows/phpCS.yml
new file mode 100644
index 000000000..2699db6cd
--- /dev/null
+++ b/.github/workflows/phpCS.yml
@@ -0,0 +1,22 @@
+name: PHP Code Style
+
+on: [push]
+
+jobs:
+ phpcs:
+ name: PHP CodeSniffer
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@7b8bf7af6a42e028cbcccf623bb8499b4d6edf02
+ with:
+ php-version: '7.4'
+ coverage: none
+
+ - name: Download PHPCS
+ run: wget https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
+
+ - name: run PHP codesniffer
+ run: php phpcs.phar -v --standard=_test/phpcs.xml
diff --git a/_test/phpcs.xml b/_test/phpcs.xml
index 4f38195a3..b24e9f5a0 100644
--- a/_test/phpcs.xml
+++ b/_test/phpcs.xml
@@ -41,6 +41,68 @@
<!-- we have lots of legacy classes without name spaces -->
<exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace"/>
+
+ <!-- Rules with automatic fixes that we want to adhere to, but currently don't -->
+ <exclude name="Generic.Formatting.DisallowMultipleStatements.SameLine"/>
+ <exclude name="Generic.Functions.FunctionCallArgumentSpacing.NoSpaceAfterComma"/>
+ <exclude name="Generic.Functions.FunctionCallArgumentSpacing.SpaceBeforeComma"/>
+ <exclude name="Generic.Functions.FunctionCallArgumentSpacing.TooMuchSpaceAfterComma"/>
+ <exclude name="Generic.PHP.LowerCaseKeyword.Found"/>
+ <exclude name="Generic.PHP.LowerCaseConstant.Found"/>
+ <exclude name="Generic.WhiteSpace.ScopeIndent.IncorrectExact"/>
+ <exclude name="Generic.WhiteSpace.ScopeIndent.Incorrect"/>
+ <exclude name="Generic.WhiteSpace.IncrementDecrementSpacing.SpaceAfterDecrement"/>
+ <exclude name="Generic.WhiteSpace.IncrementDecrementSpacing.SpaceAfterIncrement"/>
+
+ <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis"/>
+ <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword"/>
+ <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseBrace"/>
+ <exclude name="Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace"/>
+ <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.NoSpaceBeforeArrow"/>
+ <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.NoSpaceAfterArrow"/>
+ <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.SpacingBeforeAs"/>
+ <exclude name="Squiz.ControlStructures.ForLoopDeclaration.SpacingAfterSecond"/>
+ <exclude name="Squiz.ControlStructures.ForLoopDeclaration.NoSpaceAfterSecond"/>
+ <exclude name="Squiz.ControlStructures.ForLoopDeclaration.NoSpaceAfterFirst"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.NoSpaceBeforeArg"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpaceAfterEquals"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingAfterReference"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingBeforeClose"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpaceBeforeEquals"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.BraceOnSameLine"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.NewlineBeforeOpenBrace"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.CloseBracketLine"/>
+ <exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen"/>
+ <exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingBeforeClose"/>
+ <exclude name="Squiz.WhiteSpace.ScopeClosingBrace.ContentBefore"/>
+ <exclude name="Squiz.WhiteSpace.ScopeClosingBrace.Indent"/>
+ <exclude name="Squiz.WhiteSpace.SuperfluousWhitespace.EndLine"/>
+
+ <exclude name="PSR2.Classes.ClassDeclaration.CloseBraceAfterBody"/>
+ <exclude name="PSR2.Classes.ClassDeclaration.OpenBraceNewLine"/>
+ <exclude name="PSR2.Classes.PropertyDeclaration.StaticBeforeVisibility"/>
+ <exclude name="PSR2.ControlStructures.ControlStructureSpacing.SpacingAfterOpenBrace"/>
+ <exclude name="PSR2.ControlStructures.ControlStructureSpacing.SpaceBeforeCloseBrace"/>
+ <exclude name="PSR2.ControlStructures.ElseIfDeclaration.NotAllowed"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.BreakIndent"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.BreakNotNewLine"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.BodyOnNextLineCASE"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonDEFAULT"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonCASE"/>
+ <exclude name="PSR2.Files.EndFileNewline.TooMany"/>
+ <exclude name="PSR2.Files.EndFileNewline.NoneFound"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.Indent"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.EmptyLine"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.ContentAfterOpenBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.SpaceBeforeOpenBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.CloseBracketLine"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.SpaceBeforeCloseBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.SpaceAfterOpenBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.MultipleArguments"/>
+ <exclude name="PSR2.Methods.FunctionClosingBrace.SpacingBeforeClose"/>
+ <exclude name="PSR2.Methods.MethodDeclaration.StaticBeforeVisibility"/>
+ <exclude name="PSR2.Namespaces.NamespaceDeclaration.BlankLineAfter"/>
+ <exclude name="PSR2.Namespaces.UseDeclaration.SpaceAfterLastUse"/>
</rule>
<!-- disable some rules for certain paths, for legacy support -->