Browse Source

Fix memory issue with large queries and some strict warnings

Jordi Boggiano 12 years ago
parent
commit
67b9f26c9f

+ 2 - 2
composer.lock

@@ -4,8 +4,8 @@
         {
             "package": "composer/composer",
             "version": "dev-master",
-            "source-reference": "d5916ce73184fa6ef00b9cdfbc977f65b34a161a",
-            "commit-date": "1346783045"
+            "source-reference": "fe4516aff874e17c33a951400213dc518bf6a284",
+            "commit-date": "1347062402"
         },
         {
             "package": "doctrine/common",

+ 3 - 0
src/Packagist/WebBundle/Entity/Package.php

@@ -323,6 +323,9 @@ class Package
                 return;
             }
             $information = $driver->getComposerInformation($driver->getRootIdentifier());
+            if (!isset($information['name'])) {
+                throw new \RuntimeException('No name found in composer.json');
+            }
             if (null === $this->getName()) {
                 $this->setName($information['name']);
             }

+ 10 - 8
src/Packagist/WebBundle/Entity/VersionRepository.php

@@ -58,19 +58,21 @@ class VersionRepository extends EntityRepository
     public function getFullVersion($versionId)
     {
         $qb = $this->getEntityManager()->createQueryBuilder();
-        $qb->select('v', 't', 'a', 'req', 'devReq', 'sug', 'rep', 'con', 'pro')
+        $qb->select('v', 't', 'a')
             ->from('Packagist\WebBundle\Entity\Version', 'v')
             ->leftJoin('v.tags', 't')
             ->leftJoin('v.authors', 'a')
-            ->leftJoin('v.require', 'req')
-            ->leftJoin('v.devRequire', 'devReq')
-            ->leftJoin('v.suggest', 'sug')
-            ->leftJoin('v.replace', 'rep')
-            ->leftJoin('v.conflict', 'con')
-            ->leftJoin('v.provide', 'pro')
             ->where('v.id = :id')
             ->setParameter('id', $versionId);
 
-        return $qb->getQuery()->getSingleResult();
+        $version = $qb->getQuery()->getSingleResult();
+        $version->getRequire();
+        $version->getDevRequire();
+        $version->getSuggest();
+        $version->getReplace();
+        $version->getConflict();
+        $version->getProvide();
+
+        return $version;
     }
 }