操作
Bug(バグ) #2503
完了コーディング規約チェックのルールにおいて制御構造のブロックで空白が考慮されていない
開始日:
2011-10-18
期日:
進捗率:
0%
予定工数:
3.6 で発生するか:
Yes (はい)
3.8 で発生するか:
Yes (はい)
説明
改行¶
コーディング規約チェックのルールで制御構造のブロックで空白が考慮されていない.
data/CodingStandard/OpenPNE3/Sniffs/WhiteSpace/ControlSignatureSniff.php
19 protected function getPatterns() 20 { 21 return array( 22 'tryEOL{EOL...}EOLcatch (...)EOL{EOL', 23 'doEOL{EOL...}EOLwhile (...);EOL', 24 'while (...)EOL{EOL', 25 'for (...)EOL{EOL', 26 'if (...)EOL{EOL', 27 'foreach (...)EOL{EOL', 28 '}EOLelseif (...)EOL{EOL', 29 '}EOLelseEOL{EOL', 30 ); 31 }
修正案¶
下記のように修正.
diff --git a/data/CodingStandard/OpenPNE3/Sniffs/WhiteSpace/ControlSignatureSniff.php b/data/CodingStandard/OpenPNE3/Sniffs/WhiteSpace/ControlSignatureSniff.php index d89fd62..b05ca6a 100644 --- a/data/CodingStandard/OpenPNE3/Sniffs/WhiteSpace/ControlSignatureSniff.php +++ b/data/CodingStandard/OpenPNE3/Sniffs/WhiteSpace/ControlSignatureSniff.php @@ -19,14 +19,14 @@ class OpenPNE3_Sniffs_WhiteSpace_ControlSignatureSniff extends PHP_CodeSniffer_S protected function getPatterns() { return array( - 'tryEOL{EOL...}EOLcatch (...)EOL{EOL', - 'doEOL{EOL...}EOLwhile (...);EOL', - 'while (...)EOL{EOL', - 'for (...)EOL{EOL', - 'if (...)EOL{EOL', - 'foreach (...)EOL{EOL', - '}EOLelseif (...)EOL{EOL', - '}EOLelseEOL{EOL', + 'tryEOL *{EOL...}EOL *catch (...)EOL *{EOL', + 'doEOL *{EOL...}EOL *while (...);EOL', + 'while (...)EOL *{EOL', + 'for (...)EOL *{EOL', + 'if (...)EOL *{EOL', + 'foreach (...)EOL *{EOL', + '}EOL *elseif (...)EOL *{EOL', + '}EOL *elseEOL *{EOL', ); } }
wa ta さんが約13年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 307729cb350ce8fd290aa78d1a61c4f31717cf71 で適用されました。
Shinichi Urabe さんが10年以上前に更新
- 対象バージョン を OpenPNE 3.8.x から OpenPNE 3.8.12 に変更
- 3.6 で発生するか を Unknown (未調査) にセット
- 3.8 で発生するか を Unknown (未調査) にセット
誠二 天重 さんが10年以上前に更新
- コピー先 Backport(バックポート) #3642: コーディング規約チェックのルールにおいて制御構造のブロックで空白が考慮されていない を追加
isao sano さんが10年以上前に更新
- コピー先 Backport(バックポート) #3666: コーディング規約チェックのルールにおいて制御構造のブロックで空白が考慮されていない を追加
Youichi Kimura さんが約8年前に更新
- 3.6 で発生するか を Unknown (未調査) から Yes (はい) に変更
- 3.8 で発生するか を Unknown (未調査) から Yes (はい) に変更
現在 OpenPNE3 の data/CodingStandard/OpenPNE3 以下にあるファイルは PHP_CodeSniffer 1.2.x でないと動作しない。
かなり古いバージョンであることは問題ではあるが、ひとまず下記の手順で動作確認はできた。
$ mkdir phpcs $ cd phpcs $ cat > composer.json <<'EOF' { "repositories": [ { "type": "pear", "url": "https://pear.php.net/" } ], "require": { "pear-pear/PHP_CodeSniffer": "1.2.2", "pear-pear/PEAR": "^1.4.0b1" } } EOF $ composer update $ ./vendor/bin/composer-php ./vendor/bin/phpcs --standard=/home/upsilon/git/openpne3/data/CodingStandard/OpenPNE3 /home/upsilon/git/openpne3/lib/util/opToolkit.class.php
Youichi Kimura さんが約8年前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
PHP_CodeSniffer_Standards_AbstractPatternSniff
には ' *'
のように可変長の空白文字にのみマッチさせる構文は存在しません。
実際に 307729cb を適用した状態で phpcs を実行すると確かに「if (...)\n {
」などに対するエラーは表示されなくなりますが、コーディング規約に違反した「if (...) {
」(中括弧の前に改行がない) に対してもエラーが出なくなっています。
kaoru n さんが約8年前に更新
- 関連している Enhancement(機能追加・改善) #4004: PHP_CodeSniffer 最新版で動作するようにする を追加
操作