Nenalezena komponenta v modulu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Rampa
Člen | 65
+
0
-

Ahoj,
začínám si hrát s mudulama a nějak to nemůžu rozchodit :(

Používám Nette 1.x s NameS. a PHP 5.3. Podle příkladu jsem si udělal adresáře a vložil přislušné namespace…

Takže mám třeba:

<?php
namespace FrontModule;
use Nette;
abstract class BasePresenter extends Nette\Application\Presenter {
...
...
...
    public function createComponentUser(){
	$tmp=new UserControl($this,'user'); 	//// tady to zařve
	return $tmp;
    }
}
?>

A v \app\FrontModule\components mám soubor UserControl.php:

<?php
namespace FrontModule;
class UserControl extends Nette\Application\Control {
    public function render() {
	... etc....
    }
}
?>

No a problém nastane v továrničce komponenty kde laděnka vyhodí Fatal Error Class ‚FrontModule\UserControl‘ not found
Určitě to bude nějaká blbost, nějaký zapomenutý namespace nebo use… ale hraju s i s tím od včerejka a nemůžu na to přijít…
Díky za radu…

//edit
Tak teď jsem trošku pokročil.. Přesunul jsem složku components z FrontModule do app a už to jede…
Nevím, jestli je to bug nebo schválně, ale robot ty komponenty nějak nenajde ve složce modulu…
Ale rád bych je měl oddělené pro jednotlivé moduly. Jde to nějak udělat?

Editoval Rampa (1. 7. 2010 13:12)

Majkl578
Moderator | 1364
+
0
-

Rampa napsal(a):

Ahoj,
začínám si hrát s mudulama a nějak to nemůžu rozchodit :(

Používám Nette 1.x s NameS. a PHP 5.3. Podle příkladu jsem si udělal adresáře a vložil přislušné namespace…

Takže mám třeba:

<?php
namespace FrontModule;
use Nette;
abstract class BasePresenter extends Nette\Application\Presenter {
...
...
...
    public function createComponentUser(){
	$tmp=new UserControl($this,'user'); 	//// tady to zařve
	return $tmp;
    }
}
?>

Doporučuji používat tuto formu zápisu:

public function createComponentUser($name)
{
	return new UserControl($this, $name);
}

Nemusíš tak řešit případné problémy při přejmenování továrničky. A na konci PHP souboru nemusíš psát ?>, vyhneš se tak potencionálním problémům s výstupem (např. dvě \n za ?>).

Nevím, jestli je to bug nebo schválně, ale robot ty komponenty nějak nenajde ve složce modulu…

Najde je všude, kde má nastavené procházení, smazal jsi cache?