ugrás a tartalomhoz

teljesítmény a request-elt fájlok függvényében

kalamona · 2006. Már. 26. (V), 01.00
Üdv!

Befolyásolja e az oldal teljesítményét s mennyire, hogy a http kéréseket hány fájl között osztjuk szét?

Azt értem ez alatt hogy előnyös-e, vagy hátrányos, ha minden kérés egy közös index.php-n fut keresztül, amely feldolgozza és a feladattól függően meghívja az adott funkcióhoz kellő egyéb .php-ket.
Érdemes e szétoszlatni a terhelés olyan módon, hogy kapásból arra a szkriptre linkelünk ami felelős az adott dologért?

tehát pl: login.php, adduser.php, buy.php
vagy: index.php?func=login,index.php?func=adduser,index.php?func=buy ...stb

- számíthat ez?
- melyik a jobb választás?
- mi a helyzet nagy oldallátogatottság esetén? ott már tényező lehet ez is?

Mit szóltok?

Köszönöm.
 
1

Szerintem...

-zsolti- · 2006. Már. 26. (V), 01.34
...valahol a kettő közt. Ha nagyon széttagolod, átláthatatlan lesz az egész, nehezen karbantartható, ráadásul a keresztbe-kasba includolással lehet, hogy még többet vesztesz, nem beszélve az ismétlődő kódrészletekről (pl. authentikálás, stb.), ami összességében a rendszer méretet is megnöveli. Én modul szinten készítenék "útválasztó" fájlokat, amik az adott modul funkciót fogják össze, + mod_rewrite-ot is használnék, hogy szép logikus címeket lehessen készíteni:

/felhasznalok(/.*)* -> /modules/felhasznalok/index.php
/shop(/.*)* -> /modules/webshop/index.php

A modul szintű funkciókezelés pedig már a modul központi fájljában történne egy case segítségével. Így valamennyire szét is van osztva, és a központiság, azaz a viszonylag könnyű karbantarthatóság is megmaradt.
2

Autoloader

janoszen · 2006. Már. 26. (V), 01.42
Próbáld ki a PHP5-ös autoloadert. Amióta megtaláltam, nem fejlesztek PHP4 alá... :P Persze, ahhoz OO-ban kell programozni.

Én úgy csinálom, hogy egy index.php, .htaccess mod_rewrite, init.php, ami betölti az autoloadert és a beállításvezérlőt, aztán abból már osztályszinten a Core_Main.php-t és társait. Gyönyörű csomagmenedzsmert.

Ha deployment kell, akkor a Firefoxból koppintsd le a chrome manifestet és csinálj valami hasonlót és kész a deployment rendszer kompatibilitás és dependency menedzsmenttel.