| | |
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
Autor | Správa |
---|
Registrovaný: 30.06.07 Prihlásený: 26.11.19 Príspevky: 69 Témy: 40 | Napísal quark: 14.05.2012 14:23 | |
|
Neviem si poradit s problemom (PHP v5.3) ked chcem automaticky nacitavat triedy ktore vyuzivaju namespace.
Mam triedu:
Kód: namespace Models;
class Test { public function __construct() { ... } } co sa tyka autoloading funkcie mam Kód: spl_autoload_extensions('.php'); spl_autoload_register(array($this, 'load')); funkcia load je v poriadku a teraz ked zavolam Kód: new \Models\Test(); tak vsetko prebehne v poriadku. Ked ale zavolam Kód: new Test(); vyhodi mi to chybu Class 'Test' not found in ... funkcia load sa stara aj o to ze ci vlozim celu cestu k triede alebo len nazov triedy vzdy includne to iste. Takze v tomto nebude chyba. Kazdopadne som si dal vypisat ze co includuje a v oboch pripadoch ci je to cez Kód: new \Models\Test() alebo len Kód: new Test() je cesta k includovanemu suboru rovnaka.
Predpokladam ze chyba je prave s tym namespaceom. Ked som pre triedu Test zrusil namespace (resp. som odstranil riadok namespace Models;) tak uz to islo pre new Test() a opacne pre new \Models\Test() to neslo.
Viete mi poradit ako sa mam s tymto problemom vysporiadat? Uz ma nic nenapada.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 14.05.2012 16:19 | |
|
No vsak ta trieda Test existuje len v mennom priestore Models, ale nie v globalnom namespace, preto je samozrejme, ze neexistuje. Vyskusaj si nebavkat sa so subormi, naincludovat ich poctivo a aj tak by si mal uvidiet, ze ti new Test() vyhadzuje chybu. S mennymi priestormi v PHP som nerobil, ale toto mi pride celkom logicke.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|