Ver Fonte

More `use` cleanup, moved start out of constructor.

Beau Simensen há 13 anos atrás
pai
commit
14bf363a3f

+ 2 - 14
src/Packagist/WebBundle/Command/UpdatePackagesCommand.php

@@ -13,29 +13,18 @@
 namespace Packagist\WebBundle\Command;
 
 use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
-use Symfony\Bridge\Doctrine\RegistryInterface;
 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 Symfony\Component\HttpKernel\KernelInterface;
-use Symfony\Component\Finder\Finder;
-use Packagist\WebBundle\Entity\Version;
-use Packagist\WebBundle\Entity\Tag;
-use Packagist\WebBundle\Entity\Author;
 use Packagist\WebBundle\Package\Updater;
-use Packagist\WebBundle\Repository\Repository\RepositoryInterface;
-use Composer\Package\Version\VersionParser;
 use Composer\Repository\VcsRepository;
-use Composer\Repository\RepositoryManager;
 
 /**
  * @author Jordi Boggiano <j.boggiano@seld.be>
  */
 class UpdatePackagesCommand extends ContainerAwareCommand
 {
-    protected $versionParser;
-
     protected $supportedLinkTypes = array(
         'require'   => 'RequireLink',
         'conflict'  => 'ConflictLink',
@@ -72,8 +61,6 @@ class UpdatePackagesCommand extends ContainerAwareCommand
         $doctrine = $this->getContainer()->get('doctrine');
         $logger = $this->getContainer()->get('logger');
 
-        $this->versionParser = new VersionParser;
-
         if ($package) {
             $packages = array($doctrine->getRepository('PackagistWebBundle:Package')->findOneByName($package));
         } elseif ($force) {
@@ -83,13 +70,14 @@ class UpdatePackagesCommand extends ContainerAwareCommand
         }
 
         $updater = new Updater($doctrine);
+        $start = new \DateTime();
 
         foreach ($packages as $package) {
             if ($verbose) {
                 $output->writeln('Importing '.$package->getRepository());
             }
             try {
-                $updater->update($package, $force);
+                $updater->update($package, $start, $force);
             } catch (\Exception $e) {
                 $output->writeln('<error>Exception: '.$e->getMessage().', skipping package '.$package->getName().'.</error>');
             }

+ 8 - 11
src/Packagist/WebBundle/Package/Updater.php

@@ -32,12 +32,6 @@ class Updater
      */
     protected $doctrine;
 
-    /**
-     * Start
-     * @var DateTime
-     */
-    protected $start;
-
     /**
      * Supported link types
      * @var array
@@ -57,10 +51,9 @@ class Updater
      * @param RegistryInterface $doctrine
      * @param \DateTime $start
      */
-    public function __construct(RegistryInterface $doctrine, \DateTime $start = null)
+    public function __construct(RegistryInterface $doctrine)
     {
         $this->doctrine = $doctrine;
-        $this->start = null !== $start ? $start : new \DateTime();
     }
 
     /**
@@ -69,8 +62,12 @@ class Updater
      * @param PackageInterface $package
      * @param boolean $clearExistingVersions
      */
-    public function update(Package $package, $clearExistingVersions = false)
+    public function update(Package $package, \DateTime $start = null, $clearExistingVersions = false)
     {
+        if (null === $start) {
+            $start = new \DateTime();
+        }
+
         $repository = new VcsRepository(array('url' => $package->getRepository()), new NullIO());
         $versions = $repository->getPackages();
         $em = $this->doctrine->getEntityManager();
@@ -83,7 +80,7 @@ class Updater
         
         if ($clearExistingVersions) {
             foreach ($package->getVersions() as $version) {
-                $versionRepo->remove($version);
+                $versionRepository->remove($version);
             }
         
             $em->flush();
@@ -97,7 +94,7 @@ class Updater
         
         // remove outdated -dev versions
         foreach ($package->getVersions() as $version) {
-            if ($version->getDevelopment() && $version->getUpdatedAt() < $this->start) {
+            if ($version->getDevelopment() && $version->getUpdatedAt() < $start) {
                 $versionRepository->remove($version);
             }
         }