Project

General

Profile

Bug(バグ) #2503

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

Added by Yuya Watanabe about 8 years ago. Updated over 3 years ago.

Status:
Invalid(無効)
Priority:
Normal(通常)
Target version:
Start date:
2011-10-18
Due date:
% Done:

0%

3.6 で発生するか:
Yes (はい)
3.8 で発生するか:
Yes (はい)

Description

改行

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

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',
     );
   }
 }

Related issues

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

Associated revisions

Revision 307729cb (diff)
Added by Yuya Watanabe about 8 years ago

(fixes #2503) fixed coding standard rule considering whitespace

History

#1 Updated by wa ta about 8 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

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

#2 Updated by Shouta Kashiwagi over 7 years ago

  • Target version changed from OpenPNE 3.7.0 to 252

#3 Updated by Shouta Kashiwagi over 7 years ago

  • Target version changed from 252 to OpenPNE 3.8.x

#4 Updated by Shinichi Urabe over 5 years ago

  • Target version changed from OpenPNE 3.8.x to OpenPNE 3.8.12
  • 3.6 で発生するか set to Unknown (未調査)
  • 3.8 で発生するか set to Unknown (未調査)

#5 Updated by 誠二 天重 over 5 years ago

#6 Updated by 誠二 天重 over 5 years ago

  • Target version changed from OpenPNE 3.8.12 to OpenPNE 3.8.x

#7 Updated by 誠二 天重 over 5 years ago

  • Target version changed from OpenPNE 3.8.x to OpenPNE 3.9.0-old

#8 Updated by isao sano over 5 years ago

#9 Updated by kaoru n over 4 years ago

  • Assignee deleted (Yuya Watanabe)

#10 Updated by kaoru n over 3 years ago

  • Assignee set to Youichi Kimura

#11 Updated by Youichi Kimura over 3 years ago

  • 3.6 で発生するか changed from Unknown (未調査) to Yes (はい)
  • 3.8 で発生するか changed from Unknown (未調査) to 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 Updated by Youichi Kimura over 3 years ago

  • Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)

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

#13 Updated by kaoru n over 3 years ago

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

#14 Updated by kaoru n over 3 years ago

  • Status changed from Rejected(差し戻し) to Invalid(無効)
  • % Done changed from 50 to 0

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

#15 Updated by kaoru n over 3 years ago

Also available in: Atom PDF