Vlastní komponenta – Class ‚App\Presenters\Test‘ not found
- xjurny
- Člen | 3
Zdravím, vytvořil jsem vlastní komponentu a když jí chci použít, vyskočí chybová hláška „Class ‚App\Presenters\Test‘ not found“. Nevíte, čím to může být?
HomePagePresenter.php (uloženo v „app/presenters“):
<?php
namespace App\Presenters;
use Nette,
App\Model;
class HomepagePresenter extends BasePresenter {
public function renderDefault() {
$this->template->anyVariable = 'any value';
$test = new Test();
}
}
?>
Třída komponenty (uloženo v „app/components“):
<?php
use Nette\Application\UI\Control;
class Test extends Control {
public function render() {
echo "test";
}
}
?>
No a v šabloně mám {control test}
- David Matějka
- Moderator | 6445
nesouvisi s nette, ale s neznalosti namespacu
Test
nemas v zadnem namespace, proto do presenteru musis bud
pridat use Test
, nebo pouzit FQN – new \Test
- Pavel Macháň
- Člen | 282
xjurny napsal(a):
Zdravím, vytvořil jsem vlastní komponentu a když jí chci použít, vyskočí chybová hláška „Class ‚App\Presenters\Test‘ not found“. Nevíte, čím to může být?
…
Jak už tady psali ostatní.. new \Test
Každopádně ani stim ti to nebude fungovat. Komponentu do presenteru pridas
pomoci:
// createComponent se pouzije pak v sablone jako jmeno komponenty
public function createComponentMojeKomponenta() {
return new \Test;
}
public function createComponentCokoliv() {
return new \Test;
}
Šablona
{control mojeKomeponenta}
{control cokoliv}
Továrničkou ti nebudu motat hlavu a raději si přečti znova dokumentaci + mrkni na http://www.php.net/…mespaces.php
Editoval EIFEL (10. 3. 2014 23:45)