You are here

protected function xautoload_RegistryWildcard_RecursiveScan::scanDirectoryLevel in X Autoload 7.3

Parameters

string $dir: Base directory, not containing any wildcard.

string $fragment: Wildcard path fragment to be processed now. This is never '**', but it always contains at least one asterisk.

null $remaining: Optional rest of the wildcard string, that may contain path fragments to be processed later.

Throws

Exception

1 call to xautoload_RegistryWildcard_RecursiveScan::scanDirectoryLevel()
xautoload_RegistryWildcard_RecursiveScan::scanDirectory in lib/RegistryWildcard/RecursiveScan.php

File

lib/RegistryWildcard/RecursiveScan.php, line 109

Class

xautoload_RegistryWildcard_RecursiveScan
Scan directories for wildcard files[] instructions in a module's info file.

Code

protected function scanDirectoryLevel($dir, $fragment, $remaining = NULL) {
  if (!is_dir($dir)) {
    return;
  }
  if ('**' === $fragment) {
    throw new Exception("Fragment must not be '**'.");
  }
  foreach (scandir($dir) as $candidate) {
    if (!$this
      ->validateCandidate($candidate, $fragment)) {
      continue;
    }
    if (!isset($remaining)) {
      $this
        ->suggestFile($dir . '/' . $candidate);
    }
    else {
      $this
        ->scanDirectory($dir . '/' . $candidate, $remaining);
    }
  }
}