私はsymfony(これは私が慣れていない)に基づいていると思われるPHP CS Fixerを実行しようとしていて、いくつかのパスを除外する際に問題があります。symfony Finderでglobを除外
私のセットアップは以下の通りです:
$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
->exclude('lib/adodb')
->exclude('lib/bbcode')
->exclude('lib/joomla')
->exclude('lib/JSON')
->exclude('lib/pear')
->exclude('lib/phpass')
->exclude('lib/smarty')
->exclude('lib/smtp')
->exclude('modules/*/lib')
->name('*.class')
->name('*.inc')
->name('*.php')
;
基本的に、私は除外するようになる:
modules/ANYNAME/lib/ANYFILE
modules/ANYNAME/lib/ANYSUBDIR/ANYFILE
しかし、私は->exclude('modules/*/lib')
ラインはこれらをキャッチされていないことがわかります。たとえば、modules/somemodule/lib/somefile.inc
がまだ処理されています。
これは私が->name('*.inc')
を持っていたためだと思っていましたが、その行の有無にかかわらず起こっているようです。
->exclude('modules/*/lib')
を除き、他のものは除外します。
任意のポインタ?
**修正/更新**
問題は名前セレクタであることを思えません。たとえば、name
を使用して*.inc
を選択してから、modules/xyz/lib
にあるものを除外しようとしていないようです。
は
「notPath()」メソッドがありますhttp://api.symfony.com/3.2/Symfony/Component/Finder/Finder.html#method_notPathそれは動作しますか? –
ありがとうございます。いくつかのテストを行うと、問題は 'name'セレクタにあるように見えます。例えば 'name'を使って' * .inc'を選択し、 'modules/xyz/lib'にあるものを除外しようとしていないようです。 – Dayo
@Dayo私は少し失われていますので、 'modules'の中のすべてを除外したいですか? – BentCoder