예제 #1
0
 /**
  * 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);
 }
예제 #2
0
 /**
  * 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);
 }