You are here

private function ClassLoader::findFileWithExtension in Mobile Number 7

FindFileWithExtension.

Parameters

string $class: The class.

string $ext: The extension.

Return value

bool|string Return bool.

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

File

include/ClassLoader.php, line 396

Class

ClassLoader
ClassLoader implements a PSR-0, PSR-4 and classmap class loader.

Namespace

mobile_number

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;
  }
}