示例#1
0
 /**
  * Create service via callback
  *
  * @param  callable $callable
  * @param  string   $cName
  * @param  string   $rName
  * @throws Exception\ServiceNotCreatedException
  * @throws Exception\ServiceNotFoundException
  * @throws Exception\CircularDependencyFoundException
  * @return object
  */
 protected function createServiceViaCallback($callable, $cName, $rName)
 {
     if (is_object($callable)) {
         $factory = $callable;
     } elseif (is_array($callable)) {
         // reset both rewinds and returns the value of the first array element
         $factory = reset($callable);
     }
     if (isset($factory) && $factory instanceof MutableCreationOptionsInterface && is_array($this->creationOptions) && !empty($this->creationOptions)) {
         $factory->setCreationOptions($this->creationOptions);
     }
     return parent::createServiceViaCallback($callable, $cName, $rName);
 }