aplikace jen přes příkazový řádek

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

Ahoj,

vytvářím si malou aplikaci, kterou budu ovládat jen přes příkazový řádek. Mám dva dotazy.

1)

jde nějak udělat to,aby při zavolání

<?php
public function actionFoo(){
 //kod
}
?>

to po mě nechtělo šablonu a jen se provedl kod? Chápu že tam mohu dát $this->terminate(), ale to mi přijde třeba při 15 metodách takové nehezké :-)

  1. jdou nějak elegantně dumpovat proměnné do příkazové řádky?

Děkuji

Editoval batko (3. 9. 2014 8:57)

voda
Člen | 561
+
+4
-

Na cli aplikace se Presentery nehodí, použij Symfony\Console. Pro integraci s Nette můžeš využít Kdyby\Console.

batko
Člen | 219
+
0
-

Děkuji, to vyzkouším!

batko
Člen | 219
+
0
-

Funguje to zatím skvěle.

Jde nějak volat příkazy i z prohlížeče kvůli testování?

voda
Člen | 561
+
0
-

Proč (a jak) chceš testovat cli aplikaci z prohlížeče? Vždyť se jedná o úplně jiné prostředí, jiné vstupy a výstupy, …

David Matějka
Moderator | 6445
+
+2
-

muzes si udelat presenter, ktery je bude spoustet

class CommandPresenter extends BasePresenter
{
	/** @var \Kdyby\Console\Application @inject */
	public $console;

	public function actionDefault()
	{
		$input = new Symfony\Component\Console\Input\ArrayInput(array(vstup, ktery nevim jak ma persne vypadat, vygoogli si to...));
		$output = new Kdyby\Console\StringOutput();
		$command = $this->console->get('nazev:prikazu');
		$commandObject->run($input, $output);
	}
}