Autor Zpráva
Koudis
Profil
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
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
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
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 *
... 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
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).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: