mult1mate\crontab\TaskRunner::parseAndRunCommand PHP Method

parseAndRunCommand() public static method

Parses given command, creates new class object and calls its method via call_user_func_array
public static parseAndRunCommand ( string $command ) : mixed
$command string
return mixed
    public static function parseAndRunCommand($command)
    {
        try {
            list($class, $method, $args) = TaskManager::parseCommand($command);
            if (!class_exists($class)) {
                TaskLoader::loadController($class);
            }
            $obj = new $class();
            if (!method_exists($obj, $method)) {
                throw new TaskManagerException('method ' . $method . ' not found in class ' . $class);
            }
            return call_user_func_array(array($obj, $method), $args);
        } catch (\Exception $e) {
            echo 'Caught an exception: ' . get_class($e) . ': ' . PHP_EOL . $e->getMessage() . PHP_EOL;
            return false;
        }
    }

Usage Example

 public function testParseAndRunCommand()
 {
     $result = TaskRunner::parseAndRunCommand('mult1mate\\crontab_tests\\ActionMock::returnResult()');
     $this->assertTrue($result);
     $result = TaskRunner::parseAndRunCommand('mult1mate\\crontab_tests\\ActionMock::wrongMethod()');
     $this->assertFalse($result);
     TaskLoader::setClassFolder(__DIR__ . '/runner_mocks');
     $result = TaskRunner::parseAndRunCommand('RunnerMock::anyMethod()');
     $this->assertFalse($result);
 }
All Usage Examples Of mult1mate\crontab\TaskRunner::parseAndRunCommand