Stejný kód v různých adresářích
Časopis Clavis, jehož Internetovou podobu už devět let připravuji, má texty a obrázky jednotlivých čísel uložené v adresářích. Samozřejmě je žádoucí, aby se při pohledu na samotný adresář zobrazil nějaký relevantní obsah – třeba celé číslo. Kód pro zpracování dat je u všech čísel stejný a bylo by pochopitelně nesmyslné ho mít nakopírovaný do všech adresářů. Soubor index.php
v každém adresáři tedy obsahuje jediný řádek:
<?php include "../data.php"; ?>
Soubor data.php
pak udělá vše, co je třeba, s tím, že aktuálním pracovním adresářem zůstal adresář se soubory daného čísla:
<?php glob("*.gif"); // vrátí všechny soubory s koncovkou .gif v aktuálním čísle basename(dirname($_SERVER["PHP_SELF"])); // pokud bychom náhodou potřebovali znát adresář aktuálního čísla ?>
Obrat je to samozřejmě triviální – chtěl jsem jen ukázat, že ne na všechno je potřeba brát hned mod_rewrite.
Diskuse
Michal Hantl:
Neco podobného jsem použil u svého CMS - je ve v jedné složce, z té složky si stačí naincludovat jeden soubor a předat login informace. Takže i uploadnuté soubory k danému webu jsou ve složce daného webu a CMS složka nenese žádné soubory navíc.Druhou výhodou je, že když dělám nějaký web, nekopíruju svůj CMS jak pako, takže když něco upravím, nemusím to nikam kopírovat a na disku se mi nevyskytují odlišné verze.
Leo:
Priznam se, ze tentokrat jsem to vubec nepochopil..., ale mozna je to tim, ze se jeste dolecuju z chripky jak remen. LeoJakub Podhorský:
jestli jsem to já správně pochopil tak prostě mu ty jednotlivé adresáře co zadáváme v URL existují i fyzicky na disku jen v každém adresáři je soubor index.php který má obsah jak je zde napsaný a tudíž nepotřebuje mod_rewrite jen v podstatě vytváří nové kopie index.php v nových adresáříchimho zajímavý řešení ale mod_rewrite se mi zdá lepší
snad jsem ten článek správně pochopil :)
pif:
jj asi budu taky zastance MR (pokud ho na serveru mame), ale to je pochopitelne :))
mr je na to jak delany, nemusime aspon porad vsude kopirovat index.php :), ale jasne i to je reseni.
Jakub Podhorský:
no hlavně by se pak dalo narazit kdyby tam bylo těch souborů až moc a měli jsme omezený diskový prostor...pak se to dá rychle zaplnit i když je mi jasné že to by se mluvilo řádově o milionech souborů index.php ale i to se může přihodit...navíc když k tomu ještě připočítám ukládání obrázků a dalších souborů na ten disk tak ta kapacita de potom rychle pryč což je obrovská nevýhoda :(Quick:
Rekl bych, ze s prostorem na disku problem nebude. Soubor index.php bude urcite nekolinasobne mensi nez jeden obrazek. Kdyz uz nebude misto, asi tezko to jde rezit MR a smazanim 'prebytecnych' index.phpJakub Podhorský:
dobře možná špatnej příklad ale můžu si vzít situaci kdy něco bude nutný prostě dát jenom do toho souboru index.php pak jich tam máš dejme tomu stovky(složitá editace) a nebo potřebuješ něco dát jenom do jednoho z nich(zdlouhavý vyhledávání)určitě je to dobrý východisko když už člověk nemá mod_rewrite k dispozici ale osobně bych to spíš asi rešil přes chybovou stránku 404 i když ta na to není určená :-/ ale zdá se mi to jako lepší řešení
jinak teď mě tak napadá co když máš na hostingu dejme tomu jen 10MB diskovýho prostoru tvůj systém zabere dejme tomu cca 2 MB(když to přeženu) + obrázky(přeženu že nejsou optimalizovaný a zbytečně velký a máš další 2 MB) to už máš 4 MB...no pak když chceš mít ukládání obrázků pro svůj redakční systém to už máš jenom 6MB volnýho a upřímě to se obrázkama dá zaplnit do měsíce a co potom?
a databázi máš např. na 30MB...je to sice dost nereálná situace ale může nastat
navíc další věc zálohování souborů....ono třeba takhle zálohovat k sobě na počítač dejme tomu 1000 souborů ač malých ale tisíc je na docela dlouhou dobu.
Jakub Vrána
:
Probůh, co to tady řešíte? Jak zaplnit 33 bajtovými soubory, které tvoří asi 0.01% celkové velikosti dat, celou kvótu?


DaMage:
33 bajtov v súbore... ale pri zlom resp. staršom filesysteme alokuje aj niekoľko kb - podľa nastavenia alokačných jednotiek... aj keď na novších FS je niečo také už vyriešené.
Jakub Vrána
:
Ale i tak je to přeci úplně jedno. Pokud je v jednom adresáři řekněme 200 kB obrázků a 50 kB textu, je jeden soubor navíc umístěný do alokační jednotky třeba 2 KiB zcela zanedatelný.


Diskuse je zrušena z důvodu spamu.

