/** * Getting gateway object for entity * * @param string $entityClass * @return Gateway * @throws \Exception */ public function getGateway($entityClass) { $entityClass = ltrim($entityClass, '\\'); if ($this->gateways[$entityClass]) { return $this->gateways[$entityClass]; } $entityAnalyzer = new EntityAnalyzer($entityClass, $this->cacheManager->getArrayCache('meta_' . get_class($this) . '_' . $entityClass, 86400)); $engines = self::engines(); $gatewayClass = $engines[$entityAnalyzer->gateway()]; if (!$gatewayClass || !class_exists($gatewayClass)) { throw new \Exception('Not found data gateway for entity `' . $entityClass . '`'); } $this->gateways[$entityClass] = new $gatewayClass($this, $entityAnalyzer); return $this->gateways[$entityClass]; }
/** * @return string */ protected function getEntityClass() { return $this->analyzer->getClass(); }