Autor | Zpráva | ||
---|---|---|---|
Koudis Profil |
#1 · Zasláno: 23. 2. 2010, 17:07:11
Ahoj, rozhodl jsem se ve svách třídáxch používa namespace ... třídy do scriptu nahrávám přes spl__autoload (před ní mám spl_autoload_extensions('.php,.inc');) ... při použití namespace se mi jako parametr v spl__autoload($parametr) předá celá cesta k třídě (což je celkem logické) tedy: MyNamespace\JménoTřídy ... chci se zeptat jestli v php neexistuje funkce která by dokázala nahrát třídu ve tvaru MyNamespace\JménoTřídy ??
|
||
Majkl578 Profil |
#2 · Zasláno: 23. 2. 2010, 17:20:43
Tady by pravděpodobně pomohla implementace pomocí funkce spl_autoload_register, kde by se nastavil callback, který by jmenný prostor prvně upravil, např. na podtržítko a posléze načetl onen soubor.
|
||
Koudis Profil |
#3 · Zasláno: 23. 2. 2010, 17:30:00
Majkl578:
díky za radu, přes spl_autoload_register() je to dobrý nápad, problém je v tom že by to žralo celkem hodně času(ono se to nezdá ale těch 10 ms se dá využít i jinak :)) (viz. spl_autoload_register & spl_autoload with namespace - google.com ) ... mě jde spíš o to jestli neexistuje nějaká fce která by byla obsažena už přímo v PHP ... |
||
Jan Tvrdík Profil |
#4 · Zasláno: 23. 2. 2010, 18:19:18
„problém je v tom že by to žralo celkem hodně času“
Proč si to myslíš? Co by mělo trvat těch 10 ms? |
||
koudis Profil * |
#5 · Zasláno: 23. 2. 2010, 18:46:29
... těch 10 ms to naměří v JavaJmetr ... ( v micro time je to asi 8.1 prumerne)... ja jsem na netu našel jsenom scripty které si tu třídu s namespace nějak rozložilia pak načetli (nějak) ... to bylo taky tak kolem 10 ms (asi na 20 tříd, v normálním autoload bez namespace to bylo 2.9) .. pak mi jeden kolega pujcil script ( v php moc dlouho nedělám, spíše java, C++ atd ...) a ten byl zhruba 9 ... a to mě celkem štve ..ten poměr je 3 (9/2.9 je zhruba 3) ...
|
||
Jan Tvrdík Profil |
#6 · Zasláno: 24. 2. 2010, 16:58:07 · Upravil/a: Jan Tvrdík
Co by mělo trvat těch 10 ms? Nechci věřit tomu, že autoloading může zabrat tak dlouho. Co trvá skutečně dlouho je pouze vlastní proces načtení (require_once).
|
||
Časová prodleva: 14 let
|
0