Rozdělení aplikace na moduly 2.1
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Hurass
- Člen | 114
Zdravím, používám nette 2.1.0 a chtěl bych aplikaci rozdělit na
moduly.
Struktura:
-app
-FrontendModule
-model
-presenters
-templates
-BackendModule
-model
-presenters
-templates
Router:
$frontendRouter = new RouteList('Frontend');
$frontendRouter[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
Zkoušel jsem namespace Frontend i FrontendModule i bez namesmace, ale přesto si nevým rady a hlásí mi to chybu.
Cannot load presenter 'Frontend:Homepage', class 'App\FrontendModule\HomepagePresenter' was not found in '/var/www/LiteCMS/app/FrontendModule/presenters/HomepagePresenter.php'.
Třída HomepagePresenter je umístěna, nevím proč jí není možné najít.
- castamir
- Člen | 629
Všimni si toho App na začátku…
config.neon
nette:
application:
mapping:
*: App\*Module\*Presenter
router
class RouterFactory
{
/**
* @return \Nette\Application\IRouter
*/
public function createRouter()
{
$router = new RouteList();
$router[] = $module = new RouteList('Admin');
$module[] = new Route('admin/<presenter>/<action>[/<id>]', 'Homepage:default');
$router[] = $module = new RouteList('Front');
$module[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$module[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
return $router;
}
}
presentery:
namespace App\FrontModule;
use App\BasePresenter as Presenter;
class SignPresenter extends Presenter
{
}
Mělo by být jedno, kde ty reentery v rámci složky app/ máš. Já je mám v App/modules/module_name a submoduly vždy ve složkách typu App/modules/module_name/modules/submodul_name/