Rozdělení do modulů Nette 2.1.2 [Vyřešeno]
- Dawerx
- Člen | 9
Ahoj.
Potřeboval bych radu, ve výše uvedené verzi Nette mi nejde pracovat s moduly. Pročetl jsem si pár podobných témat, ale nic z toho nepomohlo.
Adresářová struktura
app/
--/FrontModule
------/presenters
------/templates
--/AdminModule
------/presenters
------/templates
Homepage presenter pro FrontModule
<?php
namespace App\FrontModule;
/**
* Homepage presenter.
*/
class HomepagePresenter extends \App\FrontModule\BasePresenter
{
public function renderDefault()
{
$this->template->anyVariable = 'any value';
}
}
Router
<?php
namespace App;
use Nette,
Nette\Application\Routers\RouteList,
Nette\Application\Routers\Route,
Nette\Application\Routers\SimpleRouter;
/**
* Router factory.
*/
class RouterFactory {
/**
* @return \Nette\Application\IRouter
*/
public function createRouter() {
$router = new RouteList();
$router[] = new Route('admin/<presenter>/<action>/<id>', array(
'module' => 'admin',
'presenter' => 'Main',
'action' => 'default',
'id' => NULL,
));
// Add general route
$router[] = new Route('<presenter>/<action>/<id>', array(
'module' => 'Front',
'presenter' => 'Homepage',
'action' => 'default',
'id' => NULL,
));
return $router;
}
}
Error:
Cannot load presenter ‚Front:Homepage‘, class
‚App\FrontModule\Presenters\HomepagePresenter‘ was not found in ‚cesta
k webu\app/FrontModule/presenters/HomepagePresenter.php‘
Nicméně presenter existuje, nejspíš to souvisí s Namespace ale nevím si rady.S moduly jsem dřív pracoval, a nikdy nebyl problém.
Je to projekt, který jsem vytvořil přes composer.
Díky za rady nebo odkaz.
Editoval Dawerx (21. 4. 2014 16:10)
- Tomáš Votruba
- Moderator | 1114
@Dawerx: Presenter opravdu neexistuje. Je potřeba
číst pozorně a porovnávat názvy doslova. (Mně pomáhá označit
požadovanou cestu ctrl+c
a ctrl+f
v seznamu
souborů.)
namespace App\FrontModule;
class HomepagePresenter extends \App\FrontModule\BasePresenter
Oprav na
namespace App\FrontModule\Presenters;
class HomepagePresenter extends \App\FrontModule\BasePresenter
Editoval Tomáš Votruba (21. 4. 2014 16:01)