2013-12-15 145 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