Parcourir la source

Cleanup code to be compatible with Symfony 2.3

Joseph Bielawski il y a 11 ans
Parent
commit
45f3dc5f34
26 fichiers modifiés avec 128 ajouts et 510 suppressions
  1. 1 1
      app/config/config.yml
  2. 2 0
      src/Packagist/WebBundle/Command/CompileStatsCommand.php
  3. 1 0
      src/Packagist/WebBundle/Command/DumpPackagesCommand.php
  4. 1 2
      src/Packagist/WebBundle/Command/IndexPackagesCommand.php
  5. 9 9
      src/Packagist/WebBundle/Command/UpdatePackagesCommand.php
  6. 10 10
      src/Packagist/WebBundle/Controller/ApiController.php
  7. 6 6
      src/Packagist/WebBundle/Controller/FeedController.php
  8. 1 3
      src/Packagist/WebBundle/Controller/PackageController.php
  9. 11 11
      src/Packagist/WebBundle/Controller/UserController.php
  10. 19 18
      src/Packagist/WebBundle/Controller/WebController.php
  11. 2 2
      src/Packagist/WebBundle/DependencyInjection/Compiler/RepositoryPass.php
  12. 1 1
      src/Packagist/WebBundle/DependencyInjection/PackagistWebExtension.php
  13. 5 5
      src/Packagist/WebBundle/Entity/Author.php
  14. 7 8
      src/Packagist/WebBundle/Entity/Package.php
  15. 2 2
      src/Packagist/WebBundle/Entity/PackageLink.php
  16. 6 7
      src/Packagist/WebBundle/Entity/Tag.php
  17. 7 7
      src/Packagist/WebBundle/Entity/User.php
  18. 22 22
      src/Packagist/WebBundle/Entity/Version.php
  19. 2 2
      src/Packagist/WebBundle/Form/Handler/OAuthRegistrationFormHandler.php
  20. 3 1
      src/Packagist/WebBundle/Form/Type/PackageType.php
  21. 3 1
      src/Packagist/WebBundle/Form/Type/ProfileFormType.php
  22. 1 3
      src/Packagist/WebBundle/Model/PackageManager.php
  23. 0 384
      src/Packagist/WebBundle/Package/Updater.php
  24. 2 2
      src/Packagist/WebBundle/PackagistWebBundle.php
  25. 3 2
      src/Packagist/WebBundle/Security/Provider/UserProvider.php
  26. 1 1
      src/Packagist/WebBundle/Tests/Controller/ApiControllerTest.php

+ 1 - 1
app/config/config.yml

@@ -15,7 +15,7 @@ framework:
     templating:      { engines: ['twig'] } #assets_version: SomeVersionScheme
     default_locale: %locale%
     session:
-        name: packagist
+        name:            packagist
         cookie_lifetime: 3600
         cookie_httponly: true
         save_path: %session_save_path%

+ 2 - 0
src/Packagist/WebBundle/Command/CompileStatsCommand.php

@@ -12,7 +12,9 @@
 
 namespace Packagist\WebBundle\Command;
 
+use Packagist\WebBundle\Package\Updater;
 use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
+use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Output\OutputInterface;

+ 1 - 0
src/Packagist/WebBundle/Command/DumpPackagesCommand.php

@@ -13,6 +13,7 @@
 namespace Packagist\WebBundle\Command;
 
 use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
+use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Output\OutputInterface;

+ 1 - 2
src/Packagist/WebBundle/Command/IndexPackagesCommand.php

@@ -13,11 +13,10 @@
 namespace Packagist\WebBundle\Command;
 
 use Packagist\WebBundle\Entity\Package;
-
 use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
+use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Output\OutputInterface;
 
 /**

+ 9 - 9
src/Packagist/WebBundle/Command/UpdatePackagesCommand.php

@@ -12,19 +12,19 @@
 
 namespace Packagist\WebBundle\Command;
 
-use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Output\OutputInterface;
-use Packagist\WebBundle\Package\Updater;
-use Composer\Repository\VcsRepository;
 use Composer\Factory;
-use Composer\Package\Loader\ValidatingArrayLoader;
-use Composer\Package\Loader\ArrayLoader;
 use Composer\IO\BufferIO;
 use Composer\IO\ConsoleIO;
+use Composer\Package\Loader\ArrayLoader;
+use Composer\Package\Loader\ValidatingArrayLoader;
 use Composer\Repository\InvalidRepositoryException;
+use Composer\Repository\VcsRepository;
+use Packagist\WebBundle\Package\Updater;
+use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
 
 /**
  * @author Jordi Boggiano <j.boggiano@seld.be>

+ 10 - 10
src/Packagist/WebBundle/Controller/ApiController.php

@@ -12,22 +12,22 @@
 
 namespace Packagist\WebBundle\Controller;
 
-use Composer\IO\BufferIO;
 use Composer\Factory;
-use Composer\Repository\VcsRepository;
-use Composer\Repository\InvalidRepositoryException;
-use Composer\Package\Loader\ValidatingArrayLoader;
+use Composer\IO\BufferIO;
 use Composer\Package\Loader\ArrayLoader;
-use Packagist\WebBundle\Package\Updater;
+use Composer\Package\Loader\ValidatingArrayLoader;
+use Composer\Repository\InvalidRepositoryException;
+use Composer\Repository\VcsRepository;
 use Packagist\WebBundle\Entity\Package;
 use Packagist\WebBundle\Entity\User;
-use Symfony\Component\HttpFoundation\Response;
+use Packagist\WebBundle\Package\Updater;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
+use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\HttpFoundation\JsonResponse;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Console\Output\OutputInterface;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
+use Symfony\Component\HttpFoundation\Response;
 
 /**
  * @author Jordi Boggiano <j.boggiano@seld.be>

+ 6 - 6
src/Packagist/WebBundle/Controller/FeedController.php

@@ -13,16 +13,16 @@
 namespace Packagist\WebBundle\Controller;
 
 use Doctrine\ORM\QueryBuilder;
-use Pagerfanta\Adapter\DoctrineORMAdapter;
-use Pagerfanta\Pagerfanta;
-use Zend\Feed\Writer\Entry;
-use Zend\Feed\Writer\Feed;
 use Packagist\WebBundle\Entity\Package;
 use Packagist\WebBundle\Entity\Version;
-use Symfony\Component\HttpFoundation\Response;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
+use Pagerfanta\Adapter\DoctrineORMAdapter;
+use Pagerfanta\Pagerfanta;
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
+use Symfony\Component\HttpFoundation\Response;
+use Zend\Feed\Writer\Entry;
+use Zend\Feed\Writer\Feed;
 
 /**
  * @author Rafael Dohms <rafael@doh.ms>

+ 1 - 3
src/Packagist/WebBundle/Controller/PackageController.php

@@ -3,15 +3,13 @@
 namespace Packagist\WebBundle\Controller;
 
 use Packagist\WebBundle\Form\Type\AbandonedType;
+use Packagist\WebBundle\Entity\Package;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Security\Core\Exception\AccessDeniedException;
 
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
 
-use Packagist\WebBundle\Entity\Package;
-
-
 class PackageController extends Controller
 {
     /**

+ 11 - 11
src/Packagist/WebBundle/Controller/UserController.php

@@ -12,20 +12,20 @@
 
 namespace Packagist\WebBundle\Controller;
 
-use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
-use Pagerfanta\Pagerfanta;
-use Pagerfanta\Adapter\DoctrineORMAdapter;
 use FOS\UserBundle\Model\UserInterface;
-use Symfony\Component\Security\Core\Exception\AccessDeniedException;
-use Packagist\WebBundle\Entity\User;
 use Packagist\WebBundle\Entity\Package;
+use Packagist\WebBundle\Entity\User;
 use Packagist\WebBundle\Model\RedisAdapter;
+use Pagerfanta\Adapter\DoctrineORMAdapter;
+use Pagerfanta\Pagerfanta;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
+use Symfony\Component\Security\Core\Exception\AccessDeniedException;
 
 /**
  * @author Jordi Boggiano <j.boggiano@seld.be>

+ 19 - 18
src/Packagist/WebBundle/Controller/WebController.php

@@ -13,37 +13,38 @@
 namespace Packagist\WebBundle\Controller;
 
 use Composer\Console\HtmlOutputFormatter;
-use Composer\IO\BufferIO;
 use Composer\Factory;
-use Composer\Repository\VcsRepository;
-use Composer\Package\Loader\ValidatingArrayLoader;
+use Composer\IO\BufferIO;
 use Composer\Package\Loader\ArrayLoader;
+use Composer\Package\Loader\ValidatingArrayLoader;
+use Composer\Repository\VcsRepository;
 use Doctrine\ORM\NoResultException;
-use Packagist\WebBundle\Form\Type\AddMaintainerRequestType;
+use Packagist\WebBundle\Entity\Package;
+use Packagist\WebBundle\Entity\Version;
 use Packagist\WebBundle\Form\Model\MaintainerRequest;
+use Packagist\WebBundle\Form\Model\SearchQuery;
+use Packagist\WebBundle\Form\Type\AddMaintainerRequestType;
+use Packagist\WebBundle\Form\Type\PackageType;
 use Packagist\WebBundle\Form\Type\RemoveMaintainerRequestType;
 use Packagist\WebBundle\Form\Type\SearchQueryType;
-use Packagist\WebBundle\Form\Model\SearchQuery;
 use Packagist\WebBundle\Package\Updater;
-use Packagist\WebBundle\Entity\Package;
-use Packagist\WebBundle\Entity\Version;
+use Pagerfanta\Adapter\DoctrineORMAdapter;
 use Pagerfanta\Adapter\FixedAdapter;
-use Packagist\WebBundle\Form\Type\PackageType;
-use Symfony\Component\HttpFoundation\RedirectResponse;
-use Symfony\Component\HttpFoundation\Response;
+use Pagerfanta\Adapter\SolariumAdapter;
+use Pagerfanta\Pagerfanta;
+use Predis\Connection\ConnectionException;
+use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\HttpFoundation\JsonResponse;
+use Symfony\Component\HttpFoundation\RedirectResponse;
 use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
-use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Security\Core\Exception\AccessDeniedException;
+
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
-use Symfony\Component\Security\Core\Exception\AccessDeniedException;
-use Pagerfanta\Pagerfanta;
-use Pagerfanta\Adapter\DoctrineORMAdapter;
-use Pagerfanta\Adapter\SolariumAdapter;
-use Predis\Connection\ConnectionException;
 
 /**
  * @author Jordi Boggiano <j.boggiano@seld.be>
@@ -235,7 +236,7 @@ class WebController extends Controller
      * Initializes the pager for a query.
      *
      * @param \Doctrine\ORM\QueryBuilder $query Query for packages
-     * @param int                        $page  Pagenumber to retrieve.
+     * @param int                        $page  Page number to retrieve.
      * @return \Pagerfanta\Pagerfanta
      */
     protected function setupPager($query, $page)
@@ -461,7 +462,7 @@ class WebController extends Controller
         if ('POST' === $req->getMethod()) {
             $form->bind($req);
             if ($form->isValid()) {
-                list($vendor, $name) = explode('/', $package->getName(), 2);
+                list(, $name) = explode('/', $package->getName(), 2);
 
                 $existingPackages = $this->getDoctrine()
                     ->getRepository('PackagistWebBundle:Package')

+ 2 - 2
src/Packagist/WebBundle/DependencyInjection/Compiler/RepositoryPass.php

@@ -12,9 +12,9 @@
 
 namespace Packagist\WebBundle\DependencyInjection\Compiler;
 
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Reference;
 
 /**
  * Adds VCS repository providers to the main repository_provider service

+ 1 - 1
src/Packagist/WebBundle/DependencyInjection/PackagistWebExtension.php

@@ -13,8 +13,8 @@
 namespace Packagist\WebBundle\DependencyInjection;
 
 use Symfony\Component\Config\FileLocator;
-use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
 use Symfony\Component\HttpKernel\DependencyInjection\Extension;
 
 /**

+ 5 - 5
src/Packagist/WebBundle/Entity/Author.php

@@ -12,8 +12,8 @@
 
 namespace Packagist\WebBundle\Entity;
 
-use Doctrine\ORM\Mapping as ORM;
 use Doctrine\Common\Collections\ArrayCollection;
+use Doctrine\ORM\Mapping as ORM;
 
 /**
  * @ORM\Entity(repositoryClass="Packagist\WebBundle\Entity\AuthorRepository")
@@ -150,7 +150,7 @@ class Author
     /**
      * Add versions
      *
-     * @param \Packagist\WebBundle\Entity\Version $version
+     * @param Version $version
      */
     public function addVersion(Version $version)
     {
@@ -160,7 +160,7 @@ class Author
     /**
      * Get versions
      *
-     * @return string $versions
+     * @return Version[]
      */
     public function getVersions()
     {
@@ -250,7 +250,7 @@ class Author
     /**
      * Set owner
      *
-     * @param \Packagist\WebBundle\Entity\User $owner
+     * @param User $owner
      */
     public function setOwner(User $owner)
     {
@@ -260,7 +260,7 @@ class Author
     /**
      * Get owner
      *
-     * @return \Packagist\WebBundle\Entity\User
+     * @return User
      */
     public function getOwner()
     {

+ 7 - 8
src/Packagist/WebBundle/Entity/Package.php

@@ -12,14 +12,13 @@
 
 namespace Packagist\WebBundle\Entity;
 
+use Composer\Factory;
+use Composer\IO\NullIO;
+use Composer\Repository\VcsRepository;
+use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Validator\Constraints as Assert;
 use Symfony\Component\Validator\ExecutionContextInterface;
-use Doctrine\Common\Collections\ArrayCollection;
-use Composer\IO\NullIO;
-use Composer\Factory;
-use Composer\Repository\VcsRepository;
-use Composer\Repository\Vcs\GitHubDriver;
 
 /**
  * @ORM\Entity(repositoryClass="Packagist\WebBundle\Entity\PackageRepository")
@@ -157,7 +156,7 @@ class Package
         }
         $maintainers = array();
         foreach ($this->getMaintainers() as $maintainer) {
-            /** @var $maintainer Maintainer */
+            /** @var $maintainer User */
             $maintainers[] = $maintainer->toArray();
         }
         $data = array(
@@ -397,7 +396,7 @@ class Package
     /**
      * Add versions
      *
-     * @param \Packagist\WebBundle\Entity\Version $versions
+     * @param Version $versions
      */
     public function addVersions(Version $versions)
     {
@@ -512,7 +511,7 @@ class Package
     /**
      * Add maintainers
      *
-     * @param \Packagist\WebBundle\Entity\User $maintainer
+     * @param User $maintainer
      */
     public function addMaintainer(User $maintainer)
     {

+ 2 - 2
src/Packagist/WebBundle/Entity/PackageLink.php

@@ -101,7 +101,7 @@ abstract class PackageLink
     /**
      * Set version
      *
-     * @param \Packagist\WebBundle\Entity\Version $version
+     * @param Version $version
      */
     public function setVersion(Version $version)
     {
@@ -111,7 +111,7 @@ abstract class PackageLink
     /**
      * Get version
      *
-     * @return \Packagist\WebBundle\Entity\Version
+     * @return Version
      */
     public function getVersion()
     {

+ 6 - 7
src/Packagist/WebBundle/Entity/Tag.php

@@ -12,10 +12,9 @@
 
 namespace Packagist\WebBundle\Entity;
 
+use Doctrine\ORM\EntityManager;
 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Validator\Constraints as Assert;
-use Doctrine\Common\Collections\Collection;
-use Doctrine\ORM\EntityManager;
 
 /**
  * @ORM\Entity
@@ -52,10 +51,10 @@ class Tag
 
     /**
      * @param \Doctrine\ORM\EntityManager $em
-     * @param                             $name
+     * @param string                      $name
      * @param bool                        $create
      *
-     * @return mixed|Tag
+     * @return Tag
      * @throws \Doctrine\ORM\NoResultException
      */
     public static function getByName(EntityManager $em, $name, $create = false)
@@ -103,7 +102,7 @@ class Tag
     /**
      * Add versions
      *
-     * @param \Packagist\WebBundle\Entity\Version $versions
+     * @param Version $versions
      */
     public function addVersions(Version $versions)
     {
@@ -113,7 +112,7 @@ class Tag
     /**
      * Get versions
      *
-     * @return \Doctrine\Common\Collections\Collection $versions
+     * @return Version[]
      */
     public function getVersions()
     {
@@ -122,6 +121,6 @@ class Tag
 
     public function __toString()
     {
-        return $this->name;
+        return (string) $this->name;
     }
 }

+ 7 - 7
src/Packagist/WebBundle/Entity/User.php

@@ -12,9 +12,9 @@
 
 namespace Packagist\WebBundle\Entity;
 
-use FOS\UserBundle\Entity\User as BaseUser;
-use Doctrine\ORM\Mapping as ORM;
 use Doctrine\Common\Collections\ArrayCollection;
+use Doctrine\ORM\Mapping as ORM;
+use FOS\UserBundle\Entity\User as BaseUser;
 
 /**
  * @ORM\Entity(repositoryClass="Packagist\WebBundle\Entity\UserRepository")
@@ -86,7 +86,7 @@ class User extends BaseUser
     /**
      * Add packages
      *
-     * @param \Packagist\WebBundle\Entity\Package $packages
+     * @param Package $packages
      */
     public function addPackages(Package $packages)
     {
@@ -96,7 +96,7 @@ class User extends BaseUser
     /**
      * Get packages
      *
-     * @return \Doctrine\Common\Collections\Collection $packages
+     * @return Package[]
      */
     public function getPackages()
     {
@@ -106,9 +106,9 @@ class User extends BaseUser
     /**
      * Add authors
      *
-     * @param \Packagist\WebBundle\Entity\Author $authors
+     * @param Author $authors
      */
-    public function addAuthors(\Packagist\WebBundle\Entity\Author $authors)
+    public function addAuthors(Author $authors)
     {
         $this->authors[] = $authors;
     }
@@ -116,7 +116,7 @@ class User extends BaseUser
     /**
      * Get authors
      *
-     * @return \Doctrine\Common\Collections\Collection
+     * @return Author[]
      */
     public function getAuthors()
     {

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

@@ -12,10 +12,10 @@
 
 namespace Packagist\WebBundle\Entity;
 
+use Composer\Package\Version\VersionParser;
+use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Validator\Constraints as Assert;
-use Doctrine\Common\Collections\ArrayCollection;
-use Composer\Package\Version\VersionParser;
 
 /**
  * @ORM\Entity(repositoryClass="Packagist\WebBundle\Entity\VersionRepository")
@@ -569,7 +569,7 @@ class Version
     /**
      * Get createdAt
      *
-     * @return \DateTime $createdAt
+     * @return \DateTime
      */
     public function getCreatedAt()
     {
@@ -589,7 +589,7 @@ class Version
     /**
      * Get releasedAt
      *
-     * @return \DateTime $releasedAt
+     * @return \DateTime
      */
     public function getReleasedAt()
     {
@@ -599,7 +599,7 @@ class Version
     /**
      * Set package
      *
-     * @param \Packagist\WebBundle\Entity\Package $package
+     * @param Package $package
      */
     public function setPackage(Package $package)
     {
@@ -609,7 +609,7 @@ class Version
     /**
      * Get package
      *
-     * @return \Packagist\WebBundle\Entity\Package $package
+     * @return Package
      */
     public function getPackage()
     {
@@ -619,7 +619,7 @@ class Version
     /**
      * Get tags
      *
-     * @return \Doctrine\Common\Collections\Collection $tags
+     * @return Tag[]
      */
     public function getTags()
     {
@@ -649,7 +649,7 @@ class Version
     /**
      * Get authors
      *
-     * @return \Doctrine\Common\Collections\Collection
+     * @return Author[]
      */
     public function getAuthors()
     {
@@ -747,7 +747,7 @@ class Version
     /**
      * Add tag
      *
-     * @param \Packagist\WebBundle\Entity\Tag $tag
+     * @param Tag $tag
      */
     public function addTag(Tag $tag)
     {
@@ -757,7 +757,7 @@ class Version
     /**
      * Add authors
      *
-     * @param \Packagist\WebBundle\Entity\Author $author
+     * @param Author $author
      */
     public function addAuthor(Author $author)
     {
@@ -767,7 +767,7 @@ class Version
     /**
      * Add require
      *
-     * @param \Packagist\WebBundle\Entity\RequireLink $require
+     * @param RequireLink $require
      */
     public function addRequireLink(RequireLink $require)
     {
@@ -777,7 +777,7 @@ class Version
     /**
      * Get require
      *
-     * @return \Doctrine\Common\Collections\Collection
+     * @return RequireLink[]
      */
     public function getRequire()
     {
@@ -787,7 +787,7 @@ class Version
     /**
      * Add replace
      *
-     * @param \Packagist\WebBundle\Entity\ReplaceLink $replace
+     * @param ReplaceLink $replace
      */
     public function addReplaceLink(ReplaceLink $replace)
     {
@@ -797,7 +797,7 @@ class Version
     /**
      * Get replace
      *
-     * @return \Doctrine\Common\Collections\Collection
+     * @return ReplaceLink[]
      */
     public function getReplace()
     {
@@ -807,7 +807,7 @@ class Version
     /**
      * Add conflict
      *
-     * @param \Packagist\WebBundle\Entity\ConflictLink $conflict
+     * @param ConflictLink $conflict
      */
     public function addConflictLink(ConflictLink $conflict)
     {
@@ -817,7 +817,7 @@ class Version
     /**
      * Get conflict
      *
-     * @return \Doctrine\Common\Collections\Collection
+     * @return ConflictLink[]
      */
     public function getConflict()
     {
@@ -827,7 +827,7 @@ class Version
     /**
      * Add provide
      *
-     * @param \Packagist\WebBundle\Entity\ProvideLink $provide
+     * @param ProvideLink $provide
      */
     public function addProvideLink(ProvideLink $provide)
     {
@@ -837,7 +837,7 @@ class Version
     /**
      * Get provide
      *
-     * @return \Doctrine\Common\Collections\Collection
+     * @return ProvideLink[]
      */
     public function getProvide()
     {
@@ -847,7 +847,7 @@ class Version
     /**
      * Add devRequire
      *
-     * @param \Packagist\WebBundle\Entity\DevRequireLink $devRequire
+     * @param DevRequireLink $devRequire
      */
     public function addDevRequireLink(DevRequireLink $devRequire)
     {
@@ -857,7 +857,7 @@ class Version
     /**
      * Get devRequire
      *
-     * @return \Doctrine\Common\Collections\Collection
+     * @return DevRequireLink[]
      */
     public function getDevRequire()
     {
@@ -867,7 +867,7 @@ class Version
     /**
      * Add suggest
      *
-     * @param \Packagist\WebBundle\Entity\SuggestLink $suggest
+     * @param SuggestLink $suggest
      */
     public function addSuggestLink(SuggestLink $suggest)
     {
@@ -877,7 +877,7 @@ class Version
     /**
      * Get suggest
      *
-     * @return \Doctrine\Common\Collections\Collection
+     * @return SuggestLink[]
      */
     public function getSuggest()
     {

+ 2 - 2
src/Packagist/WebBundle/Form/Handler/OAuthRegistrationFormHandler.php

@@ -15,8 +15,8 @@ namespace Packagist\WebBundle\Form\Handler;
 use FOS\UserBundle\Model\UserManagerInterface;
 use FOS\UserBundle\Util\TokenGeneratorInterface;
 use HWI\Bundle\OAuthBundle\Form\RegistrationFormHandlerInterface;
-use HWI\Bundle\OAuthBundle\OAuth\Response\UserResponseInterface;
 use HWI\Bundle\OAuthBundle\OAuth\Response\AdvancedUserResponseInterface;
+use HWI\Bundle\OAuthBundle\OAuth\Response\UserResponseInterface;
 use Symfony\Component\Form\Form;
 use Symfony\Component\HttpFoundation\Request;
 
@@ -61,7 +61,7 @@ class OAuthRegistrationFormHandler implements RegistrationFormHandlerInterface
         $form->setData($user);
 
         if ('POST' === $request->getMethod()) {
-            $form->bind($request);
+            $form->handleRequest($request);
 
             if ($form->isValid()) {
                 $randomPassword = $this->tokenGenerator->generateToken();

+ 3 - 1
src/Packagist/WebBundle/Form/Type/PackageType.php

@@ -23,7 +23,9 @@ class PackageType extends AbstractType
 {
     public function buildForm(FormBuilderInterface $builder, array $options)
     {
-        $builder->add('repository');
+        $builder->add('repository', 'text', array(
+            'label' => 'Repository URL (Git/Svn/Hg)'
+        ));
     }
 
     public function setDefaultOptions(OptionsResolverInterface $resolver)

+ 3 - 1
src/Packagist/WebBundle/Form/Type/ProfileFormType.php

@@ -24,7 +24,9 @@ class ProfileFormType extends BaseType
     {
         parent::buildForm($builder, $options);
 
-        $builder->add('failureNotifications', null, array('required' => false, 'label' => 'Notify me of package update failures'));
+        $builder->add('failureNotifications', null, array(
+            'required' => false,
+        ));
     }
 
     public function getName()

+ 1 - 3
src/Packagist/WebBundle/Model/PackageManager.php

@@ -12,8 +12,6 @@
 
 namespace Packagist\WebBundle\Model;
 
-use Swift_Mailer;
-use Twig_Environment;
 use Doctrine\ORM\EntityManager;
 use Packagist\WebBundle\Entity\Package;
 use Symfony\Component\HttpKernel\Log\LoggerInterface;
@@ -29,7 +27,7 @@ class PackageManager
     protected $logger;
     protected $options;
 
-    public function __construct(EntityManager $em, Swift_Mailer $mailer, Twig_Environment $twig, LoggerInterface $logger, array $options)
+    public function __construct(EntityManager $em, \Swift_Mailer $mailer, \Twig_Environment $twig, LoggerInterface $logger, array $options)
     {
         $this->em = $em;
         $this->mailer = $mailer;

+ 0 - 384
src/Packagist/WebBundle/Package/Updater.php

@@ -1,384 +0,0 @@
-<?php
-
-/*
- * This file is part of Packagist.
- *
- * (c) Jordi Boggiano <j.boggiano@seld.be>
- *     Nils Adermann <naderman@naderman.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Packagist\WebBundle\Package;
-
-use Composer\Package\AliasPackage;
-use Composer\Package\PackageInterface;
-use Composer\Repository\RepositoryInterface;
-use Composer\Repository\InvalidRepositoryException;
-use Composer\Util\ErrorHandler;
-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;
-
-/**
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-class Updater
-{
-    const UPDATE_EQUAL_REFS = 1;
-    const DELETE_BEFORE = 2;
-
-    /**
-     * Doctrine
-     * @var RegistryInterface
-     */
-    protected $doctrine;
-
-    /**
-     * Supported link types
-     * @var array
-     */
-    protected $supportedLinkTypes = array(
-        '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',
-        ),
-    );
-
-    /**
-     * Constructor
-     *
-     * @param RegistryInterface $doctrine
-     */
-    public function __construct(RegistryInterface $doctrine)
-    {
-        $this->doctrine = $doctrine;
-
-        ErrorHandler::register();
-    }
-
-    /**
-     * Update a project
-     *
-     * @param \Packagist\WebBundle\Entity\Package $package
-     * @param RepositoryInterface $repository the repository instance used to update from
-     * @param int $flags a few of the constants of this class
-     * @param \DateTime $start
-     */
-    public function update(Package $package, RepositoryInterface $repository, $flags = 0, \DateTime $start = null)
-    {
-        $blacklist = '{^symfony/symfony (2.0.[456]|dev-charset|dev-console)}i';
-
-        if (null === $start) {
-            $start = new \DateTime();
-        }
-        $pruneDate = clone $start;
-        $pruneDate->modify('-8days');
-
-        $versions = $repository->getPackages();
-        $em = $this->doctrine->getManager();
-
-        if ($repository->hadInvalidBranches()) {
-            throw new InvalidRepositoryException('Some branches contained invalid data and were discarded, it is advised to review the log and fix any issues present in branches');
-        }
-
-        usort($versions, function ($a, $b) {
-            $aVersion = $a->getVersion();
-            $bVersion = $b->getVersion();
-            if ($aVersion === '9999999-dev' || 'dev-' === substr($aVersion, 0, 4)) {
-                $aVersion = 'dev';
-            }
-            if ($bVersion === '9999999-dev' || 'dev-' === substr($bVersion, 0, 4)) {
-                $bVersion = 'dev';
-            }
-            $aIsDev = $aVersion === 'dev' || substr($aVersion, -4) === '-dev';
-            $bIsDev = $bVersion === 'dev' || substr($bVersion, -4) === '-dev';
-
-            // push dev versions to the end
-            if ($aIsDev !== $bIsDev) {
-                return $aIsDev ? 1 : -1;
-            }
-
-            // equal versions are sorted by date
-            if ($aVersion === $bVersion) {
-                return $a->getReleaseDate() > $b->getReleaseDate() ? 1 : -1;
-            }
-
-            // the rest is sorted by version
-            return version_compare($aVersion, $bVersion);
-        });
-
-        $versionRepository = $this->doctrine->getRepository('PackagistWebBundle:Version');
-
-        if ($flags & self::DELETE_BEFORE) {
-            foreach ($package->getVersions() as $version) {
-                $versionRepository->remove($version);
-            }
-
-            $em->flush();
-            $em->refresh($package);
-        }
-
-        $lastUpdated = true;
-        foreach ($versions as $version) {
-            if ($version instanceof AliasPackage) {
-                continue;
-            }
-
-            if (preg_match($blacklist, $version->getName().' '.$version->getPrettyVersion())) {
-                continue;
-            }
-
-            $lastUpdated = $this->updateInformation($package, $version, $flags);
-            if ($lastUpdated) {
-                $em->flush();
-            }
-        }
-
-        if (!$lastUpdated) {
-            $em->flush();
-        }
-
-        // remove outdated versions
-        foreach ($package->getVersions() as $version) {
-            if ($version->getUpdatedAt() < $pruneDate) {
-                $versionRepository->remove($version);
-            }
-        }
-
-        $package->setUpdatedAt(new \DateTime);
-        $package->setCrawledAt(new \DateTime);
-        $em->flush();
-    }
-
-    private function updateInformation(Package $package, PackageInterface $data, $flags)
-    {
-        $em = $this->doctrine->getManager();
-        $version = new Version();
-
-        $normVersion = $data->getVersion();
-
-        $existingVersion = $package->getVersion($normVersion);
-        if ($existingVersion) {
-            $source = $existingVersion->getSource();
-            // update if the right flag is set, or the source reference has changed (re-tag or new commit on branch)
-            if ($source['reference'] !== $data->getSourceReference() || ($flags & self::UPDATE_EQUAL_REFS)) {
-                $version = $existingVersion;
-            } else {
-                // mark it updated to avoid it being pruned
-                $existingVersion->setUpdatedAt(new \DateTime);
-
-                return false;
-            }
-        }
-
-        $version->setName($package->getName());
-        $version->setVersion($data->getPrettyVersion());
-        $version->setNormalizedVersion($normVersion);
-        $version->setDevelopment($data->isDev());
-
-        $em->persist($version);
-
-        $version->setDescription($data->getDescription());
-        $package->setDescription($data->getDescription());
-        $version->setHomepage($data->getHomepage());
-        $version->setLicense($data->getLicense() ?: array());
-
-        $version->setPackage($package);
-        $version->setUpdatedAt(new \DateTime);
-        $version->setReleasedAt($data->getReleaseDate());
-
-        if ($data->getSourceType()) {
-            $source['type'] = $data->getSourceType();
-            $source['url'] = $data->getSourceUrl();
-            $source['reference'] = $data->getSourceReference();
-            $version->setSource($source);
-        } else {
-            $version->setSource(null);
-        }
-
-        if ($data->getDistType()) {
-            $dist['type'] = $data->getDistType();
-            $dist['url'] = $data->getDistUrl();
-            $dist['reference'] = $data->getDistReference();
-            $dist['shasum'] = $data->getDistSha1Checksum();
-            $version->setDist($dist);
-        } else {
-            $version->setDist(null);
-        }
-
-        if ($data->getType()) {
-            $version->setType($data->getType());
-            if ($data->getType() && $data->getType() !== $package->getType()) {
-                $package->setType($data->getType());
-            }
-        }
-
-        $version->setTargetDir($data->getTargetDir());
-        $version->setAutoload($data->getAutoload());
-        $version->setExtra($data->getExtra());
-        $version->setBinaries($data->getBinaries());
-        $version->setIncludePaths($data->getIncludePaths());
-        $version->setSupport($data->getSupport());
-
-        $version->getTags()->clear();
-        if ($data->getKeywords()) {
-            $keywords = array();
-            foreach ($data->getKeywords() as $keyword) {
-                $keywords[mb_strtolower($keyword, 'UTF-8')] = $keyword;
-            }
-            foreach ($keywords as $keyword) {
-                $tag = Tag::getByName($em, $keyword, true);
-                if (!$version->getTags()->contains($tag)) {
-                    $version->addTag($tag);
-                }
-            }
-        }
-
-        $authorRepository = $this->doctrine->getRepository('PackagistWebBundle:Author');
-
-        $version->getAuthors()->clear();
-        if ($data->getAuthors()) {
-            foreach ($data->getAuthors() as $authorData) {
-                $author = null;
-
-                foreach (array('email', 'name', 'homepage', 'role') as $field) {
-                    if (isset($authorData[$field])) {
-                        $authorData[$field] = trim($authorData[$field]);
-                        if ('' === $authorData[$field]) {
-                            $authorData[$field] = null;
-                        }
-                    } else {
-                        $authorData[$field] = null;
-                    }
-                }
-
-                // skip authors with no information
-                if (!isset($authorData['email']) && !isset($authorData['name'])) {
-                    continue;
-                }
-
-                $author = $authorRepository->findOneBy(array(
-                    'email' => $authorData['email'],
-                    'name' => $authorData['name'],
-                    'homepage' => $authorData['homepage'],
-                    'role' => $authorData['role'],
-                ));
-
-                if (!$author) {
-                    $author = new Author();
-                    $em->persist($author);
-                }
-
-                foreach (array('email', 'name', 'homepage', 'role') as $field) {
-                    if (isset($authorData[$field])) {
-                        $author->{'set'.$field}($authorData[$field]);
-                    }
-                }
-
-                $author->setUpdatedAt(new \DateTime);
-                if (!$version->getAuthors()->contains($author)) {
-                    $version->addAuthor($author);
-                }
-                if (!$author->getVersions()->contains($version)) {
-                    $author->addVersion($version);
-                }
-            }
-        }
-
-        // handle links
-        foreach ($this->supportedLinkTypes as $linkType => $opts) {
-            $links = array();
-            foreach ($data->{$opts['method']}() as $link) {
-                $constraint = $link->getPrettyConstraint();
-                if (false !== strpos($constraint, ',') && false !== strpos($constraint, '@')) {
-                    $constraint = preg_replace_callback('{([><]=?\s*[^@]+?)@([a-z]+)}i', function ($matches) {
-                        if ($matches[2] === 'stable') {
-                            return $matches[1];
-                        }
-
-                        return $matches[1].'-'.$matches[2];
-                    }, $constraint);
-                }
-
-                $links[$link->getTarget()] = $constraint;
-            }
-
-            foreach ($version->{'get'.$linkType}() as $link) {
-                // clear links that have changed/disappeared (for updates)
-                if (!isset($links[$link->getPackageName()]) || $links[$link->getPackageName()] !== $link->getPackageVersion()) {
-                    $version->{'get'.$linkType}()->removeElement($link);
-                    $em->remove($link);
-                } else {
-                    // clear those that are already set
-                    unset($links[$link->getPackageName()]);
-                }
-            }
-
-            foreach ($links as $linkPackageName => $linkPackageVersion) {
-                $class = 'Packagist\WebBundle\Entity\\'.$opts['entity'];
-                $link = new $class;
-                $link->setPackageName($linkPackageName);
-                $link->setPackageVersion($linkPackageVersion);
-                $version->{'add'.$linkType.'Link'}($link);
-                $link->setVersion($version);
-                $em->persist($link);
-            }
-        }
-
-        // 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->getSuggest()->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);
-            }
-        } elseif (count($version->getSuggest())) {
-            // clear existing suggests if present
-            foreach ($version->getSuggest() as $link) {
-                $em->remove($link);
-            }
-            $version->getSuggest()->clear();
-        }
-
-        if (!$package->getVersions()->contains($version)) {
-            $package->addVersions($version);
-        }
-
-        return true;
-    }
-}

+ 2 - 2
src/Packagist/WebBundle/PackagistWebBundle.php

@@ -12,9 +12,9 @@
 
 namespace Packagist\WebBundle;
 
-use Symfony\Component\HttpKernel\Bundle\Bundle;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Packagist\WebBundle\DependencyInjection\Compiler\RepositoryPass;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\HttpKernel\Bundle\Bundle;
 
 /**
  * @author Jordi Boggiano <j.boggiano@seld.be>

+ 3 - 2
src/Packagist/WebBundle/Security/Provider/UserProvider.php

@@ -16,9 +16,10 @@ use FOS\UserBundle\Model\UserManagerInterface;
 use HWI\Bundle\OAuthBundle\OAuth\Response\UserResponseInterface;
 use HWI\Bundle\OAuthBundle\Security\Core\Exception\AccountNotLinkedException;
 use HWI\Bundle\OAuthBundle\Security\Core\User\OAuthAwareUserProviderInterface;
+use Packagist\WebBundle\Entity\User;
 use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
-use Symfony\Component\Security\Core\User\UserProviderInterface;
 use Symfony\Component\Security\Core\User\UserInterface;
+use Symfony\Component\Security\Core\User\UserProviderInterface;
 
 class UserProvider implements OAuthAwareUserProviderInterface, UserProviderInterface
 {
@@ -74,7 +75,7 @@ class UserProvider implements OAuthAwareUserProviderInterface, UserProviderInter
             throw new AccountNotLinkedException(sprintf('No user with github username "%s" was found.', $username));
         }
 
-        if (!$user->getGithubToken()) {
+        if ($user->getGithubToken() !== $response->getAccessToken()) {
             $user->setGithubToken($response->getAccessToken());
             $this->userManager->updateUser($user);
         }

+ 1 - 1
src/Packagist/WebBundle/Tests/Controller/ApiControllerTest.php

@@ -2,8 +2,8 @@
 
 namespace Packagist\WebBundle\Tests\Controller;
 
-use Packagist\WebBundle\Entity\User;
 use Packagist\WebBundle\Entity\Package;
+use Packagist\WebBundle\Entity\User;
 use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
 
 class ApiControllerTest extends WebTestCase