修改PEAR的標準,我想作一個小小的變化,爲我們的phpcs驗證PEAR標準。目前PEAR要求你寫else語句是這樣的:爲phpcs
} else {
我們希望他們這樣寫:
}
else {
我怎樣可以着手對這種變化?
修改PEAR的標準,我想作一個小小的變化,爲我們的phpcs驗證PEAR標準。目前PEAR要求你寫else語句是這樣的:爲phpcs
} else {
我們希望他們這樣寫:
}
else {
我怎樣可以着手對這種變化?
做到這一點的唯一方法是使用ruleset.xml文件編寫自己的編碼標準。它需要導入整個PEAR編碼標準,但不包括執行此檢查的特定嗅探。這一點可以通過單個XML文件完成。
但沒有內置嗅探強制實施else
語法,你正在尋找的類型。因此,爲了執行該操作,您需要編寫自定義嗅探,這更復雜,因爲您還必須將其存儲在某處。
如果你想嘗試簡單的自定義編碼標準入手,創建一個名爲ruleset.xml
文件,使這個內容:
<?xml version="1.0"?>
<ruleset name="MyStandard">
<description>My custom coding standard.</description>
<rule ref="PEAR">
<exclude name="PEAR.ControlStructures.ControlSignature"/>
</rule>
</ruleset>
然後像這樣運行PHP_CodeSniffer:
phpcs --standard=/path/to/ruleset.xml /path/to/code
這將根據PEAR編碼標準檢查您的代碼,但排除對控制結構的特定檢查。如果這是你需要的,你可以在那裏停下來。如果你有一個人想要運行這個自定義標準,只需給他們文件,他們也可以使用它。
有關於ruleset.xml格式在這裏更多的信息:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml
如果你想繼續前進,編寫自定義嗅,最好是先從基礎教程:http://pear.php.net/manual/en/package.php.php-codesniffer.coding-standard-tutorial.php
這將解釋一下編碼標準是什麼。然後,您需要創建自己的嗅探,這只是PEAR的一個副本,稍微改變了您如何控制結構。 PEAR嗅探在這裏:https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php
沒有測試,我假設你想要將} else {EOL',
更改爲}EOLelse {EOL',
,看看是否有效。
感謝Greg,在其他人無法使用之前顯然添加了EOL。我最終借用了Drupal代碼標準的嗅探,並將它們與PEAR合併。感謝您的評論,但有一些很好的信息。 – Noodles
是您的代碼在網上提供?我也想這樣設計我的代碼,但我不想排除PEAR.ControlStructures.ControlSignature。 – TheFox