diff --git a/src/CliProgram/CommandCall/CommandCall.php b/src/CliProgram/CommandCall/CommandCall.php index 93f77f2..e09d608 100644 --- a/src/CliProgram/CommandCall/CommandCall.php +++ b/src/CliProgram/CommandCall/CommandCall.php @@ -25,8 +25,8 @@ class CommandCall { private Arrayy $commandArguments; /** - * @param string|Command $commandName The new command name - * @param null|Arrayy $commandArguments The command new arguments + * @param string|class-string|Command $commandName The new command name + * @param null|Arrayy $commandArguments The command new arguments */ public function __construct (string|Command $commandName, ?Arrayy $commandArguments = null) { $this->setCommandName($commandName); @@ -70,14 +70,20 @@ class CommandCall { /** * Set the command name * - * @param string|Command $commandName The new command name + * @param string|class-string|Command $commandName The new command name * * @return $this */ public function setCommandName (string|Command $commandName): self { - $this->commandName = $commandName instanceof Command - ? CliHelper::getCommandNameFromClass($commandName->getApplication(), $commandName::class) - : $commandName; + if ($commandName instanceof Command) { + $this->commandName = CliHelper::getCommandNameFromClass($commandName->getApplication(), $commandName::class); + } + elseif (class_exists($commandName)) { + $this->commandName = CliHelper::getCommandNameFromClass($commandName->getApplication(), $commandName); + } + else { + $this->commandName = $commandName; + } return $this; }