Kolik include je únosných? | # |
| Dlouho jsem zdokonaloval html/Css, začínám s php a můj dotaz zní: Pokud mám web o jedné stránce s mnoha menšími "celky" na ní a chci každý celek dát do vlastního souboru, kolik include funkci je pro načteni jedne stránky únosných? Tedy, co když pro zobrazení index.php v prhlížeči se mi na serveru nejdřív poskládá třeba 30 .php souborů do sebe? Díky (odpovědět) | reff | 94.113.156.* | 25.1.2015 7:57 |
|
|
|
re: Kolik include je únosných? | # |
| lidičky prosím, kdo programujete v php dlouho a tvořili jste už nějaké složité věci..
prostě do indexu se mi includne několik souborů a do nich se při zpracování zase includne několik souborů..
takhle celkem třeba ve čtyřech úrovních až třicetkrát.. je to pro (běžný) hosting únosné? díky (odpovědět) | reff | 94.113.156.* | 31.1.2015 1:05 |
|
|
|
re: Kolik include je únosných? | # |
| Tohle je naprosté šílenství, pro rozsáhlé projekty Použij MVC (odpovědět) | Hack3r64 | 88.101.126.* | 31.1.2015 12:04 |
|
|
|
re: Kolik include je únosných? | # |
| Dobrý den, nemám kvalifikaci, kterou požadujete pro odpověď, ale vezměte to logicky:
Každý include znamená další čtení z disku, což je strašně pomalá operace (oproti čtení z RAMky). Pokud se podíváte na např. frameworky (Nette, jQuery) - což jsou právě ty složité aplikace - vydávají se ve verzi s mnoha soubory (pro vývoj a testování) a "minified" (zmenšené, 1 soubor se vším, tj. bez includů) verzi na produkci (reálné nasazení na hostingu).
Nevím, kolik snese hosting - myslím, že nemá limit - záleží spíše, jak pomalé načtení stránky snesete Vy... (odpovědět) | ivitek | 90.180.206.* | 31.1.2015 8:12 |
|
|
|
re: Kolik include je únosných? | # |
| Pokud se ti nepovede vytvorit nejakou smycku, ktera by inkludovala sama sebe (coz by ti nejspis vyhodilo error a stranka by se ani nenacetla), tak pocet include muze byt neomezeny (zalezi na rychlosti serveru, klienta apod.) , ale je to zbytecne tohle vubec resit.... (odpovědět) | ijkhkjbkoijoiou | 89.207.133.* | 31.1.2015 15:49 |
|
|
|
re: Kolik include je únosných? | # |
| V tomto případě by chyba nevyskočila a skript by běžel až do svého timeoutu a inkludovaný soubor by se ve stránce objevil tolikrát, kolikrát by stačil interpret během timeoutu soubor inkludovat :) Proto je vhodnější místo funkce include používat její ekvivalent include_once, který zajistí, že bude soubor inkludován pouze jednou i v případě, že bude mít programátor snahu tento soubor inkludovat vícekrát.
----------
Sec-Cave.cz - [link] (odpovědět) | |
|
|
re: Kolik include je únosných? | # |
| Nevím přesně, jak je fce include naprogramována, ale můžeme to zkusit odhadnout a zobecnit. Víme, že funkce include zahrnuje do stránky obsah souboru, který je jí předán jako parametr (teď opomenu možnost, že by místo cesty k souboru mohla být argumentem rověž URL adresa). Jinými slovy: Můžeme odhadovat, že se zobecněně chová funkce include stejně, jako by řádek
include('file_x.php');
byl interpretem jazyka nahrazen přímo obsahem souboru, takže něco jako
$code = "echo 'Ahoj'; include('file_x.php'); echo 'Zdar';";
$code = str_replace('include(\'file_x.php\');', file_get_contents('file_x.php'), $code);
Tento pseudokód ber s velkou rezervou. Snažím se tím pouze ukázat, jak (hodně, hodně a hodně vzdáleně) s funkcí include zachází přímo interpret jazyka PHP.
Z toho můžeme usuzovat, že spíše než výpočetně bude tento proces náročný paměťově. Ale i v tomto případě je pojem náročnost pravděpodoně irelevantní, protože nepředpokládám, že by tvůj výsledný kód měl celkovou velikost v řádu desítek a stovek megabajtů s tisíci a miliony iterací nebo generoval kód, který by se předával dál jako data a opět se nějak zpracovával :)
Zavěr: Z mého pohledu je tvá obava neopodstatněná i v případě třiceti includů. To si samosebou můžeš sám otestovat přímo u sebe na testovacím serveru (asi - nemám s tím zkušenost) v debug módu. Co se praxe týká, stáhni si zdrojové kódy například WordPressu a prostuduj si je. Zjistíš, že těch includů tam mají taky požehnaně :)
----------
Sec-Cave.cz - [link] (odpovědět) | |
|
|
re: Kolik include je únosných? | # |
| reff: nainstaluj si Apache JMeter a na vlastním serveru si zkus dopad na výkon serveru. Každá projekt je jiný, proto nečekej nějakou exaktní odpověď.
Osobně jsem řešil výkon Embedded web serverů. Zjistil jsem, že z důvodu maximální úspory prostředku je vhodné vkládat jak CSS tak Javascript přímo do html souboru. Výhoda se ztrácí až u hodně velkého CSS a Javascriptu. Tam je ale pak nutné správně nastavit cachování. Ono totiž u málo výkoných serverů (jako jsou v Embedded zařízeních) je důležité všechny data poslat ke klientovi v jednom TCP spojení. Tímto postupem se významně zvýší propustnost takového serveru. Nejsou totiž vyjímky kdy takový server dokáže obsloužit zároveň třeba pouhé tři sockety. (odpovědět) | Hnz2 | 85.71.231.* | 31.1.2015 21:58 |
|
|
|
re: Kolik include je únosných? | # |
| ok, díky za odpovědi :) (odpovědět) | reff | 94.113.156.* | 3.2.2015 7:16 |
|
|
|