5

PSR2 標準を使用する PHPCS で問題が発生しました。高低を検索しましたが、驚いたことに、同じ問題を報告している人が見つかりません。

次のようなクラス宣言があるとします。

<?php

class MyChildClass extends \SomeNameSpace\MyParentClass
{
}

次に、次のように PHPCS で実行します。

bash-3.2$ phpcs -s  --standard=PSR2 test.php 

FILE: test.php
--------------------------------------------------------------------------------
FOUND 2 ERROR(S) AFFECTING 1 LINE(S)
--------------------------------------------------------------------------------
 3 | ERROR | Expected 0 spaces between "SomeNameSpace" and comma; $1 found
   |       | (PSR2.Classes.ClassDeclaration.SpaceBeforeComma)
 3 | ERROR | Expected 1 space before "MyParentClass"; 13 found
   |       | (PSR2.Classes.ClassDeclaration.SpaceBeforeName)
--------------------------------------------------------------------------------

Time: 0 seconds, Memory: 4.00Mb

また:

Bash-3.2$ phpcs --version
PHP_CodeSniffer version 1.3.6 (stable) by Squiz Pty Ltd. (http://www.squiz.net)

誰かがこれに出くわしましたか?私は何か間違ったことをしていますか?それ以外の場合は、最初にスニファー コードに取り掛かりますが、これは適切ではありません。

4

1 に答える 1

8

PHP_CodeSniffer の現在のリリース内の PSR-1 および PSR-2 標準は完全ではありません。リリース ノートでそれらについて言及したことは一度もなかったので、人々は明らかにそれらを見つけたばかりか、現在の開発バージョンについて話しているかのどちらかです。

PHP_CodeSniffer 内で PSR-2 の完全なバージョンを試してみたい場合は、git リポジトリを複製して直接使用する必要があります。

git clone git://github.com/squizlabs/PHP_CodeSniffer.git
cd PHP_CodeSniffer
php scripts/phpcs --standard=PSR2 /path/to/code

または、大きな問題が報告されていないと仮定して、来週中に予定している公式リリースを待つこともできます。

提供したコードで最新の開発バージョンを実行すると、次のようになります。

2:PHP_CodeSniffer gsherwood$ php scripts/phpcs --standard=psr2 temp.php

FILE: /Users/gsherwood/Sites/Projects/PHP_CodeSniffer/temp.php
--------------------------------------------------------------------------------
FOUND 2 ERROR(S) AFFECTING 2 LINE(S)
--------------------------------------------------------------------------------
 3 | ERROR | Each class must be in a namespace of at least one level (a
   |       | top-level vendor name)
 5 | ERROR | Expected 1 blank line at end of file; 0 found
--------------------------------------------------------------------------------

Time: 0 seconds, Memory: 4.25Mb

それが役立つことを願っています。

于 2012-09-21T03:39:30.357 に答える