Třída Dir
Utility pro operace s adresáři. Statická třída s metodami pro vytvoření, přejmenování, kopírování, smazání a správu adresářů.
Všechny operace automaticky nastavují oprávnění pomocí konstant z třídy FileSystem:
- Nové adresáře:
FileSystem::DEFAULT_DIR_PERMISSIONS(0777) - Nové soubory:
FileSystem::DEFAULT_FILE_PERMISSIONS(0666)
Klíčové metody
| Metoda | Popis |
|---|---|
create(string $newDir, bool $showMessage = false): bool |
Vytvoř nový adresář |
rename(string $old, string $new, bool $showMessage = false): bool |
Přejmenuj adresář |
copy(string $source, string $destination): void |
Kopíruj adresář rekurzivně |
delete(string $dir, bool $showMessage = false, bool $full = false): bool |
Smaž adresář |
deleteOldFiles(string $dir, float\|int $hours, string $includePattern, string $excludePattern): void |
Smaž staré soubory |
isEmpty(string $dir): bool |
Je adresář prázdný? |
checkContentStatus(string $dir): string\|false |
Vrať 'empty' nebo 'full' |
recursiveDelete(string $path): bool |
Rekurzivně smaž vše |
join(string ...$segments): string |
Spoj segmenty cesty |
Metody
Dir::create(string $newDir, bool $showMessage = false): bool
Vytvoří nový adresář.
Parametry:
$newDir– cesta k novému adresáři$showMessage– zobrazit zprávu?
Návratová hodnota:
truepokud byl adresář vytvořenfalsepokud již existuje nebo selhalo vytvoření
Příklad:
use Petrovo\FileSystem\Dir;
Dir::create('/var/www/new_folder', true);
// Výstup: "Success, directory created! (new_folder)"
Dir::rename(string $old, string $new, bool $showMessage = false): bool
Přejmenuje adresář.
Parametry:
$old– stará cesta$new– nová cesta$showMessage– zobrazit zprávu?
Návratová hodnota:
truepokud bylo úspěšnéfalsepokud selhalo
Příklad:
use Petrovo\FileSystem\Dir;
Dir::rename('/var/www/old_name', '/var/www/new_name', true);
Dir::copy(string $source, string $destination): void
Kopíruje adresář a všechen jeho obsah rekurzivně.
Chování:
- Vytvoří cílový adresář
- Nastaví oprávnění: dirům
0777, souborům0666 - Rekurzivně kopíruje všechen obsah
Parametry:
$source– zdrojový adresář$destination– cílový adresář
Příklad:
use Petrovo\FileSystem\Dir;
Dir::copy('/var/www/original', '/var/www/backup');
// Zkopíruje /original se všeným obsahem do /backup
Dir::delete(string $dir, bool $showMessage = false, bool $full = false): bool
Smaže adresář.
Chování:
- Prázdný adresář: vždy se smaže
- Plný adresář: smaže se jen pokud:
CONFIG['deleteFullDirectory']jetrue, NEBO$fullparametr jetrue
Parametry:
$dir– cesta k adresáři$showMessage– zobrazit zprávu?$full– vynutit smazání i s obsahem?
Návratová hodnota:
truepokud byl smazánfalsepokud selhalo (adresář neexistuje, není prázdný bez $full, atd.)
Příklad:
use Petrovo\FileSystem\Dir;
// Smaž prázdný adresář
Dir::delete('/var/www/empty_folder', true);
// Smaž i s obsahem
Dir::delete('/var/www/folder_with_files', true, true);
Dir::deleteOldFiles(string $dir, float|int $hours, string $includePattern, string $excludePattern): void
Smaže soubory starší než zadaný počet hodin.
Parametry:
$dir– adresář$hours(default:2) – věk v hodinách$includePattern– regex pro zahrnutí$excludePattern– regex pro vyloučení
Příklad:
use Petrovo\FileSystem\Dir;
// Smaž soubory starší než 24 hodin
Dir::deleteOldFiles('/var/www/temp', 24);
// Smaž jen .tmp soubory starší než 1 hodinu
Dir::deleteOldFiles('/var/www/cache', 1, '/\.tmp$/', '/^$/');
Dir::isEmpty(string $dir): bool
Kontroluje, zda je adresář prázdný.
Návratová hodnota:
truepokud je prázdný nebo neexistujefalsepokud obsahuje soubory
Příklad:
use Petrovo\FileSystem\Dir;
if (Dir::isEmpty('/var/www/folder')) {
echo 'Adresář je prázdný';
}
Dir::checkContentStatus(string $dir): string|false
Vrací stav obsahu adresáře.
Návratová hodnota:
'empty'pokud je prázdný'full'pokud obsahuje souboryfalsepokud není adresář
Příklad:
use Petrovo\FileSystem\Dir;
$status = Dir::checkContentStatus('/var/www/folder');
// Vrátí: 'empty' nebo 'full' nebo false
Dir::recursiveDelete(string $path): bool
Rekurzivně smaže adresář a všechen jeho obsah.
Návratová hodnota:
truepokud byl smazánfalsepokud selhalo
Příklad:
use Petrovo\FileSystem\Dir;
Dir::recursiveDelete('/var/www/folder');
// Smaž všechno bez omezení
Dir::join(string ...$segments): string
Spojí segmenty cesty pomocí odpovídajícího oddělovače (DIRECTORY_SEPARATOR).
Parametry:
...$segments– libovolný počet segmentů cesty
Návratová hodnota:
- Složená cesta
Příklad:
use Petrovo\FileSystem\Dir;
$path = Dir::join('var', 'www', 'html');
// Vrátí: 'var/www/html' (na Linuxu) nebo 'var\\www\\html' (na Windows)
Shrnutí
Třída Dir je určena pro operace s adresáři. Pro jednotlivé soubory používej File, pro hromadné operace Files.