Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 2 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.06.07
Prihlásený: 26.11.19
Príspevky: 69
Témy: 40
Príspevok NapísalOffline : 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.


Offline

Čestný člen
Čestný člen
Autoloading + namespaces

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 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.


Odpovedať na tému [ 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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra