adding a PHP Code Sniffer config file
This commit is contained in:
		
							
								
								
									
										213
									
								
								src/phpcs.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										213
									
								
								src/phpcs.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,213 @@ | ||||
| <?xml version="1.0"?> | ||||
| <ruleset name="Laravel Standards" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd"> | ||||
|     <description>PHP Codesniffer ruleset to follow Laravel's coding style</description> | ||||
|     <rule ref="Generic.Classes.DuplicateClassName"> | ||||
|         <exclude name="Generic.CodeAnalysis.EmptyStatement.DetectedIf"/> | ||||
|     </rule> | ||||
|     <rule ref="Generic.CodeAnalysis.EmptyStatement"/> | ||||
|     <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop"/> | ||||
|     <rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall"/> | ||||
|     <rule ref="Generic.CodeAnalysis.JumbledIncrementer"/> | ||||
|     <rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/> | ||||
|     <rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/> | ||||
|     <rule ref="Generic.CodeAnalysis.UnusedFunctionParameter"> | ||||
|         <exclude-pattern>/app/Http/Resources/*\.php</exclude-pattern> | ||||
|         <exclude-pattern>/routes/*\.php</exclude-pattern> | ||||
|     </rule> | ||||
|     <rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/> | ||||
|     <rule ref="Generic.Commenting.DocComment"> | ||||
|         <exclude name="Generic.Commenting.DocComment.TagValueIndent"/> | ||||
|         <exclude name="Generic.Commenting.DocComment.NonParamGroup"/> | ||||
|     </rule> | ||||
|     <rule ref="Generic.ControlStructures.InlineControlStructure"/> | ||||
|     <rule ref="Generic.Files.ByteOrderMark"/> | ||||
|     <rule ref="Generic.Files.LineEndings"> | ||||
|         <exclude name="Generic.Files.LineEndings.InvalidEOLChar"/> | ||||
|     </rule> | ||||
|     <rule ref="Generic.Formatting.DisallowMultipleStatements"/> | ||||
|     <rule ref="Generic.Formatting.SpaceAfterCast"/> | ||||
|     <rule ref="Generic.Formatting.SpaceAfterNot"/> | ||||
|     <rule ref="Generic.Functions.CallTimePassByReference"/> | ||||
|     <rule ref="Generic.Functions.FunctionCallArgumentSpacing"/> | ||||
|     <rule ref="Generic.Functions.OpeningFunctionBraceBsdAllman"/> | ||||
|     <rule ref="Generic.Metrics.CyclomaticComplexity"> | ||||
|         <properties> | ||||
|             <property name="complexity" value="20"/> | ||||
|             <property name="absoluteComplexity" value="25"/> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="Generic.Metrics.NestingLevel"> | ||||
|         <properties> | ||||
|             <property name="nestingLevel" value="5"/> | ||||
|             <property name="absoluteNestingLevel" value="15"/> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="Generic.NamingConventions.ConstructorName"/> | ||||
|     <rule ref="Generic.NamingConventions.CamelCapsFunctionName"> | ||||
|         <exclude-pattern>*/tests</exclude-pattern> | ||||
|     </rule> | ||||
|     <rule ref="Generic.PHP.LowerCaseConstant"/> | ||||
|     <rule ref="Generic.PHP.DeprecatedFunctions"/> | ||||
|     <rule ref="Generic.PHP.DisallowShortOpenTag"/> | ||||
|     <rule ref="Generic.PHP.ForbiddenFunctions"/> | ||||
|     <rule ref="Generic.PHP.NoSilencedErrors"/> | ||||
|     <rule ref="Generic.WhiteSpace.DisallowTabIndent"/> | ||||
|     <rule ref="Generic.WhiteSpace.ScopeIndent"> | ||||
|         <properties> | ||||
|             <property name="indent" value="4"/> | ||||
|             <property name="tabIndent" value="true"/> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="MySource.PHP.EvalObjectFactory"/> | ||||
|     <rule ref="PSR1.Classes.ClassDeclaration"/> | ||||
|     <rule ref="PSR1.Files.SideEffects"> | ||||
|         <exclude-pattern>*/artisan</exclude-pattern> | ||||
|     </rule> | ||||
|     <rule ref="PSR1.Files.SideEffects"/> | ||||
|     <rule ref="PSR2.Classes.ClassDeclaration"/> | ||||
|     <rule ref="PSR2.Classes.PropertyDeclaration"/> | ||||
|     <rule ref="PSR2.ControlStructures.ControlStructureSpacing"/> | ||||
|     <rule ref="PSR2.ControlStructures.ElseIfDeclaration"/> | ||||
|     <rule ref="PSR2.ControlStructures.SwitchDeclaration"/> | ||||
|     <rule ref="PSR2.Files.EndFileNewline"/> | ||||
|     <rule ref="PSR2.Methods.MethodDeclaration"/> | ||||
|     <rule ref="PSR2.Namespaces.NamespaceDeclaration"/> | ||||
|     <rule ref="PSR2.Namespaces.UseDeclaration"/> | ||||
|     <rule ref="PSR1"> | ||||
|         <exclude-pattern>*.php</exclude-pattern> | ||||
|         <exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps"/> | ||||
|  | ||||
|         <exclude-pattern>database/*</exclude-pattern> | ||||
|     </rule> | ||||
|     <rule ref="PSR2"> | ||||
|         <exclude name="PSR2.ControlStructures.SwitchDeclaration.BodyOnNextLineCASE" /> | ||||
|         <properties> | ||||
|             <property name="lineLimit" value="130"/> | ||||
|             <property name="absoluteLineLimit" value="135"/> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="Squiz.Arrays.ArrayDeclaration"> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.ValueNotAligned" /> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.KeyNotAligned" /> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.DoubleArrowNotAligned" /> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.ValueNotAligned" /> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.CloseBraceNotAligned" /> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.ValueNoNewline" /> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.MultiLineNotAllowed" /> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed" /> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.IndexNoNewline" /> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.CloseBraceNewLine" /> | ||||
|         <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.NewlineBeforeOpenBrace" /> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.NoKeySpecified" /> | ||||
|         <exclude name="Squiz.Arrays.ArrayDeclaration.KeySpecified" /> | ||||
|     </rule> | ||||
|     <rule ref="Squiz.PHP.CommentedOutCode"/> | ||||
|     <rule ref="Squiz.PHP.DisallowSizeFunctionsInLoops"/> | ||||
|     <rule ref="Squiz.PHP.DiscouragedFunctions"> | ||||
|         <properties> | ||||
|             <property name="error" value="true"/> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="Squiz.PHP.Eval"/> | ||||
|     <rule ref="Squiz.PHP.GlobalKeyword"/> | ||||
|     <rule ref="Squiz.PHP.Heredoc"/> | ||||
|     <rule ref="Squiz.PHP.LowercasePHPFunctions"/> | ||||
|     <rule ref="Squiz.PHP.NonExecutableCode"/> | ||||
|     <rule ref="Squiz.Scope.MemberVarScope"/> | ||||
|     <rule ref="Squiz.Scope.MethodScope"/> | ||||
|     <rule ref="Squiz.Scope.StaticThisUsage"/> | ||||
|     <rule ref="Squiz.WhiteSpace.CastSpacing"/> | ||||
|     <rule ref="Squiz.WhiteSpace.ControlStructureSpacing"/> | ||||
|     <rule ref="Squiz.WhiteSpace.LanguageConstructSpacing"/> | ||||
|     <rule ref="Squiz.WhiteSpace.LogicalOperatorSpacing"/> | ||||
|     <rule ref="Squiz.WhiteSpace.ObjectOperatorSpacing"> | ||||
|         <properties> | ||||
|             <property name="ignoreNewlines" value="true"/> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="Squiz.WhiteSpace.OperatorSpacing"> | ||||
|         <properties> | ||||
|             <property name="ignoreNewlines" value="true"/> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="Squiz.WhiteSpace.PropertyLabelSpacing"/> | ||||
|     <rule ref="Squiz.WhiteSpace.ScopeClosingBrace"/> | ||||
|     <rule ref="Squiz.WhiteSpace.ScopeKeywordSpacing"/> | ||||
|     <rule ref="Squiz.WhiteSpace.SemicolonSpacing"/> | ||||
|     <rule ref="Squiz.Strings.DoubleQuoteUsage.NotRequired"/> | ||||
|     <rule ref="Zend.Files.ClosingTag"/> | ||||
|  | ||||
|     <!-- Custom Sniffs --> | ||||
|     <rule ref="SlevomatCodingStandard.Namespaces.UnusedUses"> | ||||
|         <properties> | ||||
|             <property name="searchAnnotations" value="true"/> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="SlevomatCodingStandard.Namespaces.UseFromSameNamespace"/> | ||||
|     <rule ref="SlevomatCodingStandard.Namespaces.AlphabeticallySortedUses"> | ||||
|         <properties> | ||||
|             <property name="caseSensitive" value="true"/> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="SlevomatCodingStandard.Namespaces.FullyQualifiedClassNameInAnnotation"/> | ||||
|     <rule ref="SlevomatCodingStandard.PHP.UselessSemicolon"/> | ||||
|     <rule ref="SlevomatCodingStandard.Classes.MethodSpacing"> | ||||
|         <properties> | ||||
|             <property name="minLinesCount" value="1"/> | ||||
|             <property name="maxLinesCount" value="1"/> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="SlevomatCodingStandard.Functions.ArrowFunctionDeclaration"> | ||||
|         <properties> | ||||
|             <property name="spacesCountAfterKeyword" value="1"/> | ||||
|             <property name="spacesCountBeforeArrow" value="1"/> | ||||
|             <property name="spacesCountAfterArrow" value="1"/> | ||||
|             <property name="allowMultiLine" value="true"/> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="SlevomatCodingStandard.Files.TypeNameMatchesFileName"> | ||||
|         <properties> | ||||
|             <property name="rootNamespaces" type="array"> | ||||
|                 <element key="app" value="App"/> | ||||
|                 <element key="database/factories" value="Database\Factories"/> | ||||
|                 <element key="database/seeders" value="Database\Seeders"/> | ||||
|                 <element key="tests" value="Tests"/> | ||||
|             </property> | ||||
|         </properties> | ||||
|     </rule> | ||||
|     <rule ref="SlevomatCodingStandard.Files.TypeNameMatchesFileName"> | ||||
|         <exclude-pattern>/database/schema/*</exclude-pattern> | ||||
|         <exclude-pattern>/database/migrations/*</exclude-pattern> | ||||
|     </rule> | ||||
|  | ||||
|     <file>./app</file> | ||||
|     <file>./config</file> | ||||
|     <file>./resources</file> | ||||
|     <file>./routes</file> | ||||
|     <file>./tests</file> | ||||
|  | ||||
|     <exclude-pattern>*/.phpstorm.meta.php</exclude-pattern> | ||||
|     <exclude-pattern>*/_ide_helper.php</exclude-pattern> | ||||
|     <exclude-pattern>*/cache/*</exclude-pattern> | ||||
|     <exclude-pattern>*/config/*</exclude-pattern> | ||||
|     <exclude-pattern>*/database/*</exclude-pattern> | ||||
|     <exclude-pattern>*/docs/*</exclude-pattern> | ||||
|     <exclude-pattern>*/migrations/*</exclude-pattern> | ||||
|     <exclude-pattern>*/storage/*</exclude-pattern> | ||||
|     <exclude-pattern>*/public/index.php</exclude-pattern> | ||||
|     <exclude-pattern>*/resources/lang/*</exclude-pattern> | ||||
|     <exclude-pattern>*/vendor/*</exclude-pattern> | ||||
|     <exclude-pattern>*/*.js</exclude-pattern> | ||||
|     <exclude-pattern>*/*.css</exclude-pattern> | ||||
|     <exclude-pattern>*/*.xml</exclude-pattern> | ||||
|     <exclude-pattern>*/*.blade.php</exclude-pattern> | ||||
|     <exclude-pattern>*/autoload.php</exclude-pattern> | ||||
|     <exclude-pattern>*/Console/Kernel.php</exclude-pattern> | ||||
|     <exclude-pattern>*/Exceptions/Handler.php</exclude-pattern> | ||||
|     <exclude-pattern>*/Http/Kernel.php</exclude-pattern> | ||||
|  | ||||
|     <arg name="basepath" value="."/> | ||||
|     <arg name="colors"/> | ||||
|     <arg value="spv"/> | ||||
|     <ini name="memory_limit" value="128M"/> | ||||
| </ruleset> | ||||
		Reference in New Issue
	
	Block a user