protected function callActionMethod()
    {
        $preparedArguments = [];
        foreach ($this->arguments as $argument) {
            $preparedArguments[] = $argument->getValue();
        }

        $validationResult = $this->arguments->getValidationResults();

        if (!$validationResult->hasErrors()) {
            $actionResult = call_user_func_array([$this, $this->actionMethodName], $preparedArguments);
        } else {
            $actionIgnoredArguments = static::getActionIgnoredValidationArguments($this->objectManager);
            if (isset($actionIgnoredArguments[$this->actionMethodName])) {
                $ignoredArguments = $actionIgnoredArguments[$this->actionMethodName];
            } else {
                $ignoredArguments = [];
            }

            // if there exists more errors than in ignoreValidationAnnotations => call error method
            // else => call action method
            $shouldCallActionMethod = true;
            /** @var Result $subValidationResult */
            foreach ($validationResult->getSubResults() as $argumentName => $subValidationResult) {
                if (!$subValidationResult->hasErrors()) {
                    continue;
                }
                if (isset($ignoredArguments[$argumentName]) && $subValidationResult->getErrors(TargetNotFoundError::class) === []) {
                    continue;
                }
                $shouldCallActionMethod = false;
                break;
            }

            if ($shouldCallActionMethod) {
                $actionResult = call_user_func_array([$this, $this->actionMethodName], $preparedArguments);
            } else {
                $actionResult = call_user_func([$this, $this->errorMethodName]);
            }
        }

        if ($actionResult === null && $this->view instanceof ViewInterface) {
            $this->response->appendContent($this->view->render());
        } elseif (is_string($actionResult) && strlen($actionResult) > 0) {
            $this->response->appendContent($actionResult);
        } elseif (is_object($actionResult) && method_exists($actionResult, '__toString')) {
            $this->response->appendContent((string)$actionResult);
        }
    }
protected function callActionMethod()
    {
        $preparedArguments = [];
        foreach ($this->arguments as $argument) {
            $preparedArguments[] = $argument->getValue();
        }

        $validationResult = $this->arguments->getValidationResults();

        if (!$validationResult->hasErrors()) {
            $actionResult = call_user_func_array([$this, $this->actionMethodName], $preparedArguments);
        } else {
            $actionIgnoredArguments = static::getActionIgnoredValidationArguments($this->objectManager);
            if (isset($actionIgnoredArguments[$this->actionMethodName])) {
                $ignoredArguments = $actionIgnoredArguments[$this->actionMethodName];
            } else {
                $ignoredArguments = [];
            }

            // if there exists more errors than in ignoreValidationAnnotations => call error method
            // else => call action method
            $shouldCallActionMethod = true;
            /** @var Result $subValidationResult */
            foreach ($validationResult->getSubResults() as $argumentName => $subValidationResult) {
                if (!$subValidationResult->hasErrors()) {
                    continue;
                }
                if (isset($ignoredArguments[$argumentName]) && $subValidationResult->getErrors(TargetNotFoundError::class) === []) {
                    continue;
                }
                $shouldCallActionMethod = false;
                break;
            }

            if ($shouldCallActionMethod) {
                $actionResult = call_user_func_array([$this, $this->actionMethodName], $preparedArguments);
            } else {
                $actionResult = call_user_func([$this, $this->errorMethodName]);
            }
        }

        if ($actionResult === null && $this->view instanceof ViewInterface) {
            $this->response->appendContent($this->view->render());
        } elseif (is_string($actionResult) && strlen($actionResult) > 0) {
            $this->response->appendContent($actionResult);
        } elseif (is_object($actionResult) && method_exists($actionResult, '__toString')) {
            $this->response->appendContent((string)$actionResult);
        }
    }
protected function callActionMethod ( ) { $ preparedArguments = [ ] ; foreach ( $ this -> arguments as $ argument ) { $ preparedArguments [ ] = $ argument -> getValue ( ) ; } $ validationResult = $ this -> arguments -> getValidationResults ( ) ; if ( ! $ validationResult -> hasErrors ( ) ) { $ actionResult = call_user_func_array ( [ $ this , $ this -> actionMethodName ] , $ preparedArguments ) ; } else { $ actionIgnoredArguments = static :: getActionIgnoredValidationArguments ( $ this -> objectManager ) ; if ( isset ( $ actionIgnoredArguments [ $ this -> actionMethodName ] ) ) { $ ignoredArguments = $ actionIgnoredArguments [ $ this -> actionMethodName ] ; } else { $ ignoredArguments = [ ] ; } // if there exists more errors than in ignoreValidationAnnotations => call error method // else => call action method $ shouldCallActionMethod = true ; /** @var Result $subValidationResult */ foreach ( $ validationResult -> getSubResults ( ) as $ argumentName => $ subValidationResult ) { if ( ! $ subValidationResult -> hasErrors ( ) ) { continue ; } if ( isset ( $ ignoredArguments [ $ argumentName ] ) && $ subValidationResult -> getErrors ( TargetNotFoundError :: class ) === [ ] ) { continue ; } $ shouldCallActionMethod = false ; break ; } if ( $ shouldCallActionMethod ) { $ actionResult = call_user_func_array ( [ $ this , $ this -> actionMethodName ] , $ preparedArguments ) ; } else { $ actionResult = call_user_func ( [ $ this , $ this -> errorMethodName ] ) ; } } if ( $ actionResult === null && $ this -> view instanceof ViewInterface ) { $ this -> response -> appendContent ( $ this -> view -> render ( ) ) ; } elseif ( is_string ( $ actionResult ) && strlen ( $ actionResult ) > 0 ) { $ this -> response -> appendContent ( $ actionResult ) ; } elseif ( is_object ( $ actionResult ) && method_exists ( $ actionResult , '__toString' ) ) { $ this -> response -> appendContent ( ( string ) $ actionResult ) ; } }
Calls the specified action method and passes the arguments.

If the action returns a string, it is appended to the content in the
response object. If the action doesn't return anything and a valid
view exists, the view is rendered automatically.

TODO: In next major this will no longer append content and the response will probably be unique per call.


@return void
Calls the specified action method and passes the arguments .