2017-11-21 7 views
2

私のチームでは、codesnifferを使用してSymfonyアプリケーションのコーディングスタイルを適用しています。ファイルを引数として明示的に使用しても、拡張子のないファイルがチェックされていないことがわかりました。これは、このgithub issueで説明されているように設計されています。PHP CodeSnifferは拡張子のないファイルをチェックする方法を教えてください。

つまり、bin/consoleのようなファイルは、有効なPHPファイルであってもチェックされず、--extensions引数は受け入れられず空の引数です。

CodeSnifferにもこれらのファイルをチェックさせる方法はありますか?

答えて

1

ワイルドカードの拡張子として*と指定することができます。

それがうまくいかない場合には、ドキュメントで述べている:

あなたが特定のファイルではなく、 ディレクトリ全体をチェックするPHP_CodeSnifferのを求めている場合は、指定したファイルの拡張子が を無視されます。このファイルは、無効な拡張子が であっても、拡張子が全くない場合でもチェックされます。次の例では、--extensions コマンドライン引数で、.phpファイルのみが にチェックされていることが指定されていても、main.incファイル はPHP_CodeSnifferによってチェックされます。あなたが明示的に拡張子がない単一のファイルをチェックすると、それが動作するはずですので

$ phpcs --extensions=php /path/to/code/main.inc 

を特定のファイルをチェックするときの拡張子は無視します。

さらに、それは述べて:

特定のファイルのファイル拡張子を無視しては PHP_CodeSnifferのの機能であり、 拡張子のないファイルをチェックするための唯一の方法です。ファイルのディレクトリ全体をチェックすると、拡張子のないすべてのファイル は無視されるので、これらのファイルを別々にチェックする必要があります。

はPHP_CodeSnifferのの機能は、拡張子のないファイルをチェックするための唯一の方法である特定のファイルのファイル拡張子を無視ドキュメント

から

1

https://pear.php.net/manual/en/package.php.php-codesniffer.advanced-usage.phpを参照してください。あなたはファイルのディレクトリ全体をチェックすると、拡張子のないファイルはすべて無視されます、あなたはこれらのファイルのそれぞれを個別に

https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage

チェックしなければならないので、だからあなたは構文があるファイル

を指定する必要があります

phpcs --fileリスト=パス/に/ファイル/含有する/他他の線路構造当たりのファイルのファイルである

他人に記載されているすべてのファイルがファイルこのチェック

例:

はFile1 File2の コンソールは

はCSがこれを行うことができます場合、私は知らない3つのファイル

+0

そのような場合には、コマンド 'PHPベンダー/ binに/ phpcs/binに/ console'コマンドのようになりますので、バグが存在しなければなりません。私はファイルの代わりに引数として空のフォルダを与えたように振る舞います。ちょうどの場合にチケットを開きます。 – Loupax

+0

だけ https://github.com/squizlabs/PHP_CodeSniffer/blob/master/src/Filters/Filter.php#L144 – Loupax

+0

は、私は同意するが、例 – exussum

1

を確認するにはしかし、私はbin/consoleのようなファイルはほとんど10行までであると思うので、codesnifferでそれらをチェックする必要はありません:)彼らは単にベンダーを必要とし、ソースからいくつかのアプリケーションクラスを実行する必要があります。また、すべてのプロジェクトですべて同じです。

私たちのbin/consoleを参考にしてください。

#!/usr/bin/env php 
<?php declare(strict_types = 1); 

/** @var \Nette\DI\Container $container */ 
$container = require __DIR__ . '/../src/bootstrap.php'; 

/** @var \Symfony\Component\Console\Application $console */ 
$console = $container->getByType(Symfony\Component\Console\Application::class); 

$services = $container->findByType(Symfony\Component\Console\Command\Command::class); 

foreach ($services as $service) { 
    $console->add(
     $container->getService($service) 
    ); 
} 

exit($console->run()); 

これをチェックする理由はありません:]

+0

を表示する答えを更新することを防ぐために、明示的なチェックがあるように見えますあなたと、それはOPの特定の問題を解決しません:-) – DanFromGermany

+0

それは本当です、したがって私は最初の文でそれを言及した。 :)しかし、私はまた、ツールを使うべき場所と本当の利益を生み出す場所について話すことが重要だと思っています:) – Arziel

関連する問題