2013-12-15 149 views
1

当我开始这在我的终端,这是我得到什么?PHP的麻烦CodeSniffer

功能名称“provjeri_datum”的前缀是包名,但不以大写字母开头

这是我在PHP函数:

function provjeri_datum($date, $format = 'Y-m-d H:i:s') 
{ 
    $d = DateTime::createFromFormat($format, $date); 
    return $d && $d->format($format) == $date; 
} 

我应该如何解决这个问题?有没有什么办法可以解决这个问题,而无需将provjeri_datum更改为Provjeri_datum?

+0

确切的错误信息?违规线?你怎么称呼它? –

+0

@KarolyHorvath我已经复制了确切的错误信息.. – user3002173

回答

2

该检查是PEAR编码标准的一部分,这是PHP_CodeSniffer使用的默认值。它正在执行的标准的部分是:http://pear.php.net/manual/en/standards.naming.php(全局变量和函数)。

由于这是PEAR标准的一部分,所以删除此错误消息的唯一方法是创建您自己的自定义标准。要做到这一点,你需要创建一个规则集的XML文件(叫它任何你想要的,如mypear.xml),使该内容:

<?xml version="1.0"?> 
<ruleset name="MyStandard"> 
<description>My custom coding standard.</description> 
<rule ref="PEAR"> 
    <exclude name="PEAR.NamingConventions.ValidFunctionName.FunctionNoCapital" /> 
</rule> 
</ruleset> 

这种定制标准包括整个PEAR编码标准,但不包括一个特定信息。您可以通过将-s命令行参数添加到PHP_CodeSniffer(例如,phpcs -s /path/to/code)来查找消息代码。

然后运行PHP_CodeSniffer这样的:

phpcs --standard=/path/to/mypear.xml /path/to/code 

你可以做更多的自定义编码标准,以及。有关更多选项,请参阅文档:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml

如果您希望使用内置标准而不是自己创建标准,那么切换PSR1或PSR2标准是一个不错的选择(PSR2有更多规则)。这些附带PHP_CodeSniffer,这样你就可以这样运行了他们:

phpcs --standard=PSR2 /path/to/code 

或者你可以设置为默认的标准:

phpcs --config-set default_standard PSR2 
phpcs /path/to/code