You are here

private function ClassLoader::findFileWithExtension in Hook Update Deploy Tools 7

1 call to ClassLoader::findFileWithExtension()
ClassLoader::findFile in vendor/composer/ClassLoader.php
Finds the path to the file where the class is defined.

File

vendor/composer/ClassLoader.php, line 344

Class

ClassLoader
ClassLoader implements a PSR-0 class loader

Namespace

Composer\Autoload

Code

private function findFileWithExtension($class, $ext) {

  // PSR-4 lookup
  $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
  $first = $class[0];
  if (isset($this->prefixLengthsPsr4[$first])) {
    foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
      if (0 === strpos($class, $prefix)) {
        foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
          if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
            return $file;
          }
        }
      }
    }
  }

  // PSR-4 fallback dirs
  foreach ($this->fallbackDirsPsr4 as $dir) {
    if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
      return $file;
    }
  }

  // PSR-0 lookup
  if (false !== ($pos = strrpos($class, '\\'))) {

    // namespaced class name
    $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
  }
  else {

    // PEAR-like class name
    $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
  }
  if (isset($this->prefixesPsr0[$first])) {
    foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
      if (0 === strpos($class, $prefix)) {
        foreach ($dirs as $dir) {
          if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
            return $file;
          }
        }
      }
    }
  }

  // PSR-0 fallback dirs
  foreach ($this->fallbackDirsPsr0 as $dir) {
    if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
      return $file;
    }
  }

  // PSR-0 include paths.
  if ($this->useIncludePath && ($file = stream_resolve_include_path($logicalPathPsr0))) {
    return $file;
  }
}