protected function getDbalComponentByProjection(ProjectionTypeInterface $projection_type, $projection_name, $component) { $component_key = sprintf('%s::projection.%s::view_store::%s', $projection_type->getPrefix(), $projection_name, $component); switch ($component) { case 'finder': return $this->getFinder($component_key); break; case 'reader': return $this->getStorageReader($component_key); break; case 'writer': return $this->getStorageWriter($component_key); break; } throw new RuntimeError(sprintf('Invalid dbal component given: %s. Supported components are: "finder", "reader" and "writer".', $component)); }
protected function getDataAccessComponent(ProjectionTypeInterface $projection_type, $component = 'reader') { $default_component_name = sprintf('%s::view_store::%s', $projection_type->getVariantPrefix(), $component); $custom_component_option = $projection_type->getPrefix() . '.' . $component; switch ($component) { case 'finder': return $this->data_access_service->getFinder($this->config->get($custom_component_option, $default_component_name)); break; case 'reader': return $this->data_access_service->getStorageReader($this->config->get($custom_component_option, $default_component_name)); break; case 'writer': return $this->data_access_service->getStorageWriter($this->config->get($custom_component_option, $default_component_name)); break; } throw new RuntimeError('Invalid data access component name given: ' . $component); }