Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 /**
  * 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;
 }