فهرست منبع

Merge pull request #2004 from jaypea/recursive_artifactrepository

ArtifactRepository needs recursive iteration
Jordi Boggiano 11 سال پیش
والد
کامیت
d498e73363

+ 5 - 1
src/Composer/Repository/ArtifactRepository.php

@@ -47,7 +47,11 @@ class ArtifactRepository extends ArrayRepository
     private function scanDirectory($path)
     {
         $io = $this->io;
-        foreach (new \RecursiveDirectoryIterator($path) as $file) {
+
+        $directory = new \RecursiveDirectoryIterator($path);
+        $iterator = new \RecursiveIteratorIterator($directory);
+        $regex = new \RegexIterator($iterator, '/^.+\.(zip|phar)$/i');
+        foreach ($regex as $file) {
             /* @var $file \SplFileInfo */
             if (!$file->isFile()) {
                 continue;

+ 1 - 0
tests/Composer/Test/Repository/ArtifactRepositoryTest.php

@@ -25,6 +25,7 @@ class ArtifactRepositoryTest extends TestCase
             'vendor0/package0-0.0.1',
             'composer/composer-1.0.0-alpha6',
             'vendor1/package2-4.3.2',
+            'vendor3/package1-5.4.3',
         );
 
         $coordinates = array('type' => 'artifact', 'url' => __DIR__ . '/Fixtures/artifacts');

BIN
tests/Composer/Test/Repository/Fixtures/artifacts/subfolder/not-an-artifact.zip


BIN
tests/Composer/Test/Repository/Fixtures/artifacts/subfolder/package1.zip