Kolik include je únosných?

HackForum

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)
RubberDuck | E-mail | Website31.1.2015 18:54
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)
RubberDuck | E-mail | Website31.1.2015 18:50
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

Zpět
Svou ideální brigádu na léto najdete na webu Ideální brigáda
 
 
 

 
BBCode