浏览代码

Use ReflectionExtension to read ext versions

Jordi Boggiano 14 年之前
父节点
当前提交
ae922eaf4c
共有 1 个文件被更改,包括 9 次插入2 次删除
  1. 9 2
      src/Composer/Repository/PlatformRepository.php

+ 9 - 2
src/Composer/Repository/PlatformRepository.php

@@ -36,8 +36,15 @@ class PlatformRepository extends ArrayRepository
             if (in_array($ext, array('standard', 'Core'))) {
                 continue;
             }
-            // TODO maybe we could parse versions from phpinfo(INFO_MODULES)
-            $ext = new MemoryPackage('ext/'.strtolower($ext), '0', 'stable');
+
+            $reflExt = new \ReflectionExtension($ext);
+            try {
+                $version = BasePackage::parseVersion($reflExt->getVersion());
+            } catch (\UnexpectedValueException $e) {
+                $version = array('version' => '0', 'type' => 'stable');
+            }
+
+            $ext = new MemoryPackage('ext/'.strtolower($ext), $version['version'], $version['type']);
             $this->addPackage($ext);
         }
     }