Example #1
0
 public function callAction()
 {
     Config::includeFile($this->classFile);
     $reflectedMethod = new \ReflectionMethod($this->class, $this->method);
     $arguments = [];
     if ($this->isFormHandler()) {
         /** @var \ReflectionParameter $reflectedParam */
         foreach ($reflectedMethod->getParameters() as $reflectedParam) {
             $paramName = $reflectedParam->getName();
             $paramValue = null;
             if (isset($this->arguments[$paramName])) {
                 $paramValue = $this->arguments[$paramName];
             } elseif ($this->isUpload() && $this->hasFile($paramName)) {
                 $paramValue = $this->getFile($paramName);
             } elseif ($reflectedParam->isDefaultValueAvailable()) {
                 $paramValue = $reflectedParam->getDefaultValue();
             }
             $arguments[] = $paramValue;
         }
     } else {
         $arguments = $this->arguments;
     }
     $result = null;
     try {
         $result = call_user_func_array(array($this->class, $this->method), $arguments);
         if (is_callable($this->resultTransformer)) {
             $result = call_user_func($this->resultTransformer, $this, $result);
         }
     } catch (\Exception $ex) {
         if (is_callable($this->resultTransformer)) {
             $result = call_user_func($this->resultTransformer, $this, $result, $ex);
         }
     }
     return $result;
 }