Example #1
0
 public function createInstance(Container $container, $serviceName, array $serviceConfig)
 {
     if (!isset($serviceConfig['remote']) || !isset($serviceConfig['class'])) {
         throw new UnbuildableServiceException(sprintf("No remote configuration available for service '%'.", $serviceName));
     }
     $className = $serviceConfig['class'];
     $remoteConfig = $serviceConfig['remote'];
     $convertedRemoteConfig = ParamsResolver::resolveParams($container, $remoteConfig);
     $adapter = $this->adapterFactory->getAdapter($serviceName, $convertedRemoteConfig);
     $factory = new \ProxyManager\Factory\RemoteObjectFactory($adapter);
     return $factory->createProxy($className);
 }
Example #2
0
 public function createInstance(Container $container, $serviceName, array $serviceConfig)
 {
     $className = $serviceConfig['class'];
     if (!class_exists($className)) {
         throw new UnbuildableServiceException(sprintf("Class '%s' not found.", $className));
     }
     $class = new \ReflectionClass($className);
     $activationArgs = isset($serviceConfig['arguments']) ? ParamsResolver::resolveParams($container, $serviceConfig['arguments']) : array();
     if (!empty($activationArgs)) {
         $instance = $class->newInstanceArgs($activationArgs);
     } else {
         $instance = $class->newInstance();
     }
     return $instance;
 }