プロジェクト

全般

プロフィール

Bug(バグ) #2503

コーディング規約チェックのルールにおいて制御構造のブロックで空白が考慮されていない

Yuya Watanabe12年以上前に追加. 7年以上前に更新.

ステータス:
Invalid(無効)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
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',
     );
   }
 }

関連するチケット

関連している OpenPNE 3 - Enhancement(機能追加・改善) #4004: PHP_CodeSniffer 最新版で動作するようにする Rejected(差し戻し) 2016-09-02
コピー先 OpenPNE 3 - Backport(バックポート) #3642: コーディング規約チェックのルールにおいて制御構造のブロックで空白が考慮されていない Invalid(無効) 2011-10-18
コピー先 OpenPNE 3 - Backport(バックポート) #3666: コーディング規約チェックのルールにおいて制御構造のブロックで空白が考慮されていない Invalid(無効) 2014-07-15

関係しているリビジョン

リビジョン 307729cb (差分)
Yuya Watanabe12年以上前に追加

(fixes #2503) fixed coding standard rule considering whitespace

履歴

#1 wa ta12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

更新履歴 307729cb350ce8fd290aa78d1a61c4f31717cf71 で適用されました。

#2 Shouta Kashiwagi約12年前に更新

  • 対象バージョンOpenPNE 3.7.0 から 252 に変更

#3 Shouta Kashiwagi約12年前に更新

  • 対象バージョン252 から OpenPNE 3.8.x に変更

#4 Shinichi Urabeほぼ10年前に更新

  • 対象バージョンOpenPNE 3.8.x から OpenPNE 3.8.12 に変更
  • 3.6 で発生するかUnknown (未調査) にセット
  • 3.8 で発生するかUnknown (未調査) にセット

#5 誠二 天重ほぼ10年前に更新

#6 誠二 天重ほぼ10年前に更新

  • 対象バージョンOpenPNE 3.8.12 から OpenPNE 3.8.x に変更

#7 誠二 天重ほぼ10年前に更新

  • 対象バージョンOpenPNE 3.8.x から OpenPNE 3.9.0-old に変更

#8 isao sanoほぼ10年前に更新

#9 kaoru nほぼ9年前に更新

  • 担当者 を削除 (Yuya Watanabe)

#10 kaoru n7年以上前に更新

  • 担当者Youichi Kimura にセット

#11 Youichi Kimura7年以上前に更新

  • 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

#12 Youichi Kimura7年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

PHP_CodeSniffer_Standards_AbstractPatternSniff には ' *' のように可変長の空白文字にのみマッチさせる構文は存在しません。
実際に 307729cb を適用した状態で phpcs を実行すると確かに「if (...)\n {」などに対するエラーは表示されなくなりますが、コーディング規約に違反した「if (...) {」(中括弧の前に改行がない) に対してもエラーが出なくなっています。

#13 kaoru n7年以上前に更新

1. stable-3.6.x にしか入っていない 6ca5dcd8 ( #1744 )を master, stable-3.8.x にも追加→ #4002 #4003
2. #2503 および関連するBackportチケットは不要になるのでInvalidにする→しました
3. PHP_CodeSniffer最新版で動く状態にする→ #4004

#14 kaoru n7年以上前に更新

  • ステータスRejected(差し戻し) から Invalid(無効) に変更
  • 進捗率50 から 0 に変更

#2503-13 により無効とします

#15 kaoru n7年以上前に更新

他の形式にエクスポート: Atom PDF