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;
}
}
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); }