1
0
mirror of synced 2024-11-24 22:06:06 +03:00
service-bundle/Messenger/CommandMessage.php

72 lines
1.4 KiB
PHP
Raw Normal View History

2021-03-31 11:00:48 +03:00
<?php
namespace RetailCrm\ServiceBundle\Messenger;
abstract class CommandMessage
{
2022-07-20 14:38:42 +03:00
protected string $commandName;
2021-03-31 11:00:48 +03:00
2022-07-20 14:38:42 +03:00
protected array $options = [];
2021-03-31 11:00:48 +03:00
2022-07-20 14:38:42 +03:00
protected array $arguments = [];
2021-03-31 11:00:48 +03:00
public function getCommandName(): string
{
return $this->commandName;
}
public function setCommandName(string $commandName): void
{
$this->commandName = $commandName;
}
public function getOptions(): array
{
return $this->options;
}
public function setOptions(array $options): void
{
$this->options = $options;
}
public function getArguments(): array
{
return $this->arguments;
}
public function setArguments(array $arguments): void
{
$this->arguments = $arguments;
}
public function addOption(string $key, string $value): void
{
$this->options[$key] = $value;
}
public function addArgument(string $key, string $value): void
{
$this->arguments[$key] = $value;
}
public function getFormattedOptions(): array
{
$options = [];
foreach ($this->options as $option => $value) {
$options['--' . $option] = $value;
}
return $options;
}
2021-04-16 13:37:47 +03:00
public function __serialize(): array
{
return [
'commandName' => $this->getCommandName(),
2021-04-16 13:37:47 +03:00
'arguments' => $this->getArguments(),
'options' => $this->getOptions()
];
}
2021-03-31 11:00:48 +03:00
}