pomoc s CliRouterem, prázdné defaults
- Oggy
- Člen | 306
Potřebuji spouštět metody v aplikaci přes CRON, chtěl jsem využít CliRouter, ale nemohu mu nastavit defaults .. jeho routa se mi nikdy nematchne.
kód vypadá nějak takto:
<?php
$container->router = $router = new RouteList;
$return = $router;
//jen na testovani ..ma byt consoleMode
if (!$container->params['productionMode']) {
$container->application->allowedMethods = FALSE;
$return[] = new CliRouter(array('action' => 'Front:Homepage:cron'));
} else {
... //klasicke routy
}
?>
zkoušel jsem
<?php
new CliRouter(array('Front:Homepage:cron'));
?>
nebo
<?php
new CliRouter(array('presenter'=>'Homepage', 'action'=>'cron'));
?>
nemá s CliRouterem někdo větší zkušenost?
Editoval Oggy (19. 1. 2012 18:23)
- Patrik Votoček
- Člen | 2221
- detekce Console módu pomocí productionMode je blbost. Dej si
tam
PHP_SAPI == 'cli'
- v nejnovějším Nette už
$container->application->allowedMethods = FALSE;
není potřeba $return = $router;
je blost… proč něco takového vůbec děláš?- chybí ti modul:
new CliRouter(array('module'=>'Front','presenter'=>'Homepage', 'action'=>'cron'));
- Oggy
- Člen | 306
1. detekce samozřejmě pomocí
$container->params['consoleMode']
..jen jsem si to testoval.. to
není ten problém
2.OK
3. no je tu jen výřez kódu..v Boostrapu volám metodu Approuter metodu
initializa..ve který mám routy.. takže proto ten return..
4. taky jsem samozřejmě zkoušel..ale ani tohle právě nejde
Editoval Oggy (19. 1. 2012 22:14)
- Oggy
- Člen | 306
Ale zjišťuju, že te Clirouter vlastně nepotřebuju… ono to nevyřešilo
problém, ale obešli jsme ho..
Zavolám si jakoukoli metodu..to asi není to pravé ořechové…ale zase
kontroluju v ní zda je volána z console…
<?php
public function actionCron() {
if (!$this->getContext()->params['consoleMode']) {
throw new \Nette\Security\AuthenticationException;
}
...
$this->terminate();
}
?>