You are here

public function FileStorage::listAll in Drupal 9

Same name in this branch
  1. 9 core/lib/Drupal/Core/Config/FileStorage.php \Drupal\Core\Config\FileStorage::listAll()
  2. 9 core/lib/Drupal/Component/PhpStorage/FileStorage.php \Drupal\Component\PhpStorage\FileStorage::listAll()
Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Config/FileStorage.php \Drupal\Core\Config\FileStorage::listAll()

Gets configuration object names starting with a given prefix.

Given the following configuration objects:

  • node.type.article
  • node.type.page

Passing the prefix 'node.type.' will return an array containing the above names.

Parameters

string $prefix: (optional) The prefix to search for. If omitted, all configuration object names that exist are returned.

Return value

array An array containing matching configuration object names.

Overrides StorageInterface::listAll

1 call to FileStorage::listAll()
FileStorage::deleteAll in core/lib/Drupal/Core/Config/FileStorage.php
Deletes configuration objects whose names start with a given prefix.
1 method overrides FileStorage::listAll()
InstallStorage::listAll in core/lib/Drupal/Core/Config/InstallStorage.php
Gets configuration object names starting with a given prefix.

File

core/lib/Drupal/Core/Config/FileStorage.php, line 214

Class

FileStorage
Defines the file storage.

Namespace

Drupal\Core\Config

Code

public function listAll($prefix = '') {
  $dir = $this
    ->getCollectionDirectory();
  if (!is_dir($dir)) {
    return [];
  }
  $extension = '.' . static::getFileExtension();

  // glob() directly calls into libc glob(), which is not aware of PHP stream
  // wrappers. Same for \GlobIterator (which additionally requires an absolute
  // realpath() on Windows).
  // @see https://github.com/mikey179/vfsStream/issues/2
  $files = scandir($dir);
  $names = [];
  $pattern = '/^' . preg_quote($prefix, '/') . '.*' . preg_quote($extension, '/') . '$/';
  foreach ($files as $file) {
    if ($file[0] !== '.' && preg_match($pattern, $file)) {
      $names[] = basename($file, $extension);
    }
  }
  return $names;
}