diff --git a/core/lib/Drupal/Component/Discovery/YamlDirectoryIterator.php b/core/lib/Drupal/Component/Discovery/YamlDirectoryIterator.php
new file mode 100644
index 0000000..e9a9688
--- /dev/null
+++ b/core/lib/Drupal/Component/Discovery/YamlDirectoryIterator.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Component\Discovery\YamlDirectoryIterator.
+ */
+
+namespace Drupal\Component\Discovery;
+
+class YamlDirectoryIterator extends \FilterIterator {
+
+  /**
+   * YamlDirectoryIterator constructor.
+   *
+   * @param string $path
+   */
+  public function __construct($path) {
+    $directory_iterator = new \FilesystemIterator($path);
+    parent::__construct($directory_iterator);
+  }
+
+  /**
+   * Implements \FilterIterator::accept().
+   */
+  public function accept() {
+    /** @var \SplFileInfo $file_info */
+    $file_info = $this->getInnerIterator()->current();
+    return $file_info->isFile() && ($file_info->getExtension() === 'yml');
+  }
+
+}
