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); }
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; }