Pogledajte određenu poruku
Staro 16. 05. 2006.   #1
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default __autoload() i SmartLoader

Na temi o optimizaciji spomenuh SmartLoader.

SmartLoadera pruža niz prednosti:

1. Učitaće se samo ono što je potrebno, a da programer ne gubi vreme oko ručnog održavanja zavisnosti
2. Koristi se include i require umesto include_once i require_once. Citat iz prezentacije Fast and Rich Apps by Rasmus Lerdorf:

Citat:
include_once and require_once don't play nice with opcode caches right now
3. Relacija između imena klase i njene lokacije se kešira. Keš se updateuje samo kad se loader nađe u situaciji da ne zna gde je određena klasa (izmena, premeštanje, dodatak nove klase itd).
4. Za max performanse: Kad završiš sa razvojem možeš napisati hack da se skroz preskače učitavanje SmartLoader klase. Učitaš index fajl i napišeš kratku __autoload() funkciju koja pristupa indexu kroz $GLOBALS (gde SmartLoader čuva relacije). Uostalom, jedna konstanta na pravom mestu može da odlučuje da li će se učitavati SmartLoader (razvoj) ili je skripta u produkcionom okruženju i već imamo gotov index koji samo učitamo i koristimo.

Mana: čuvajte se include patha. Ako se previše klasa nalazi u njemu ograničite ga samo na potrebne foldere. Meni se u include path nalazi PEAR. Kakav haos kad je tu uleteo. Hard se zažario

Citat:
Originalno napisao bluesman
You lazu SOB Zar ti nisu klase na jednom mestu? Zar je toliko problem zapamtiti jedan path?
Klasu su na predviđenim mestimam, ali nisu u jednom folderu (pošto ih ima dosta). SmartLoader koristim zbog gore navedenog, ne zato što ne znam gde su klase

Poslednja izmena od Ilija Studen : 16. 05. 2006. u 01:03.
Ilija Studen je offline   Odgovorite uz citat