23 private $defaultValueProvider;
28 private $objectManagerConfig;
33 private $reflectionGenerator;
38 private $serviceMethodsMap;
50 ObjectManagerConfig $objectManagerConfig,
52 ServiceMethodsMap $serviceMethodsMap
54 $this->defaultValueProvider = $defaultValueProvider;
55 $this->objectManagerConfig = $objectManagerConfig;
56 $this->reflectionGenerator = $reflectionGenerator;
57 $this->serviceMethodsMap = $serviceMethodsMap;
65 public function read($scope =
null)
68 $connectionName = $this->defaultValueProvider->getConnection();
71 'name' => $connectionName,
72 'exchange' => $this->defaultValueProvider->getExchange(),
76 foreach ($this->getRemoteServices() as $serviceInterface => $remoteImplementation) {
78 $methodsMap = $this->serviceMethodsMap->getMethodsMap($serviceInterface);
79 }
catch (\Exception $e) {
80 throw new \LogicException(sprintf(
'Service interface was expected, "%s" given', $serviceInterface));
82 foreach ($methodsMap as $methodName => $returnType) {
83 $topic = $this->reflectionGenerator->generateTopicName($serviceInterface, $methodName);
87 'connections' => $connections,
100 private function getRemoteServices()
102 $preferences = $this->objectManagerConfig->getPreferences();
103 $remoteServices = [];
104 foreach ($preferences as
$type => $preference) {
105 if ($preference ==
$type . RemoteServiceGenerator::REMOTE_SERVICE_SUFFIX) {
106 $remoteServices[
$type] = $preference;
109 return $remoteServices;
__construct(DefaultValueProvider $defaultValueProvider, ObjectManagerConfig $objectManagerConfig, ReflectionGenerator $reflectionGenerator, ServiceMethodsMap $serviceMethodsMap)