/** * Gets a real class name for an entity. * * @param object|string $entityOrClass An entity object, entity class name or entity proxy class name * * @return string */ public function getEntityClass($entityOrClass) { if (is_object($entityOrClass)) { return ClassUtils::getClass($entityOrClass); } if (strpos($entityOrClass, ':') !== false) { list($namespaceAlias, $simpleClassName) = explode(':', $entityOrClass, 2); return $this->registry->getAliasNamespace($namespaceAlias) . '\\' . $simpleClassName; } return ClassUtils::getRealClass($entityOrClass); }
/** * Gets the full class name for the given entity * * @param string $entityName The name of the entity. Can be bundle:entity or full class name * @return string The full class name * @throws \InvalidArgumentException */ public function getEntityClass($entityName) { $split = explode(':', $entityName); if (count($split) <= 1) { // The given entity name is not in bundle:entity format. Suppose that it is the full class name return $entityName; } elseif (count($split) > 2) { throw new \InvalidArgumentException(sprintf('Incorrect entity name: %s. Expected the full class name or bundle:entity.', $entityName)); } return $this->doctrine->getAliasNamespace($split[0]) . '\\' . $split[1]; }
/** * Returns custom repository if one specified otherwise returns a basic repository. * * {@inheritdoc} */ public function getRepository($entityName) { $realEntityName = $entityName; if (strpos($entityName, ':') !== false) { list($namespaceAlias, $simpleClassName) = explode(':', $entityName); $realEntityName = $this->managerRegistry->getAliasNamespace($namespaceAlias) . '\\' . $simpleClassName; } if (isset($this->entities[$realEntityName])) { $realEntityName = $this->entities[$realEntityName]; } return $this->repositoryManager->getRepository($realEntityName); }