Třída Files
Utility pro práci s více soubory. Statická třída s metodami pro hledání souborů v adresářích a spojování jejich obsahu.
Klíčové metody
| Metoda | Popis |
|---|---|
getFromPath(...): array |
Vyhledej soubory s včetně/vyjímky vzorem |
getFromPathSimple(...): array |
Zjednodušená varianta getFromPath() |
concat(array $files, string $separator = "\n"): string |
Spoj obsah souborů |
Metody
Files::getFromPath(string $path, string $includePattern, string $excludePattern, bool\|string $directories, bool $rsort, bool $recursive): array
Vyhledá soubory v adresáři s podporou regex filtrů.
Parametry:
$path– adresář k procházení$includePattern(default:/^(.*)$/) – regex pro soubory k zahrnutí$excludePattern(default:/^$/) – regex pro soubory k vyloučení$directories(default:false)false– jen souborytrue– soubory i adresáře'only_dirs'– jen adresáře$rsort(default:false) – seřadit v opačném pořadí?$recursive(default:false) – procházet podadresáře rekurzivně?
Návratová hodnota:
- Pole s názvy souborů/adresářů (jen jméno, bez cesty)
Příklad:
use Petrovo\FileSystem\Files;
// Všechny soubory v /var/www
$files = Files::getFromPath('/var/www');
// Jen soubory .php seřazené opačně
$php_files = Files::getFromPath(
'/var/www',
'/\.php$/',
'/^$/',
false,
true
);
// Soubory i adresáře, vyjma skrytých (začínajících na .)
$all = Files::getFromPath(
'/var/www',
'/^(.*)$/',
'/^\./i',
true,
false,
false
);
// Rekurzivně všechny .js soubory
$js_files = Files::getFromPath(
'/var/www',
'/\.js$/',
'/^$/',
false,
false,
true
);
Files::getFromPathSimple(string $path, string $includePattern, string $excludePattern, bool $recursive): array
Zjednodušená varianta getFromPath(). Vrací jen soubory (ne adresáře), bez řazení.
Parametry:
$path– adresář k procházení$includePattern(default:/^(.*)$/) – regex pro zahrnutí$excludePattern(default:/^$/) – regex pro vyloučení$recursive(default:false) – rekurzivně?
Návratová hodnota:
- Pole se jmény souborů
Příklad:
use Petrovo\FileSystem\Files;
// Všechny soubory
$files = Files::getFromPathSimple('/var/www');
// Jen .css soubory, rekurzivně
$css_files = Files::getFromPathSimple(
'/var/www',
'/\.css$/',
'/^$/',
true
);
Files::concat(array $files, string $separator = "\n"): string
Spojí obsah více souborů do jednoho stringu.
Chování:
- Filtruje neexistující soubory
- Podporuje jak cesty (string) tak SplFileInfo objekty
- Vrací prázdný string pokud žádný soubor neexistuje
Parametry:
$files– pole cest/SplFileInfo objektů$separator– oddělovač mezi soubory (default:\n)
Návratová hodnota:
- String s kombinovaným obsahem všech souborů
Příklad:
use Petrovo\FileSystem\Files;
$files = [
'/var/www/file1.txt',
'/var/www/file2.txt',
'/var/www/file3.txt'
];
$combined = Files::concat($files);
// Spojí obsah se separátorem "\n"
$combined = Files::concat($files, "\n---\n");
// Oddělí obsah čárou
Regex příklady
// Všechny soubory
'/^(.*)$/'
// Jen .php soubory
'/\.php$/'
// Jen .js a .css soubory
'/\.(js|css)$/'
// Všechno kromě skrytých souborů (začínajících .)
'/^\./i' // exclude pattern
// Soubory obsahující "backup"
'/backup/'
// Soubory NEobsahující "temp"
'/temp/' // exclude pattern
Shrnutí
Třída Files je určena pro hromadné operace se soubory - vyhledávání a spojování. Pro jednotlivé operace používej File, pro adresáře Dir.