function ClassFinder::findFile

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Component/ClassFinder/ClassFinder.php \Drupal\Component\ClassFinder\ClassFinder::findFile()
  2. 8.9.x core/lib/Drupal/Component/ClassFinder/ClassFinder.php \Drupal\Component\ClassFinder\ClassFinder::findFile()
  3. 10 core/lib/Drupal/Component/ClassFinder/ClassFinder.php \Drupal\Component\ClassFinder\ClassFinder::findFile()

Overrides ClassFinderInterface::findFile

File

core/lib/Drupal/Component/ClassFinder/ClassFinder.php, line 13

Class

ClassFinder
A Utility class that uses active autoloaders to find a file for a class.

Namespace

Drupal\Component\ClassFinder

Code

public function findFile($class) {
    $loaders = spl_autoload_functions();
    foreach ($loaders as $loader) {
        if (is_array($loader) && isset($loader[0]) && is_object($loader[0]) && method_exists($loader[0], 'findFile')) {
            $file = call_user_func_array([
                $loader[0],
                'findFile',
            ], [
                $class,
            ]);
            // Different implementations return different empty values. For example,
            // \Composer\Autoload\ClassLoader::findFile() returns FALSE whilst
            // \Drupal\Component\ClassFinder\ClassFinderInterface::findFile()
            // documents that a NULL should be returned.
            if (!empty($file)) {
                return $file;
            }
        }
    }
    return NULL;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.