Skip to content

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 soubory
  • true – 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.