CLI chyba statické volání CreateRouter

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
wohral
Člen | 13
+
0
-

Ahoj, mám problém s CLI
V aplikaci chci rozjet CLI, se kterým nemám moc zkušenosti a tak jsem postupoval podle návodu od Honzy Zlámala
http://zlml.cz/…ev-clirouter

Samotná aplikace jede v pohodě, ale problém nastane, když volám appku přes cli,
při zavolání php www/index.php Cli:Cli:cron mi to zaloguje tuto chybu:

[2016-04-07 18:08:33] PHP Strict standards: Non-static method App\RouterFactory::createRouter() should not be called statically, assuming $this from incompatible context in /temp/cache/Nette.Configurator/Container_bff1092afc.php:3161 {"at":"CLI: www/index.php Cli:Cli:cron"} []
[2016-04-07 18:08:33] PHP User Deprecated: Nette\DI\Container::__get() is deprecated; use getService() or enable di.accessors in configuration. in /www/autoportal/vendor/nette/di/src/DI/Container.php:320 {"at":"CLI: www/index.php Cli:Cli:cron"} []

config.neon

services:
	routerFactory:
		class: App\RouterFactory
		arguments:
			config: @config
	router: @routerFactory::createRouter

RouterFactory:

class RouterFactory
{
	private $config;

	public function __construct(Config $config)
	{
		$this->config = $config;
	}

	/**
	 * @return Nette\Application\IRouter
	 */
	public function createRouter()
	{
		$router = new RouteList;

		if ($this->config->get('consoleMode')) {
			$router[] = new CliRouter(array(
				'action' => 'Cli:Cli:cron'
			));
		} else {
			$router[] = new Route('<presenter>/<action>/<id>', array(
				'module' => 'Base',
				'presenter' => 'Actions',
				'action' => 'default',
				'id' => NULL,
			));

			$router[] = new Route('<presenter>/<action>[/<id>]', 'Actions:default');
		}

		return $router;
	}
}

Moc si s tím nevím rady, jestli to chápu dobřem tak mi to řve, že volám createRouter staticky i když to statická funkce není. Je to potřeba pro CLI volat nějak jinak nebo v čem může být problém?

Předem díky všem za radu a nakopnutí

David Matějka
Moderator | 6445
+
0
-

smazal si cache?

wohral
Člen | 13
+
0
-

Moc děkuji. Na smazání cache jsem úplně zapomněl. :) Problém mi to vyřešilo ale vznikl hned nový, nevím čím to, ale asi mi to koliduje s nějakým pluginem, jelikož se mi vrací chyba

[Symfony\Component\Console\Exception\CommandNotFoundException]
There are no commands defined in the "Cli:Cli" namespace
Robin Martinez
Člen | 89
+
0
-

mas tam v tom CliModule/CliPresenter-u tu akci actionCron()? :)

David Matějka
Moderator | 6445
+
0
-

Mas tam totiz nainstalovanou symfony console (mozna si to instaloval spolu s kdyby/doctrine nebo tak).. tak kdyz uz ji tam mas, tak ji rovnou pouzi a nemusis resit nejaky svoje cli presentery :)

https://github.com/…n%2Findex.md

wohral
Člen | 13
+
0
-

David Matějka napsal(a):

Mas tam totiz nainstalovanou symfony console (mozna si to instaloval spolu s kdyby/doctrine nebo tak).. tak kdyz uz ji tam mas, tak ji rovnou pouzi a nemusis resit nejaky svoje cli presentery :)

https://github.com/…n%2Findex.md

JJ to se tam opravdu nainstalovalo. Zkusím si s tou konzolí pohrát