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