Více routerů v modulové aplikaci (modul=extension)
- Kamil Valenta
- Člen | 815
Já mám v DI jen ten „core router“ a ty podružné si on vytváří „ručně“.
/**
* @return \Nette\Application\IRouter
*/
public function createRouter()
{
$router = new RouteList();
foreach ($this->routy->vratPovoleneModuly() as $moduleDir) {
$moduleName = \Nette\Utils\Strings::firstUpper($moduleDir);
$moduleClassName = '\\App\\'.$moduleName.'\\RouterFactory';
if (class_exists($moduleClassName)) {
$objRouter = new $moduleClassName($this->routy, $this->database, $this->cache_storage);
if (method_exists($objRouter, 'createRouter')) {
$router[] = $objRouter->createRouter();
}
}
}
return $router;
}
Držím jistou uniformitu routerů, takže mi nevadí takto ručně předané závislosti.
- Petr Parolek
- Člen | 455
další řešení je použití https://github.com/…er/tree/v2.1#… , které sám hojně využívám.