/** * Try to load the entity file for a given entity name. * * @param string $entity Entity name to load. * @return bool */ public function load($entity) { $entityPrefix = $entity; while (false !== ($pos = strrpos($entityPrefix, '\\'))) { $entityPrefix = substr($entity, 0, $pos + 1); $entitySuffix = substr($entity, $pos + 1); $entitySuffixAsPath = str_replace('\\', '/', $entitySuffix); foreach ($this->getBaseDirectories($entityPrefix) as $baseDirectory) { $file = $baseDirectory . $entitySuffixAsPath . '.php'; if (false !== $this->requireFile($file)) { return $file; } } $entityPrefix = rtrim($entityPrefix, '\\'); } if ($entity === Consistency::getEntityShortestName($entity) && false !== ($pos = strrpos($entity, '\\'))) { return spl_autoload_call($entity . '\\' . substr($entity, $pos + 1)); } return null; }
/** * Try to load the entity file for a given entity name. * * @param string $entity Entity name to load. * @return bool */ public function load($entity) { $entityPrefix = $entity; $hasBaseDirectory = false; while (false !== ($pos = strrpos($entityPrefix, '\\'))) { $currentEntityPrefix = substr($entity, 0, $pos + 1); $entityPrefix = rtrim($currentEntityPrefix, '\\'); $entitySuffix = substr($entity, $pos + 1); $entitySuffixAsPath = str_replace('\\', '/', $entitySuffix); if (false === $this->hasBaseDirectory($currentEntityPrefix)) { continue; } $hasBaseDirectory = true; foreach ($this->getBaseDirectories($currentEntityPrefix) as $baseDirectory) { $file = $baseDirectory . $entitySuffixAsPath . '.php'; if (false !== $this->requireFile($file)) { return $file; } } } if (true === $hasBaseDirectory && $entity === Consistency::getEntityShortestName($entity) && false !== ($pos = strrpos($entity, '\\'))) { return $this->runAutoloaderStack($entity . '\\' . substr($entity, $pos + 1)); } return null; }