Kdyby/Console command bez konzole

duskohu
Člen | 778
+
0
-

Caute snazim sa spustit commasnd z presentru ale vracia mi to error: `[Symfony\Component\Console\Exception\CommandNotFoundException]
There are no commands defined in the „user“ namespace.` Neviete mi poradit co robim zle? cez konzolu to ide bez problemov.

// DI
$container->addDefinition($this->prefix('verifySynchronizeLdapUsersCommand'))
->setClass('Nas\UsersModule\DI\VerifySynchronizeLdapUsersCommand')
->addTag('kdyby.console.command');
use Symfony\Component\Console\Input\ArrayInput;
use Kdyby\Console\StringOutput;
use Symfony\Component\Console\Application;

/** @var  Application */
protected $app;

$input = new ArrayInput(
	array(
		'command' => 'user:verifyLdapSynchronize'
	)
);
$input->setInteractive(FALSE);
$output = new StringOutput();

$returnCode = $this->app->run($input, $output);
bd($returnCode);
bd($output->getOutput());

Editoval duskohu (14. 6. 2017 13:57)

jiri.pudil
Nette Blogger | 1028
+
+2
-

Přidej si do app ten command: $this->app->add(new VerifySynchronizeLdapUsersCommand()), mimo CLI SAPI se to samo neudělá :)

duskohu
Člen | 778
+
0
-

@jiri.pudil parada , dakujem funguje :-)

Svaťa Šimara
Člen | 98
+
+3
-

@duskohu Zamyšlení – Není náhodou Presenter UI Controller a Command CLI Controller?

Spouštět jeden controller z druhého je přinejlepším dost zvláštní…

Zkus si říct, že bys spouštěl Presenter z Commandu. Divné, co?

duskohu
Člen | 778
+
0
-

Svaťa Šimara napsal(a):

@duskohu Zamyšlení – Není náhodou Presenter UI Controller a Command CLI Controller?

Spouštět jeden controller z druhého je přinejlepším dost zvláštní…

Zkus si říct, že bys spouštěl Presenter z Commandu. Divné, co?

Samozrejme ze to neni uplne ok, ale nechcelo sa mi pisat speci. sluzbu na tento command, potreboval som to jednorazovo spustit.

Tomáš Votruba
Moderator | 1114
+
0
-

@duskohu Souhlasím se Sváťou, že by logika měla ležet mi delegator (controller, presenter, command, subscriber…).

Ale to je tím, že jsem strašně línej. Než abych psal na fórum, tak bych to udělal za 20 vteřin čistě :).