• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/dispatcher/operation.php
  • Класс: BitrixTasksDispatcherOperation
  • Вызов: Operation::call
public function call()
{
	$opResult = [];

	$arguments = array_values($this->parsed['ARGUMENTS']);

	if ($this->parsed['SIGNATURE']['STATIC'])
	{
		$callback = $this->parsed['CLASS'] . '::' . $this->parsed['METHOD'];
		$opResult = call_user_func_array($callback, $arguments);
	}
	else
	{
		$class = $this->parsed['CLASS'];
		$instance = new $class();

		if ($instance->canExecute())
		{
			$callback = [$instance, $this->parsed['METHOD']];
			$opResult = call_user_func_array($callback, $arguments);
		}

		// get errors from operation instance itself
		$this->errors->load($instance->getErrors());
	}

	if ($opResult instanceof Result)
	{
		// also get errors from result, in case of object
		$this->errors->load($opResult->getErrors());
		return $opResult->getData();
	}

	return $opResult;
}