Example #1
0
 /**
  * Get an object instance from the defined callback
  *
  * @param callback $callback
  * @param array $params
  * @param string $alias
  * @return object
  * @throws Exception\InvalidCallbackException
  */
 protected function createInstanceViaCallback($callback, $params, $alias)
 {
     if (!is_callable($callback)) {
         throw new Exception\InvalidCallbackException('An invalid constructor callback was provided');
     }
     if (is_array($callback)) {
         $class = is_object($callback[0]) ? get_class($callback[0]) : $callback[0];
         $method = $callback[1];
     }
     $callParameters = array();
     if ($this->definition->hasInjectionMethod($class, $method)) {
         $callParameters = $this->resolveMethodParameters($class, $method, $params, true, $alias);
     }
     return call_user_func_array($callback, $callParameters);
 }