Nastavení práv k souborům v PHP pod Windows

Nastavení práv k souborům pomocí chmod v PHP pod Windows samozřejmě nefunguje kvůli odlišnému souborovému systému. Nicméně aspoň něco chmod ve Windows dokáže: umí nastavit atribut read-only. Například chmod("file.txt", 0111); atribut nastaví a chmod("file.txt", 0777); ho zase odstraní. Pro úplnost, fungují i jiné hodnoty: 0111, 0444, 0555 příznak nastaví a 0222, 0333, 0666, 0777 ho odstraní. Na základě testování v PHP 5.4 pod Win7 se jako jediná skutečně důležitá hodnota jeví druhá číslice v pořadí, tedy 0111 je totéž jako 0122.

K čemu je to dobré? Nastavení příznaku read-only zamezí zápisu do souboru. To se hodí při psaní unit testů testujících chování při selhání zápisu do souboru – před spuštěním stačí jednoduše souboru nastavit příznak read-only. Důležité je po testu opět příznak odstranit, aby bylo možné v tearDown metodě testovací soubor smazat.

Špatnou zprávou je, že read-only zamezí pouze zápisu do souboru. Adresářům se sice pomoci chmod dá také nastavit příznak read-only, ale uložení nového souboru do adresáře to nezabrání.

Rubriky : PHP

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>