class DefaultContentScanner in Default Content 8
A scanner to find YAML files in a given folder.
Hierarchy
- class \Drupal\defaultcontent\DefaultContentScanner
Expanded class hierarchy of DefaultContentScanner
File
- src/
DefaultContentScanner.php, line 13 - Contains \Drupal\defaultcontent\DefaultContentScanner.
Namespace
Drupal\defaultcontentView source
class DefaultContentScanner {
/**
* Returns a list of file objects.
*
* @param string $directory
* Absolute path to the directory to search.
*
* @return array
* List of stdClass objects with name and uri properties.
*/
public function scan($directory, $ext = 'json') {
// Use Unix paths regardless of platform, skip dot directories, follow
// symlinks (to allow extensions to be linked from elsewhere), and return
// the RecursiveDirectoryIterator instance to have access to getSubPath(),
// since SplFileInfo does not support relative paths.
$flags = \FilesystemIterator::UNIX_PATHS;
$flags |= \FilesystemIterator::SKIP_DOTS;
$flags |= \FilesystemIterator::CURRENT_AS_SELF;
$directory_iterator = new \RecursiveDirectoryIterator($directory, $flags);
$iterator = new \RecursiveIteratorIterator($directory_iterator);
$files = array();
foreach ($iterator as $fileinfo) {
/* @var \SplFileInfo $fileinfo */
// Skip directories and non-json files.
if ($fileinfo
->isDir() || $fileinfo
->getExtension() != $ext) {
continue;
}
// @todo Use a typed class?
$file = new \stdClass();
$file->name = $fileinfo
->getFilename();
$file->uri = $fileinfo
->getPathname();
$files[$file->uri] = $file;
}
return $files;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DefaultContentScanner:: |
public | function | Returns a list of file objects. |