Zatěžování serveru při include – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Zatěžování serveru při include – PHP – Fórum – Programujte.comZatěžování serveru při include – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
10. 4. 2007   #1
-
0
-

Chci se optat, jak moc je server zatěžován při includování souborů. Abyste rozumněli mému problému:
V jedné složce mám různé soubory s třídami a funkcemi, které jsou většinou potřeba pro běh webu. Ale ne všechny. Na začátek index.php (celý web jde jen přes tento soubor) jsem si přidal toto:

$slozka = dir($DIR["classes"]);

while($soubor=$slozka->read())
{
if ($soubor=="." || $soubor=="..") continue;
include $DIR["classes"].$soubor;
}
$slozka->close();

Tedy skriptík, který automaticky načte všechno z dané složky, což mně usnadňuje dost práci. Nemusím se starat, co už jsem naincludoval a co ne a kdykoliv udělám novou knihovnu, stačí ji jenom nakopírovat do dané složky a je po starostech. Jenže jak už jsem říkal, ne všechny jsou potřeba při každém zobrazení stránky, tak 30% není vždy potřeba. Takže jak:

a) je to humus a nemám bejt línej to vypisovat ručně když tu danou třídu potřebuju ;-)
b) nároky na server jsou zanedbatelné a můžu to nechat jak to je

Stačí napsat a nebo b a proč;-)

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
Prog.0
Věrný člen
11. 4. 2007   #2
-
0
-

V PHP5 na to existuje http://www.php.net/__autoload.

Najprv zadefinujes funkciu __autoload(), ktorou urcis, co sa ma urobit, ak sa vytvara novy objekt podla neexistujucej triedy -> Urcis prave to, aby sa naincludoval potrebny subor obsahujuci classu.

function __autoload ($class_name) { include_once ('./classes/class_' . $class_name . '.php'); }


Teraz ked niekde zavolas
$xyz = new CLASSXYZ(...);
a ak CLASSXYZ este nebola definovana, tak php sam zavola __autoload('CLASSXYZ') -> naincluduje sa subor "./classes/class_CLASSXYZ.php".

Takto sa nemusis zaujimat o to, ktore subory na zaciatku scriptu includovat. Staci len jeden, v ktorom budes mat definovanu autoload funkciu a ta sa postara o zbytok...



Nahlásit jako SPAM
IP: ...–
Prog.
11. 4. 2007   #3
-
0
-

To Prog.: Moc dik, o tomhle sem nemel ani tuseni. Jedinej problem je v tom, ze je to PHP5, ja se snazim jeste pouzivat 4, protoze nevim, na kterym serveru co pobezi. Ale muzu si udelat jednoduchou alternativu, pokud PHP4 necham to nacist vse, pokud to bude bude 5, pouziju autoload.

Nahlásit jako SPAM
IP: ...–
Radoslav Pala0
Super člen
12. 4. 2007   #4
-
0
-

To tobik: podla mna by bolo vyhodnejsie pred vytvorenim instancietriedy subor pripojit pomocou require_once . Ak totiz naincludujes vsetky triedy a vacsina nebude pouzita je to zbytocna strata vykonu ...

Nahlásit jako SPAM
IP: ...–
Rady Pala - www.radypala.sk ,tvorca MojaTrieda - http://mojatrieda.radypala.sk, elan.radypala.sk
Prog.0
Věrný člen
12. 4. 2007   #5
-
0
-

Jedna z moznosti ako to zvladnut v php4 je vytvorit si vlastnu funkciu na vytvaranie novych objektov. Namiesto [podtrzene]$x = new a;[/podtrzene] sa bude pouzivat [podtrzene]$x = myNew('a');[/podtrzene]. Funkcia by checkla ci trieda existuje (class_exists()), ak nie -> require_once...

Nahlásit jako SPAM
IP: ...–
Prog.
12. 4. 2007   #6
-
0
-

To radypala: Tomu jsem se právě snažil vyhnout:) abych to nemusel neustále vypisovat. A jinak co jsem to tak zkoumal, použiju v každé stránce 70% knihoven, takže to není zas tak hrozné s tím výkonem.

To Prog.: No jasně, ale já to asi udělám, jak to píšeš před tím. Na PHP5 přejdou časem všichni, a pokud to bude php4, tak holt načtu vše. Zas tak nic moc hroznýho se nestane:)

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 87 hostů

Podobná vlákna

Prodleva při připojení k serveru — založil Matěj Kučera

Zatěžování Firefoxem — založil Bengo

Include — založil Michal115

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý