From 42815f02e6e74df0e064540f8814befefcc89d99 Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Tue, 18 Jan 2022 14:53:25 +0100 Subject: [PATCH] Drop class `Icinga\File\Storage\LocalFileStorageIterator` --- .../Icinga/File/Storage/LocalFileStorage.php | 9 +++- .../File/Storage/LocalFileStorageIterator.php | 44 ------------------- .../File/Storage/LocalFileStorageTest.php | 5 ++- 3 files changed, 12 insertions(+), 46 deletions(-) delete mode 100644 library/Icinga/File/Storage/LocalFileStorageIterator.php diff --git a/library/Icinga/File/Storage/LocalFileStorage.php b/library/Icinga/File/Storage/LocalFileStorage.php index 4885f324e..e3ed5d679 100644 --- a/library/Icinga/File/Storage/LocalFileStorage.php +++ b/library/Icinga/File/Storage/LocalFileStorage.php @@ -38,7 +38,14 @@ class LocalFileStorage implements StorageInterface public function getIterator() { try { - return new LocalFileStorageIterator($this->baseDir); + return new RecursiveIteratorIterator( + new RecursiveDirectoryIterator( + $this->baseDir, + RecursiveDirectoryIterator::CURRENT_AS_FILEINFO + | RecursiveDirectoryIterator::KEY_AS_PATHNAME + | RecursiveDirectoryIterator::SKIP_DOTS + ) + ); } catch (UnexpectedValueException $e) { throw new NotReadableError('Couldn\'t read the directory "%s": %s', $this->baseDir, $e); } diff --git a/library/Icinga/File/Storage/LocalFileStorageIterator.php b/library/Icinga/File/Storage/LocalFileStorageIterator.php deleted file mode 100644 index b530f4758..000000000 --- a/library/Icinga/File/Storage/LocalFileStorageIterator.php +++ /dev/null @@ -1,44 +0,0 @@ -current(); - } - - public function current() - { - /** @var RecursiveDirectoryIterator $innerIterator */ - $innerIterator = $this->getInnerIterator(); - - /** @var \SplFileInfo $current */ - $current = parent::current(); - - $subPath = $innerIterator->getSubPath(); - - return $subPath === '' - ? $current->getFilename() - : str_replace(DIRECTORY_SEPARATOR, '/', $subPath) . '/' . $current->getFilename(); - } -} diff --git a/test/php/library/Icinga/File/Storage/LocalFileStorageTest.php b/test/php/library/Icinga/File/Storage/LocalFileStorageTest.php index 7ba0efd2f..e8e293f48 100644 --- a/test/php/library/Icinga/File/Storage/LocalFileStorageTest.php +++ b/test/php/library/Icinga/File/Storage/LocalFileStorageTest.php @@ -51,7 +51,10 @@ class LocalFileStorageTest extends BaseTestCase { $lfs = new TemporaryLocalFileStorage(); $lfs->create('foobar', 'Hello world!'); - static::assertSame(array('foobar'), array_values(iterator_to_array($lfs->getIterator()))); + + foreach ($lfs as $path => $_) { + $this->assertEquals($lfs->resolvePath('foobar'), $path); + } } public function testGetIteratorThrowsNotReadableError()