Problém s new $variableClass
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- ondrs
- Člen | 8
Zdravim,
v BasePresenteru mam tovarnicku
protected function createComponentForm()
{
$explode = explode(':', $this->presenter->name);
$presenter = end($explode);
$className = $presenter . 'Form';
//return new CategoriesForm($this->context->db);
return new $className($this->context->db);
}
V jeho detech pak pouze vytvarim formularove komponenty. Problem je, ze kod
return new $className($this->context->db);
skonci
Fatal Error
Class ‚CategoriesForm‘ not found
i kdyz $className == ‚CategoriesForm‘
Predpokladam, ze pujde o nejakou chybu/vlastnost PHP. (pouzivam 5.3).
Vite jak takovy problem resit?
- Ascaria
- Člen | 187
Tipoval bych že neproběhne autoloading, zkus vytvořit takhle dvě stejné třídy:
$x = new CategoriesForm($this->context->db); // tady to teda nefailne pac rikas ze ti to jde a zaroven to prinuti tridu "se loadnout"
return new $className($this->context->db); // hodi to chybu ted?
Editoval Ascaria (9. 8. 2012 13:54)
- ondrs
- Člen | 8
Takže problém vyřešen
protected function createComponentForm()
{
$explode = explode(':', $this->presenter->name);
$presenter = end($explode);
$className = '\AdminModule\\' . $presenter . 'Form';
return new $className($this->context->db);
}
Proč ale musím takto uvádět i kompletní namespace?
- Vojtěch Dobeš
- Gold Partner | 1316
To je otázka na PHP, nikoliv Nette fórum, ne? Nejde nicméně o chybu, ale vlastnost jazyka.