Ver Fonte

Update for latest composer changes

Jordi Boggiano há 13 anos atrás
pai
commit
34547e9c49

+ 3 - 3
deps.lock

@@ -8,7 +8,7 @@ swiftmailer v4.1.5
 assetic v1.0.2
 twig-extensions 4c831657215e51568fcb31bb9142e827f9a69bd5
 metadata 1.0.0
-composer 470153989284bc41d13a8e279e2b9cb607e96d34
+composer 65999c48e1044529890ea68c71790b69f780afb3
 SensioFrameworkExtraBundle 638f545b7020b9e9d5944a7e3167f60ed848250d
 SensioDistributionBundle 20b66a408084ad8752f98e50f10533f5245310bf
 SensioGeneratorBundle b1ccb78c1743f30817b0fce9bb5c6baff6ed7bf8
@@ -18,6 +18,6 @@ WhiteOctoberPagerfanta c490684def33e992241e7fad33bcbd03d9d18643
 WhiteOctoberPagerfantaBundle 40209ef994fa2f342660d96bf6bea3f88171cd2d
 solarium 2.3.0-RC1
 NelmioSolariumBundle 75c1c8481b3e6be50f1509ab8290181c48b1169e
-jsonlint 869e5d011fe1c82501ae0a3b427a686c21fd5baf
+jsonlint 30acd3065fde017eece3fc292c623694b5ed8bf9
 SncRedisBundle 23c1814a179598d62f6c50290472234e8e4faedd
-predis v0.7.2
+predis f4c58b926b21c34f7d59dd5d40e91c51198712c5

+ 3 - 3
src/Packagist/WebBundle/Entity/RecommendLink.php → src/Packagist/WebBundle/Entity/DevRequireLink.php

@@ -17,13 +17,13 @@ use Symfony\Component\Validator\Constraints as Assert;
 
 /**
  * @ORM\Entity
- * @ORM\Table(name="link_recommend")
+ * @ORM\Table(name="link_require_dev")
  * @author Jordi Boggiano <j.boggiano@seld.be>
  */
-class RecommendLink extends PackageLink
+class DevRequireLink extends PackageLink
 {
     /**
-     * @ORM\ManyToOne(targetEntity="Packagist\WebBundle\Entity\Version", inversedBy="recommend")
+     * @ORM\ManyToOne(targetEntity="Packagist\WebBundle\Entity\Version", inversedBy="devRequire")
      */
     protected $version;
 }

+ 12 - 12
src/Packagist/WebBundle/Entity/PackageRepository.php

@@ -67,7 +67,7 @@ class PackageRepository extends EntityRepository
     public function getStalePackages()
     {
         $qb = $this->getEntityManager()->createQueryBuilder();
-        $qb->select('p, v')
+        $qb->select('p', 'v')
             ->from('Packagist\WebBundle\Entity\Package', 'p')
             ->leftJoin('p.versions', 'v')
             ->where('p.crawledAt IS NULL')
@@ -82,13 +82,13 @@ class PackageRepository extends EntityRepository
     public function getStalePackagesForIndexing()
     {
         $qb = $this->getEntityManager()->createQueryBuilder();
-        $qb->select('p, v, t, a, req, rec, sug, rep, con, pro')
+        $qb->select('p', 'v', 't', 'a', 'req', 'devReq', 'sug', 'rep', 'con', 'pro')
             ->from('Packagist\WebBundle\Entity\Package', 'p')
             ->leftJoin('p.versions', 'v')
             ->leftJoin('v.tags', 't')
             ->leftJoin('v.authors', 'a')
             ->leftJoin('v.require', 'req')
-            ->leftJoin('v.recommend', 'rec')
+            ->leftJoin('v.devRequire', 'devReq')
             ->leftJoin('v.suggest', 'sug')
             ->leftJoin('v.replace', 'rep')
             ->leftJoin('v.conflict', 'con')
@@ -101,13 +101,13 @@ class PackageRepository extends EntityRepository
     public function getStalePackagesForDumping()
     {
         $qb = $this->getEntityManager()->createQueryBuilder();
-        $qb->select('p, v, t, a, req, rec, sug, rep, con, pro')
+        $qb->select('p', 'v', 't', 'a', 'req', 'devReq', 'sug', 'rep', 'con', 'pro')
             ->from('Packagist\WebBundle\Entity\Package', 'p')
             ->leftJoin('p.versions', 'v')
             ->leftJoin('v.tags', 't')
             ->leftJoin('v.authors', 'a')
             ->leftJoin('v.require', 'req')
-            ->leftJoin('v.recommend', 'rec')
+            ->leftJoin('v.devRequire', 'devReq')
             ->leftJoin('v.suggest', 'sug')
             ->leftJoin('v.replace', 'rep')
             ->leftJoin('v.conflict', 'con')
@@ -128,10 +128,10 @@ class PackageRepository extends EntityRepository
     public function getFullPackageByName($name)
     {
         $qb = $this->getBaseQueryBuilder()
-            ->addSelect('a', 'req', 'rec', 'sug', 'rep', 'con', 'pro')
+            ->addSelect('a', 'req', 'devReq', 'sug', 'rep', 'con', 'pro')
             ->leftJoin('v.authors', 'a')
             ->leftJoin('v.require', 'req')
-            ->leftJoin('v.recommend', 'rec')
+            ->leftJoin('v.devRequire', 'devReq')
             ->leftJoin('v.suggest', 'sug')
             ->leftJoin('v.replace', 'rep')
             ->leftJoin('v.conflict', 'con')
@@ -144,13 +144,13 @@ class PackageRepository extends EntityRepository
     public function getFullPackages()
     {
         $qb = $this->getEntityManager()->createQueryBuilder();
-        $qb->select('p, v, t, a, req, rec, sug, rep, con, pro')
+        $qb->select('p', 'v', 't', 'a', 'req', 'devReq', 'sug', 'rep', 'con', 'pro')
             ->from('Packagist\WebBundle\Entity\Package', 'p')
             ->join('p.versions', 'v')
             ->leftJoin('v.tags', 't')
             ->leftJoin('v.authors', 'a')
             ->leftJoin('v.require', 'req')
-            ->leftJoin('v.recommend', 'rec')
+            ->leftJoin('v.devRequire', 'devReq')
             ->leftJoin('v.suggest', 'sug')
             ->leftJoin('v.replace', 'rep')
             ->leftJoin('v.conflict', 'con')
@@ -165,7 +165,7 @@ class PackageRepository extends EntityRepository
     {
         return $this->getBaseQueryBuilder()
             // eliminate maintainers & tags from the select, because of the groupBy
-            ->select('p, v')
+            ->select('p', 'v')
             ->where('t.name = ?0')
             ->setParameters(array($name));
     }
@@ -174,7 +174,7 @@ class PackageRepository extends EntityRepository
     {
         $qb = $this->getBaseQueryBuilder()
             // eliminate maintainers & tags from the select, because of the groupBy
-            ->select('p, v')
+            ->select('p', 'v')
             ->where('m.id = ?0')
             ->setParameters(array($user->getId()));
         return $qb;
@@ -183,7 +183,7 @@ class PackageRepository extends EntityRepository
     public function getBaseQueryBuilder()
     {
         $qb = $this->getEntityManager()->createQueryBuilder();
-        $qb->select('p, v, t, m')
+        $qb->select('p', 'v', 't', 'm')
             ->from('Packagist\WebBundle\Entity\Package', 'p')
             ->leftJoin('p.versions', 'v')
             ->leftJoin('p.maintainers', 'm')

+ 11 - 11
src/Packagist/WebBundle/Entity/Version.php

@@ -137,9 +137,9 @@ class Version
     private $provide;
 
     /**
-     * @ORM\OneToMany(targetEntity="Packagist\WebBundle\Entity\RecommendLink", mappedBy="version")
+     * @ORM\OneToMany(targetEntity="Packagist\WebBundle\Entity\DevRequireLink", mappedBy="version")
      */
-    private $recommend;
+    private $devRequire;
 
     /**
      * @ORM\OneToMany(targetEntity="Packagist\WebBundle\Entity\SuggestLink", mappedBy="version")
@@ -230,11 +230,11 @@ class Version
 
         $supportedLinkTypes = array(
             'require',
+            'devRequire',
+            'suggest',
             'conflict',
             'provide',
             'replace',
-            'recommend',
-            'suggest',
         );
 
         foreach ($supportedLinkTypes as $linkType) {
@@ -752,23 +752,23 @@ class Version
     }
 
     /**
-     * Add recommend
+     * Add devRequire
      *
-     * @param Packagist\WebBundle\Entity\RecommendLink $recommend
+     * @param Packagist\WebBundle\Entity\DevRequireLink $devRequire
      */
-    public function addRecommendLink(RecommendLink $recommend)
+    public function addDevRequireLink(DevRequireLink $devRequire)
     {
-        $this->recommend[] = $recommend;
+        $this->devRequire[] = $devRequire;
     }
 
     /**
-     * Get recommend
+     * Get devRequire
      *
      * @return Doctrine\Common\Collections\Collection
      */
-    public function getRecommend()
+    public function getDevRequire()
     {
-        return $this->recommend;
+        return $this->devRequire;
     }
 
     /**

+ 48 - 9
src/Packagist/WebBundle/Package/Updater.php

@@ -20,6 +20,7 @@ use Packagist\WebBundle\Entity\Author;
 use Packagist\WebBundle\Entity\Package;
 use Packagist\WebBundle\Entity\Tag;
 use Packagist\WebBundle\Entity\Version;
+use Packagist\WebBundle\Entity\SuggestLink;
 use Symfony\Bridge\Doctrine\RegistryInterface;
 
 /**
@@ -41,12 +42,26 @@ class Updater
      * @var array
      */
     protected $supportedLinkTypes = array(
-        'require'   => 'RequireLink',
-        'conflict'  => 'ConflictLink',
-        'provide'   => 'ProvideLink',
-        'replace'   => 'ReplaceLink',
-        'recommend' => 'RecommendLink',
-        'suggest'   => 'SuggestLink',
+        'require'     => array(
+            'method' => 'getRequires',
+            'entity' => 'RequireLink',
+        ),
+        'conflict'    => array(
+            'method' => 'getConflicts',
+            'entity' => 'ConflictLink',
+        ),
+        'provide'     => array(
+            'method' => 'getProvides',
+            'entity' => 'ProvideLink',
+        ),
+        'replace'     => array(
+            'method' => 'getReplaces',
+            'entity' => 'ReplaceLink',
+        ),
+        'devRequire' => array(
+            'method' => 'getDevRequires',
+            'entity' => 'DevRequireLink',
+        ),
     );
 
     /**
@@ -236,9 +251,10 @@ class Updater
             }
         }
 
-        foreach ($this->supportedLinkTypes as $linkType => $linkEntity) {
+        // handle links
+        foreach ($this->supportedLinkTypes as $linkType => $opts) {
             $links = array();
-            foreach ($data->{'get'.$linkType.'s'}() as $link) {
+            foreach ($data->{$opts['method']}() as $link) {
                 $links[$link->getTarget()] = $link->getPrettyConstraint();
             }
 
@@ -254,7 +270,7 @@ class Updater
             }
 
             foreach ($links as $linkPackageName => $linkPackageVersion) {
-                $class = 'Packagist\WebBundle\Entity\\'.$linkEntity;
+                $class = 'Packagist\WebBundle\Entity\\'.$opts['entity'];
                 $link = new $class;
                 $link->setPackageName($linkPackageName);
                 $link->setPackageVersion($linkPackageVersion);
@@ -264,6 +280,29 @@ class Updater
             }
         }
 
+        // handle suggests
+        if ($suggests = $data->getSuggests()) {
+            foreach ($version->getSuggest() as $link) {
+                // clear links that have changed/disappeared (for updates)
+                if (!isset($suggests[$link->getPackageName()]) || $suggests[$link->getPackageName()] !== $link->getPackageVersion()) {
+                    $version->{'get'.$linkType}()->removeElement($link);
+                    $em->remove($link);
+                } else {
+                    // clear those that are already set
+                    unset($suggests[$link->getPackageName()]);
+                }
+            }
+
+            foreach ($suggests as $linkPackageName => $linkPackageVersion) {
+                $link = new SuggestLink;
+                $link->setPackageName($linkPackageName);
+                $link->setPackageVersion($linkPackageVersion);
+                $version->addSuggestLink($link);
+                $link->setVersion($version);
+                $em->persist($link);
+            }
+        }
+
         if (!$package->getVersions()->contains($version)) {
             $package->addVersions($version);
         }

+ 9 - 1
src/Packagist/WebBundle/Resources/translations/messages.en.yml

@@ -9,4 +9,12 @@ menu:
     browse_packages: Browse Packages
     twitter: Follow @packagist
     contact: Contact
-    stats: Statistics
+    stats: Statistics
+
+link_type:
+    require: Requires
+    devRequire: Requires (Dev)
+    suggest: Suggests
+    conflict: Conflicts
+    replace: Replaces
+    provide: Provides

+ 2 - 2
src/Packagist/WebBundle/Resources/views/Web/viewPackage.html.twig

@@ -108,9 +108,9 @@
                                         {% endfor %}
                                     </ul>
                                     <div class="clearfix package-links">
-                                        {% for type in ["require", "recommend", "suggest", "provide", "conflict", "replace"] %}
+                                        {% for type in ["require", "devRequire", "suggest", "provide", "conflict", "replace"] %}
                                             <div class="{{ type }}s">
-                                                <h2>{{ type|title }}s</h2>
+                                                <h2>{{ ('link_type.' ~ type)|trans }}</h2>
                                                 {% if attribute(version, type)|length %}
                                                     <ul>
                                                         {%- for link in attribute(version, type) -%}