From 14336d94b8da95f2c2f26edb7ffb5c12d58a1212 Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Mon, 18 Nov 2013 21:15:00 -0400
Subject: [PATCH] Issue #2138239 by damiankloip: Use GlobIterator instead of
 glob.

---
 core/lib/Drupal/Core/Config/FileStorage.php         | 13 ++++++++-----
 core/lib/Drupal/Core/Config/InstallStorage.php      |  7 +++----
 .../lib/Drupal/ckeditor/Plugin/Editor/CKEditor.php  |  6 +++---
 3 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/core/lib/Drupal/Core/Config/FileStorage.php b/core/lib/Drupal/Core/Config/FileStorage.php
index bf178c56194c..2ac9ceeee8a6 100644
--- a/core/lib/Drupal/Core/Config/FileStorage.php
+++ b/core/lib/Drupal/Core/Config/FileStorage.php
@@ -204,11 +204,14 @@ public function listAll($prefix = '') {
       throw new StorageException($this->directory . '/ not found.');
     }
     $extension = '.' . static::getFileExtension();
-    $files = glob($this->directory . '/' . $prefix . '*' . $extension);
-    $clean_name = function ($value) use ($extension) {
-      return basename($value, $extension);
-    };
-    return array_map($clean_name, $files);
+    $files = new \GlobIterator($this->directory . '/' . $prefix . '*' . $extension);
+
+    $names = array();
+    foreach ($files as $file) {
+      $names[] = $file->getBasename($extension);
+    }
+
+    return $names;
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Config/InstallStorage.php b/core/lib/Drupal/Core/Config/InstallStorage.php
index e8442ea7a772..20d20fc50529 100644
--- a/core/lib/Drupal/Core/Config/InstallStorage.php
+++ b/core/lib/Drupal/Core/Config/InstallStorage.php
@@ -134,10 +134,9 @@ public function getComponentNames($type, array $list) {
     foreach ($list as $name) {
       $directory = $this->getComponentFolder($type, $name);
       if (file_exists($directory)) {
-        $files = glob($directory . '/*' . $extension);
-        foreach ($files as $filename) {
-          $name = basename($filename, $extension);
-          $folders[$name] = $directory;
+        $files = new \GlobIterator($directory . '/*' . $extension);
+        foreach ($files as $file) {
+          $folders[$file->getBasename($extension)] = $directory;
         }
       }
     }
diff --git a/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/Editor/CKEditor.php b/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/Editor/CKEditor.php
index bc0dc61ac5b0..3eefd376b7c1 100644
--- a/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/Editor/CKEditor.php
+++ b/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/Editor/CKEditor.php
@@ -320,9 +320,9 @@ public function getLangcodes() {
     if (empty($langcodes)) {
       $langcodes = array();
       // Collect languages included with CKEditor based on file listing.
-      $ckeditor_languages = glob(DRUPAL_ROOT . '/core/assets/vendor/ckeditor/lang/*.js');
-      foreach ($ckeditor_languages as $language_filename) {
-        $langcode = basename($language_filename, '.js');
+      $ckeditor_languages = new \GlobIterator(DRUPAL_ROOT . '/core/assets/vendor/ckeditor/lang/*.js');
+      foreach ($ckeditor_languages as $language_file) {
+        $langcode = $language_file->getBasename('.js');
         $langcodes[$langcode] = $langcode;
       }
       cache('ckeditor.languages')->set('langcodes', $langcodes);
-- 
GitLab