In event you have access to console object so you can get all parameters and commands.
Access to console is offered by object:
$this->console
Take a look at example:
/src/SkynetUser/MyListener.php
public function onConsole()
{
if($this->console->isConsoleCommand('foo'))
{
/* do something */
}
}
Code above checks for command foo exists in input.
Method isConsoleCommand('COMMAND_NAME'):
$this->console->isConsoleCommand('foo')
returns TRUE if there is command @foo typed in console.
Note that argument passed here is without @ prefix.
At next, you can depends your actions in EventListener from command existing.
To get command data (like its params) you must use
$this->console->getConsoleCommand('COMMAND_NAME');
This method returns SkynetCommand object.
Every SkynetCommand has two most commonly using methods:
$command->getCode()
whitch returns command string name (without @ prefix)
$command->getParams()
whitch returns array with params passed to command.
Example:
/src/SkynetUser/MyListener.php
public function onConsole()
{
if($this->console->isConsoleCommand('foo'))
{
$command = $this->console->getConsoleCommand('foo');
$name = $command->getCode(); // foo
$params = $command->getParams(); // params passed to @foo
}
}
This was about getting commands data, if you want to get parameters passed into console (like foo:bar) you must get parameters list via:
/src/SkynetUser/MyListener.php
public function onConsole()
{
$params = $this->console->getConsoleRequests();
foreach($params as $paramName => $paramValue)
{
// some code here
}
}
Example:
If parameter foo with value bar was passed into webconsole by typing:
foo:bar
then you will see this parameter in:
/src/SkynetUser/MyListener.php
public function onConsole()
{
$params = $this->console->getConsoleRequests();
foreach($params as $paramName => $paramValue)
{
// $paramName <<< foo
// $paramValue <<< bar
}
}
Returned values:
Method onConsole() can returns string.
If any string is returned it will be display in Console output window in Skynet Control Panel.
Example:
/src/SkynetUser/MyListener.php
public function onConsole()
{
if($this->console->isConsoleCommand('foo'))
{
return 'Command foo is passed';
}
}