Beispiel #1
0
 /**
  * Gets the file object for the path given. Paths with the mount point included are
  * preferred, but are not required for BC. If the mount point is not included a list
  * of filesystems are checked and chosen if the file exists in that filesystem.
  *
  * @param FileInterface|string $path
  *
  * @throws FileNotFoundException If file was not found.
  *
  * @return FileInterface
  */
 public function getFile($path)
 {
     if ($path instanceof FileInterface) {
         return $path;
     }
     if (!$this->filesystem instanceof AggregateFilesystemInterface || $this->containsMountPoint($path)) {
         $file = $this->filesystem->getFile($path);
         if (!$file->exists()) {
             throw new FileNotFoundException($path);
         }
         return $file;
     }
     // Trim "files/" from front of path for BC.
     if (strpos($path, 'files/') === 0) {
         $path = substr($path, 6);
     }
     foreach ($this->filesystemsToCheck as $mountPoint) {
         if (!$this->filesystem->hasFilesystem($mountPoint)) {
             continue;
         }
         $file = $this->filesystem->getFile("{$mountPoint}://{$path}");
         if ($file->exists()) {
             return $file;
         }
     }
     throw new FileNotFoundException($path);
 }