問題是,如果通過 Finder 類觀看多個目錄。如果一個不存在,Finder 將拋出例外,修復程式將終止。
$finder = Finder::create()
->in([
__DIR__ . '/web/app/mu-plugins/ys-*',
__DIR__ . '/web/app/plugins/ys-*'
])
->name('*.php')
->ignoreDotFiles(true)
->ignoreVCS(true);

是否有可能添加一個選項以“如果目錄不存在則跳過”以便如果其中一個目錄不存在它不會殺死修復程式?
uj5u.com熱心網友回復:
我會事先使用 array_filter 和一個簡單的glob()函式來檢查目錄/檔案是否確實存在。如果找到任何檔案/檔案夾,Glob 將回傳一個陣列。
如果目錄/檔案確實存在,將它們傳遞給 Finder:
$directories = [
__DIR__ . '/web/app/mu-plugins/ys-*',
__DIR__ . '/web/app/plugins/ys-*'
];
$checkDirs = array_filter($directories, static function ($dir){
return !empty(glob($dir));
});
$finder = Finder::create()
->in($checkDirs)
->name('*.php')
->ignoreDotFiles(true)
->ignoreVCS(true);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/533873.html
