Browse Source

Merge remote-tracking branch 'curry684/code-quality' into 1.0

Jordi Boggiano 9 years ago
parent
commit
da9b43dcc8
36 changed files with 93 additions and 52 deletions
  1. 2 2
      src/Composer/Autoload/AutoloadGenerator.php
  2. 4 2
      src/Composer/Command/BaseDependencyCommand.php
  3. 1 0
      src/Composer/Command/CreateProjectCommand.php
  4. 1 1
      src/Composer/Command/ExecCommand.php
  5. 1 1
      src/Composer/Command/HomeCommand.php
  6. 2 0
      src/Composer/Command/LicensesCommand.php
  7. 1 1
      src/Composer/Command/RunScriptCommand.php
  8. 0 1
      src/Composer/Command/SearchCommand.php
  9. 3 0
      src/Composer/Command/SelfUpdateCommand.php
  10. 11 3
      src/Composer/Command/ShowCommand.php
  11. 2 1
      src/Composer/Config.php
  12. 3 0
      src/Composer/DependencyResolver/Request.php
  13. 1 1
      src/Composer/Downloader/HgDownloader.php
  14. 1 1
      src/Composer/Downloader/SvnDownloader.php
  15. 1 3
      src/Composer/EventDispatcher/EventDispatcher.php
  16. 2 1
      src/Composer/Factory.php
  17. 5 8
      src/Composer/IO/BufferIO.php
  18. 14 0
      src/Composer/IO/ConsoleIO.php
  19. 6 6
      src/Composer/Installer/PearBinaryInstaller.php
  20. 0 1
      src/Composer/Installer/PearInstaller.php
  21. 1 1
      src/Composer/Installer/SuggestedPackagesReporter.php
  22. 2 1
      src/Composer/Json/JsonFile.php
  23. 1 1
      src/Composer/Package/Archiver/BaseExcludeFilter.php
  24. 2 5
      src/Composer/Package/Archiver/GitExcludeFilter.php
  25. 2 2
      src/Composer/Package/Loader/RootPackageLoader.php
  26. 1 0
      src/Composer/Repository/ArrayRepository.php
  27. 1 0
      src/Composer/Repository/ComposerRepository.php
  28. 0 1
      src/Composer/Repository/Pear/ChannelReader.php
  29. 16 2
      src/Composer/Repository/RepositoryFactory.php
  30. 1 0
      src/Composer/Repository/RepositoryManager.php
  31. 0 1
      src/Composer/Repository/Vcs/HgDriver.php
  32. 2 2
      src/Composer/Util/ErrorHandler.php
  33. 0 1
      src/Composer/Util/Git.php
  34. 1 0
      src/Composer/Util/GitLab.php
  35. 0 1
      src/Composer/Util/Svn.php
  36. 2 1
      src/Composer/Util/TlsHelper.php

+ 2 - 2
src/Composer/Autoload/AutoloadGenerator.php

@@ -18,7 +18,7 @@ use Composer\Installer\InstallationManager;
 use Composer\IO\IOInterface;
 use Composer\Package\AliasPackage;
 use Composer\Package\PackageInterface;
-use Composer\Repository\InstalledRepositoryInterface;
+use Composer\Repository\WritableRepositoryInterface;
 use Composer\Util\Filesystem;
 use Composer\Script\ScriptEvents;
 
@@ -85,7 +85,7 @@ class AutoloadGenerator
         $this->runScripts = (boolean) $runScripts;
     }
 
-    public function dump(Config $config, InstalledRepositoryInterface $localRepo, PackageInterface $mainPackage, InstallationManager $installationManager, $targetDir, $scanPsr0Packages = false, $suffix = '')
+    public function dump(Config $config, WritableRepositoryInterface $localRepo, PackageInterface $mainPackage, InstallationManager $installationManager, $targetDir, $scanPsr0Packages = false, $suffix = '')
     {
         if ($this->classMapAuthoritative) {
             // Force scanPsr0Packages when classmap is authoritative

+ 4 - 2
src/Composer/Command/BaseDependencyCommand.php

@@ -209,8 +209,9 @@ class BaseDependencyCommand extends BaseCommand
     /**
      * Recursively prints a tree of the selected results.
      *
-     * @param array  $results
-     * @param string $prefix
+     * @param array  $results Results to be printed at this level.
+     * @param string $prefix  Prefix of the current tree level.
+     * @param int    $level   Current level of recursion.
      */
     protected function printTree($results, $prefix = '', $level = 1)
     {
@@ -220,6 +221,7 @@ class BaseDependencyCommand extends BaseCommand
             /**
              * @var PackageInterface $package
              * @var Link             $link
+             * @var array|bool       $children
              */
             list($package, $link, $children) = $result;
 

+ 1 - 0
src/Composer/Command/CreateProjectCommand.php

@@ -373,6 +373,7 @@ EOT
      * @param InputInterface $input
      * @param bool           $preferSource
      * @param bool           $preferDist
+     * @param bool           $keepVcsRequiresPreferSource
      */
     protected function updatePreferredOptions(Config $config, InputInterface $input, &$preferSource, &$preferDist, $keepVcsRequiresPreferSource = false)
     {

+ 1 - 1
src/Composer/Command/ExecCommand.php

@@ -69,7 +69,7 @@ EOT
                 );
             }
 
-            return;
+            return 0;
         }
 
         $binary = $input->getArgument('binary');

+ 1 - 1
src/Composer/Command/HomeCommand.php

@@ -67,7 +67,7 @@ EOT
             foreach ($repos as $repo) {
                 foreach ($repo->findPackages($packageName) as $package) {
                     $packageExists = true;
-                    if ($this->handlePackage($package, $input->getOption('homepage'), $input->getOption('show'))) {
+                    if ($package instanceof CompletePackageInterface && $this->handlePackage($package, $input->getOption('homepage'), $input->getOption('show'))) {
                         $handled = true;
                         break 2;
                     }

+ 2 - 0
src/Composer/Command/LicensesCommand.php

@@ -114,6 +114,8 @@ EOT
      *
      * @param RepositoryInterface $repo
      * @param PackageInterface    $package
+     * @param array               $bucket
+     * @return array
      */
     private function filterRequiredPackages(RepositoryInterface $repo, PackageInterface $package, $bucket = array())
     {

+ 1 - 1
src/Composer/Command/RunScriptCommand.php

@@ -70,7 +70,7 @@ EOT
         if ($input->getOption('list')) {
             return $this->listScripts();
         } elseif (!$input->getArgument('script')) {
-            throw new \RunTimeException('Missing required argument "script"');
+            throw new \RuntimeException('Missing required argument "script"');
         }
 
         $script = $input->getArgument('script');

+ 0 - 1
src/Composer/Command/SearchCommand.php

@@ -19,7 +19,6 @@ use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Output\OutputInterface;
 use Composer\Repository\CompositeRepository;
 use Composer\Repository\PlatformRepository;
-use Composer\Repository\RepositoryFactory;
 use Composer\Repository\RepositoryInterface;
 use Composer\Plugin\CommandEvent;
 use Composer\Plugin\PluginEvents;

+ 3 - 0
src/Composer/Command/SelfUpdateCommand.php

@@ -305,6 +305,8 @@ TAGSPUBKEY
      * @param string $localFilename
      * @param string $newFilename
      * @param string $backupTarget
+     * @return \Exception|null
+     * @throws \Exception
      */
     protected function setLocalPhar($localFilename, $newFilename, $backupTarget = null)
     {
@@ -323,6 +325,7 @@ TAGSPUBKEY
             }
 
             rename($newFilename, $localFilename);
+            return null;
         } catch (\Exception $e) {
             if (!$e instanceof \UnexpectedValueException && !$e instanceof \PharException) {
                 throw $e;

+ 11 - 3
src/Composer/Command/ShowCommand.php

@@ -89,7 +89,7 @@ EOT
         if ($input->getOption('tree') && ($input->getOption('all') || $input->getOption('available'))) {
             $io->writeError('The --tree (-t) option is not usable in combination with --all or --available (-a)');
 
-            return;
+            return 0;
         }
 
         // init repos
@@ -332,7 +332,11 @@ EOT
     }
 
     /**
-     * prints package meta data
+     * Prints package metadata.
+     *
+     * @param CompletePackageInterface $package
+     * @param array                    $versions
+     * @param RepositoryInterface      $installedRepo
      */
     protected function printMeta(CompletePackageInterface $package, array $versions, RepositoryInterface $installedRepo)
     {
@@ -389,7 +393,11 @@ EOT
     }
 
     /**
-     * prints all available versions of this package and highlights the installed one if any
+     * Prints all available versions of this package and highlights the installed one if any.
+     *
+     * @param CompletePackageInterface $package
+     * @param array                    $versions
+     * @param RepositoryInterface      $installedRepo
      */
     protected function printVersions(CompletePackageInterface $package, array $versions, RepositoryInterface $installedRepo)
     {

+ 2 - 1
src/Composer/Config.php

@@ -80,7 +80,8 @@ class Config
     private $useEnvironment;
 
     /**
-     * @param bool $useEnvironment Use COMPOSER_ environment variables to replace config settings
+     * @param bool      $useEnvironment Use COMPOSER_ environment variables to replace config settings
+     * @param string    $baseDir        Optional base directory of the config
      */
     public function __construct($useEnvironment = true, $baseDir = null)
     {

+ 3 - 0
src/Composer/DependencyResolver/Request.php

@@ -45,6 +45,9 @@ class Request
      * Mark an existing package as being installed and having to remain installed
      *
      * These jobs will not be tempered with by the solver
+     *
+     * @param string                    $packageName
+     * @param ConstraintInterface|null  $constraint
      */
     public function fix($packageName, ConstraintInterface $constraint = null)
     {

+ 1 - 1
src/Composer/Downloader/HgDownloader.php

@@ -69,7 +69,7 @@ class HgDownloader extends VcsDownloader
     public function getLocalChanges(PackageInterface $package, $path)
     {
         if (!is_dir($path.'/.hg')) {
-            return;
+            return null;
         }
 
         $this->process->execute('hg st', $output, realpath($path));

+ 1 - 1
src/Composer/Downloader/SvnDownloader.php

@@ -73,7 +73,7 @@ class SvnDownloader extends VcsDownloader
     public function getLocalChanges(PackageInterface $package, $path)
     {
         if (!$this->hasMetadataRepository($path)) {
-            return;
+            return null;
         }
 
         $this->process->execute('svn status --ignore-externals', $output, $path);

+ 1 - 3
src/Composer/EventDispatcher/EventDispatcher.php

@@ -137,11 +137,9 @@ class EventDispatcher
      * Triggers the listeners of an event.
      *
      * @param  Event             $event          The event object to pass to the event handlers/listeners.
-     * @param  string            $additionalArgs
-     * @throws \RuntimeException
-     * @throws \Exception
      * @return int               return code of the executed script if any, for php scripts a false return
      *                                          value is changed to 1, anything else to 0
+     * @throws \RuntimeException|\Exception
      */
     protected function doDispatch(Event $event)
     {

+ 2 - 1
src/Composer/Factory.php

@@ -25,6 +25,7 @@ use Composer\Util\Platform;
 use Composer\Util\ProcessExecutor;
 use Composer\Util\RemoteFilesystem;
 use Composer\Util\Silencer;
+use Seld\JsonLint\DuplicateKeyException;
 use Symfony\Component\Console\Formatter\OutputFormatterStyle;
 use Composer\EventDispatcher\EventDispatcher;
 use Composer\Autoload\AutoloadGenerator;
@@ -270,7 +271,7 @@ class Factory
             $jsonParser = new JsonParser;
             try {
                 $jsonParser->parse(file_get_contents($localConfig), JsonParser::DETECT_KEY_CONFLICTS);
-            } catch (\Seld\JsonLint\DuplicateKeyException $e) {
+            } catch (DuplicateKeyException $e) {
                 $details = $e->getDetails();
                 $io->writeError('<warning>Key '.$details['key'].' is a duplicate in '.$localConfig.' at line '.$details['line'].'</warning>');
             }

+ 5 - 8
src/Composer/IO/BufferIO.php

@@ -23,15 +23,12 @@ use Symfony\Component\Console\Helper\HelperSet;
 class BufferIO extends ConsoleIO
 {
     /**
-     * @param string                   $input
-     * @param int                      $verbosity
-     * @param OutputFormatterInterface $formatter
+     * @param string                        $input
+     * @param int                           $verbosity
+     * @param OutputFormatterInterface|null $formatter
      */
-    public function __construct(
-        $input = '',
-        $verbosity = StreamOutput::VERBOSITY_NORMAL,
-        OutputFormatterInterface $formatter = null
-    ) {
+    public function __construct($input = '', $verbosity = StreamOutput::VERBOSITY_NORMAL, OutputFormatterInterface $formatter = null)
+    {
         $input = new StringInput($input);
         $input->setInteractive(false);
 

+ 14 - 0
src/Composer/IO/ConsoleIO.php

@@ -27,12 +27,20 @@ use Symfony\Component\Console\Question\Question;
  */
 class ConsoleIO extends BaseIO
 {
+    /** @var InputInterface */
     protected $input;
+    /** @var OutputInterface */
     protected $output;
+    /** @var HelperSet */
     protected $helperSet;
+    /** @var string */
     protected $lastMessage;
+    /** @var string */
     protected $lastMessageErr;
+
+    /** @var float */
     private $startTime;
+    /** @var array<int, int> */
     private $verbosityMap;
 
     /**
@@ -56,6 +64,9 @@ class ConsoleIO extends BaseIO
         );
     }
 
+    /**
+     * @param float $startTime
+     */
     public function enableDebugging($startTime)
     {
         $this->startTime = $startTime;
@@ -274,6 +285,9 @@ class ConsoleIO extends BaseIO
         return $default;
     }
 
+    /**
+     * @return OutputInterface
+     */
     private function getErrorOutput()
     {
         if ($this->output instanceof ConsoleOutputInterface) {

+ 6 - 6
src/Composer/Installer/PearBinaryInstaller.php

@@ -15,9 +15,7 @@ namespace Composer\Installer;
 use Composer\IO\IOInterface;
 use Composer\Package\PackageInterface;
 use Composer\Util\Filesystem;
-use Composer\Util\Platform;
 use Composer\Util\ProcessExecutor;
-use Composer\Util\Silencer;
 
 /**
  * Utility to handle installation of package "bin"/binaries for PEAR packages
@@ -30,10 +28,12 @@ class PearBinaryInstaller extends BinaryInstaller
     private $vendorDir;
 
     /**
-     * @param IOInterface $io
-     * @param string $binDir
-     * @param string $binCompat
-     * @param Filesystem $filesystem
+     * @param IOInterface   $io
+     * @param string        $binDir
+     * @param string        $vendorDir
+     * @param string        $binCompat
+     * @param Filesystem    $filesystem
+     * @param PearInstaller $installer
      */
     public function __construct(IOInterface $io, $binDir, $vendorDir, $binCompat, Filesystem $filesystem, PearInstaller $installer)
     {

+ 0 - 1
src/Composer/Installer/PearInstaller.php

@@ -18,7 +18,6 @@ use Composer\Downloader\PearPackageExtractor;
 use Composer\Repository\InstalledRepositoryInterface;
 use Composer\Package\PackageInterface;
 use Composer\Util\Platform;
-use Composer\Util\ProcessExecutor;
 use Composer\Util\Filesystem;
 
 /**

+ 1 - 1
src/Composer/Installer/SuggestedPackagesReporter.php

@@ -29,7 +29,7 @@ class SuggestedPackagesReporter
     protected $suggestedPackages = array();
 
     /**
-     * @var Composer\IO\IOInterface
+     * @var IOInterface
      */
     private $io;
 

+ 2 - 1
src/Composer/Json/JsonFile.php

@@ -43,6 +43,7 @@ class JsonFile
      *
      * @param  string                    $path path to a lockfile
      * @param  RemoteFilesystem          $rfs  required for loading http/https json files
+     * @param  IOInterface               $io
      * @throws \InvalidArgumentException
      */
     public function __construct($path, RemoteFilesystem $rfs = null, IOInterface $io = null)
@@ -105,7 +106,7 @@ class JsonFile
      *
      * @param  array                     $hash    writes hash into json file
      * @param  int                       $options json_encode options (defaults to JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
-     * @throws \UnexpectedValueException
+     * @throws \UnexpectedValueException|\Exception
      */
     public function write(array $hash, $options = 448)
     {

+ 1 - 1
src/Composer/Package/Archiver/BaseExcludeFilter.php

@@ -83,7 +83,7 @@ abstract class BaseExcludeFilter
                     $line = trim($line);
 
                     if (!$line || 0 === strpos($line, '#')) {
-                        return;
+                        return null;
                     }
 
                     return call_user_func($lineParser, $line);

+ 2 - 5
src/Composer/Package/Archiver/GitExcludeFilter.php

@@ -69,12 +69,9 @@ class GitExcludeFilter extends BaseExcludeFilter
     {
         $parts = preg_split('#\s+#', $line);
 
-        if (count($parts) != 2) {
-            return null;
-        }
-
-        if ($parts[1] === 'export-ignore') {
+        if (count($parts) == 2 && $parts[1] === 'export-ignore') {
             return $this->generatePattern($parts[0]);
         }
+        return null;
     }
 }

+ 2 - 2
src/Composer/Package/Loader/RootPackageLoader.php

@@ -13,9 +13,9 @@
 namespace Composer\Package\Loader;
 
 use Composer\Package\BasePackage;
-use Composer\Package\PackageInterface;
 use Composer\Package\AliasPackage;
 use Composer\Config;
+use Composer\Package\RootPackageInterface;
 use Composer\Repository\RepositoryFactory;
 use Composer\Package\Version\VersionGuesser;
 use Composer\Package\Version\VersionParser;
@@ -59,7 +59,7 @@ class RootPackageLoader extends ArrayLoader
      * @param  array            $config package data
      * @param  string           $class  FQCN to be instantiated
      * @param  string           $cwd    cwd of the root package to be used to guess the version if it is not provided
-     * @return PackageInterface
+     * @return RootPackageInterface
      */
     public function load(array $config, $class = 'Composer\Package\RootPackage', $cwd = null)
     {

+ 1 - 0
src/Composer/Repository/ArrayRepository.php

@@ -56,6 +56,7 @@ class ArrayRepository extends BaseRepository
                 }
             }
         }
+        return null;
     }
 
     /**

+ 1 - 0
src/Composer/Repository/ComposerRepository.php

@@ -272,6 +272,7 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito
      * @param Pool   $pool
      * @param string $name package name
      * @param bool   $bypassFilters If set to true, this bypasses the stability filtering, and forces a recompute without cache
+     * @return array|mixed
      */
     public function whatProvides(Pool $pool, $name, $bypassFilters = false)
     {

+ 0 - 1
src/Composer/Repository/Pear/ChannelReader.php

@@ -53,7 +53,6 @@ class ChannelReader extends BaseChannelReader
         $xml = $this->requestXml($url, "/channel.xml");
 
         $channelName = (string) $xml->name;
-        $channelSummary = (string) $xml->summary;
         $channelAlias = (string) $xml->suggestedalias;
 
         $supportedVersions = array_keys($this->readerMap);

+ 16 - 2
src/Composer/Repository/RepositoryFactory.php

@@ -25,7 +25,11 @@ use Composer\Json\JsonFile;
 class RepositoryFactory
 {
     /**
-     * @return array
+     * @param IOInterface   $io
+     * @param Config        $config
+     * @param string        $repository
+     * @param bool          $allowFilesystem
+     * @return array|mixed
      */
     public static function configFromString(IOInterface $io, Config $config, $repository, $allowFilesystem = false)
     {
@@ -52,6 +56,10 @@ class RepositoryFactory
     }
 
     /**
+     * @param IOInterface   $io
+     * @param Config        $config
+     * @param string        $repository
+     * @param bool          $allowFilesystem
      * @return RepositoryInterface
      */
     public static function fromString(IOInterface $io, Config $config, $repository, $allowFilesystem = false)
@@ -62,9 +70,12 @@ class RepositoryFactory
     }
 
     /**
+     * @param IOInterface   $io
+     * @param Config        $config
+     * @param array         $repoConfig
      * @return RepositoryInterface
      */
-    public static function createRepo($io, $config, array $repoConfig)
+    public static function createRepo(IOInterface $io, Config $config, array $repoConfig)
     {
         $rm = static::manager($io, $config, null, Factory::createRemoteFilesystem($io, $config));
         $repos = static::createRepos($rm, array($repoConfig));
@@ -73,6 +84,9 @@ class RepositoryFactory
     }
 
     /**
+     * @param IOInterface|null          $io
+     * @param Config|null               $config
+     * @param RepositoryManager|null    $rm
      * @return RepositoryInterface[]
      */
     public static function defaultRepos(IOInterface $io = null, Config $config = null, RepositoryManager $rm = null)

+ 1 - 0
src/Composer/Repository/RepositoryManager.php

@@ -58,6 +58,7 @@ class RepositoryManager
                 return $package;
             }
         }
+        return null;
     }
 
     /**

+ 0 - 1
src/Composer/Repository/Vcs/HgDriver.php

@@ -17,7 +17,6 @@ use Composer\Json\JsonFile;
 use Composer\Util\ProcessExecutor;
 use Composer\Util\Filesystem;
 use Composer\IO\IOInterface;
-use Composer\Downloader\TransportException;
 
 /**
  * @author Per Bernhardt <plb@webfactory.de>

+ 2 - 2
src/Composer/Util/ErrorHandler.php

@@ -66,9 +66,9 @@ class ErrorHandler
     }
 
     /**
-     * Register error handler
+     * Register error handler.
      *
-     * @static
+     * @param IOInterface|null $io
      */
     public static function register(IOInterface $io = null)
     {

+ 0 - 1
src/Composer/Util/Git.php

@@ -14,7 +14,6 @@ namespace Composer\Util;
 
 use Composer\Config;
 use Composer\IO\IOInterface;
-use Composer\Downloader\TransportException;
 
 /**
  * @author Jordi Boggiano <j.boggiano@seld.be>

+ 1 - 0
src/Composer/Util/GitLab.php

@@ -70,6 +70,7 @@ class GitLab
     /**
      * Authorizes a GitLab domain interactively via OAuth.
      *
+     * @param string $scheme    Scheme used in the origin URL
      * @param string $originUrl The host this GitLab instance is located at
      * @param string $message   The reason this authorization is required
      *

+ 0 - 1
src/Composer/Util/Svn.php

@@ -13,7 +13,6 @@
 namespace Composer\Util;
 
 use Composer\Config;
-use Composer\Downloader\TransportException;
 use Composer\IO\IOInterface;
 
 /**

+ 2 - 1
src/Composer/Util/TlsHelper.php

@@ -70,7 +70,7 @@ final class TlsHelper
         }
 
         if (!isset($info['subject']['commonName'])) {
-            return;
+            return null;
         }
 
         $commonName = strtolower($info['subject']['commonName']);
@@ -82,6 +82,7 @@ final class TlsHelper
                 if (0 === strpos($name, 'DNS:')) {
                     return strtolower(ltrim(substr($name, 4)));
                 }
+                return null;
             }, $subjectAltNames));
             $subjectAltNames = array_values($subjectAltNames);
         }