gpt4 book ai didi

php - 需要使用什么 sniff 来强制执行驼峰式变量命名约定?

转载 作者:可可西里 更新时间:2023-11-01 00:29:13 30 4
gpt4 key购买 nike

我正在处理一个专有的遗留代码库,一些变量是驼峰式的,而另一些是蛇形的。我想清理并仅强制执行驼峰变量名,但我似乎无法找到它的嗅探。这是我的自定义规则集的内容。

The ruleset.xml standard contains 68 sniffs

Generic (22 sniffs)
-------------------
Generic.Classes.DuplicateClassName
Generic.CodeAnalysis.ForLoopShouldBeWhileLoop
Generic.CodeAnalysis.UnconditionalIfStatement
Generic.CodeAnalysis.UnnecessaryFinalModifier
Generic.CodeAnalysis.UnusedFunctionParameter
Generic.CodeAnalysis.UselessOverridingMethod
Generic.Commenting.Fixme
Generic.Commenting.Todo
Generic.ControlStructures.InlineControlStructure
Generic.Files.ByteOrderMark
Generic.Files.LineEndings
Generic.Files.LineLength
Generic.Formatting.DisallowMultipleStatements
Generic.Formatting.NoSpaceAfterCast
Generic.Functions.FunctionCallArgumentSpacing
Generic.NamingConventions.CamelCapsFunctionName
Generic.NamingConventions.UpperCaseConstantName
Generic.PHP.DisallowShortOpenTag
Generic.PHP.LowerCaseConstant
Generic.PHP.LowerCaseKeyword
Generic.WhiteSpace.DisallowTabIndent
Generic.WhiteSpace.ScopeIndent

PEAR (5 sniffs)
---------------
PEAR.Commenting.InlineComment
PEAR.Formatting.MultiLineAssignment
PEAR.Functions.ValidDefaultValue
PEAR.WhiteSpace.ScopeClosingBrace
PEAR.WhiteSpace.ScopeIndent

PSR1 (3 sniffs)
---------------
PSR1.Classes.ClassDeclaration
PSR1.Files.SideEffects
PSR1.Methods.CamelCapsMethodName

PSR2 (12 sniffs)
----------------
PSR2.Classes.ClassDeclaration
PSR2.Classes.PropertyDeclaration
PSR2.ControlStructures.ControlStructureSpacing
PSR2.ControlStructures.ElseIfDeclaration
PSR2.ControlStructures.SwitchDeclaration
PSR2.Files.ClosingTag
PSR2.Files.EndFileNewline
PSR2.Methods.FunctionCallSignature
PSR2.Methods.FunctionClosingBrace
PSR2.Methods.MethodDeclaration
PSR2.Namespaces.NamespaceDeclaration
PSR2.Namespaces.UseDeclaration

Squiz (26 sniffs)
-----------------
Squiz.Classes.ValidClassName
Squiz.ControlStructures.ControlSignature
Squiz.ControlStructures.ForEachLoopDeclaration
Squiz.ControlStructures.ForLoopDeclaration
Squiz.ControlStructures.LowercaseDeclaration
Squiz.Functions.FunctionDeclarationArgumentSpacing
Squiz.Functions.FunctionDeclaration
Squiz.Functions.LowercaseFunctionKeywords
Squiz.Functions.MultiLineFunctionDeclaration
Squiz.PHP.CommentedOutCode
Squiz.PHP.Eval
Squiz.PHP.GlobalKeyword
Squiz.PHP.Heredoc
Squiz.PHP.InnerFunctions
Squiz.PHP.LowercasePHPFunctions
Squiz.PHP.NonExecutableCode
Squiz.Scope.MethodScope
Squiz.Scope.StaticThisUsage
Squiz.WhiteSpace.ControlStructureSpacing
Squiz.WhiteSpace.ObjectOperatorSpacing
Squiz.WhiteSpace.OperatorSpacing
Squiz.WhiteSpace.PropertyLabelSpacing
Squiz.WhiteSpace.ScopeClosingBrace
Squiz.WhiteSpace.ScopeKeywordSpacing
Squiz.WhiteSpace.SemicolonSpacing
Squiz.WhiteSpace.SuperfluousWhitespace

最佳答案

您需要使用 Squiz.NamingConventions.ValidVariableName 嗅探来检查变量名称。

这个嗅探目前包括 5 个不同的错误代码。其中 3 个正在检查变量、成员变量和字符串中的变量是否都是驼峰式的。其他 2 个代码强制私有(private)成员变量以下划线开头。

如果您使用的是 PHPCS 版本 3,为了确保变量是驼峰式大小写,请将其包含在您的规则集中:

<rule ref="Squiz.NamingConventions.ValidVariableName.NotCamelCaps"/>

如果您还想确保成员变量和字符串变量是驼峰式大小写,如果您使用的是版本 3,请包括这些:

<rule ref="Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps"/>
<rule ref="Squiz.NamingConventions.ValidVariableName.StringNotCamelCaps"/>

如果你想要全部,包括这个:

<rule ref="Squiz.NamingConventions.ValidVariableName"/>

PHPCS 版本 2 不允许您包含特定的嗅探代码,因此您首先需要包含整个嗅探代码,然后通过将它们的严重性设置为 0 来排除您不想要的特定代码。因此,如果您只需要 3驼峰大小写检查并且您使用的是版本 2,将其放入您的规则集中:

<rule ref="Squiz.NamingConventions.ValidVariableName"/>
<rule ref="Squiz.NamingConventions.ValidVariableName.PublicHasUnderscore">
<severity>0</severity>
</rule>
<rule ref="Squiz.NamingConventions.ValidVariableName.PrivateNoUnderscore">
<severity>0</severity>
</rule>

关于php - 需要使用什么 sniff 来强制执行驼峰式变量命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45530721/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com