我想運行PHP CS Fixer,我相信它是基於Symfony(我不熟悉),並且排除某些路徑時出現問題。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