diff --git a/.php_cs b/.php_cs index 0c6b9ead7..a2bd217ed 100644 --- a/.php_cs +++ b/.php_cs @@ -1,5 +1,15 @@ + Jordi Boggiano + +For the full copyright and license information, please view the LICENSE +file that was distributed with this source code. +EOF; + $finder = Symfony\CS\Finder\DefaultFinder::create() ->files() ->name('*.php') @@ -15,9 +25,14 @@ return Symfony\CS\Config\Config::create() '@PSR2' => true, 'duplicate_semicolon' => true, 'extra_empty_lines' => true, + 'header_comment' => array('header' => $header), 'include' => true, + 'long_array_syntax' => true, + 'method_separation' => true, 'multiline_array_trailing_comma' => true, 'namespace_no_leading_whitespace' => true, + 'no_blank_lines_after_class_opening' => true, + 'no_empty_lines_after_phpdocs' => true, 'object_operator' => true, 'operators_spaces' => true, 'phpdoc_align' => true, @@ -30,7 +45,10 @@ return Symfony\CS\Config\Config::create() 'phpdoc_type_to_var' => true, 'psr0' => true, 'return' => true, + 'remove_leading_slash_use' => true, + 'remove_lines_between_uses' => true, 'single_array_no_trailing_comma' => true, + 'single_blank_line_before_namespace' => true, 'spaces_cast' => true, 'standardize_not_equal' => true, 'ternary_spaces' => true, diff --git a/src/Composer/Autoload/ClassMapGenerator.php b/src/Composer/Autoload/ClassMapGenerator.php index 5484b7d41..7f7e7e1eb 100644 --- a/src/Composer/Autoload/ClassMapGenerator.php +++ b/src/Composer/Autoload/ClassMapGenerator.php @@ -1,14 +1,19 @@ + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + /* * This file is copied from the Symfony package. * * (c) Fabien Potencier - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * - * @license MIT */ namespace Composer\Autoload; diff --git a/src/Composer/DependencyResolver/PolicyInterface.php b/src/Composer/DependencyResolver/PolicyInterface.php index 433478920..b68cfffb8 100644 --- a/src/Composer/DependencyResolver/PolicyInterface.php +++ b/src/Composer/DependencyResolver/PolicyInterface.php @@ -20,6 +20,8 @@ use Composer\Package\PackageInterface; interface PolicyInterface { public function versionCompare(PackageInterface $a, PackageInterface $b, $operator); + public function findUpdatePackages(Pool $pool, array $installedMap, PackageInterface $package); + public function selectPreferredPackages(Pool $pool, array $installedMap, array $literals); } diff --git a/src/Composer/DependencyResolver/Solver.php b/src/Composer/DependencyResolver/Solver.php index 0568a4d2c..712e1b5cd 100644 --- a/src/Composer/DependencyResolver/Solver.php +++ b/src/Composer/DependencyResolver/Solver.php @@ -23,25 +23,44 @@ class Solver const BRANCH_LITERALS = 0; const BRANCH_LEVEL = 1; + /** @var PolicyInterface */ protected $policy; + /** @var Pool */ protected $pool; + /** @var RepositoryInterface */ protected $installed; + /** @var Ruleset */ protected $rules; + /** @var RuleSetGenerator */ protected $ruleSetGenerator; - protected $updateAll; + /** @var array */ + protected $jobs; - protected $addedMap = array(); + /** @var int[] */ protected $updateMap = array(); + /** @var RuleWatchGraph */ protected $watchGraph; + /** @var Decisions */ protected $decisions; + /** @var int[] */ protected $installedMap; + /** @var int */ protected $propagateIndex; + /** @var array[] */ protected $branches = array(); + /** @var Problem[] */ protected $problems = array(); + /** @var array */ protected $learnedPool = array(); + /** @var array */ protected $learnedWhy = array(); + /** + * @param PolicyInterface $policy + * @param Pool $pool + * @param RepositoryInterface $installed + */ public function __construct(PolicyInterface $policy, Pool $pool, RepositoryInterface $installed) { $this->policy = $policy; @@ -50,12 +69,16 @@ class Solver $this->ruleSetGenerator = new RuleSetGenerator($policy, $pool); } + /** + * @return int + */ public function getRuleSetSize() { return count($this->rules); } // aka solver_makeruledecisions + private function makeAssertionRuleDecisions() { $decisionStart = count($this->decisions) - 1; @@ -135,6 +158,9 @@ class Solver } } + /** + * @param bool $ignorePlatformReqs + */ protected function checkForRootRequireProblems($ignorePlatformReqs) { foreach ($this->jobs as $job) { @@ -169,6 +195,11 @@ class Solver } } + /** + * @param Request $request + * @param bool $ignorePlatformReqs + * @return array + */ public function solve(Request $request, $ignorePlatformReqs = false) { $this->jobs = $request->getJobs(); @@ -243,6 +274,8 @@ class Solver /** * Reverts a decision at the given level. + * + * @param int $level */ private function revert($level) { @@ -268,8 +301,7 @@ class Solver } } - /**------------------------------------------------------------------- - * + /** * setpropagatelearn * * add free decision (a positive literal) to decision queue @@ -282,6 +314,11 @@ class Solver * * returns the new solver level or 0 if unsolvable * + * @param int $level + * @param string|int $literal + * @param bool $disableRules + * @param Rule $rule + * @return int */ private function setPropagateLearn($level, $literal, $disableRules, Rule $rule) { @@ -331,6 +368,13 @@ class Solver return $level; } + /** + * @param int $level + * @param array $decisionQueue + * @param bool $disableRules + * @param Rule $rule + * @return int + */ private function selectAndInstall($level, array $decisionQueue, $disableRules, Rule $rule) { // choose best package to install from decisionQueue @@ -346,7 +390,12 @@ class Solver return $this->setPropagateLearn($level, $selectedLiteral, $disableRules, $rule); } - protected function analyze($level, $rule) + /** + * @param int $level + * @param Rule $rule + * @return array + */ + protected function analyze($level, Rule $rule) { $analyzedRule = $rule; $ruleLevel = 1; @@ -452,7 +501,11 @@ class Solver return array($learnedLiterals[0], $ruleLevel, $newRule, $why); } - private function analyzeUnsolvableRule($problem, $conflictRule) + /** + * @param Problem $problem + * @param Rule $conflictRule + */ + private function analyzeUnsolvableRule(Problem $problem, Rule $conflictRule) { $why = spl_object_hash($conflictRule); @@ -476,7 +529,12 @@ class Solver $problem->addRule($conflictRule); } - private function analyzeUnsolvable($conflictRule, $disableRules) + /** + * @param Rule $conflictRule + * @param bool $disableRules + * @return int + */ + private function analyzeUnsolvable(Rule $conflictRule, $disableRules) { $problem = new Problem($this->pool); $problem->addRule($conflictRule); @@ -533,7 +591,10 @@ class Solver return 0; } - private function disableProblem($why) + /** + * @param Rule $why + */ + private function disableProblem(Rule $why) { $job = $why->getJob(); @@ -545,6 +606,7 @@ class Solver // disable all rules of this job foreach ($this->rules as $rule) { + /** @var Rule $rule */ if ($job === $rule->getJob()) { $rule->disable(); } @@ -562,13 +624,13 @@ class Solver $this->makeAssertionRuleDecisions(); } - /*------------------------------------------------------------------- - * enable/disable learnt rules - * - * we have enabled or disabled some of our rules. We now re-enable all - * of our learnt rules except the ones that were learnt from rules that - * are now disabled. - */ + /** + * enable/disable learnt rules + * + * we have enabled or disabled some of our rules. We now re-enable all + * of our learnt rules except the ones that were learnt from rules that + * are now disabled. + */ private function enableDisableLearnedRules() { foreach ($this->rules->getIteratorFor(RuleSet::TYPE_LEARNED) as $rule) { @@ -591,22 +653,28 @@ class Solver } } + /** + * @param bool $disableRules + */ private function runSat($disableRules = true) { $this->propagateIndex = 0; - // /* - // * here's the main loop: - // * 1) propagate new decisions (only needed once) - // * 2) fulfill jobs - // * 3) fulfill all unresolved rules - // * 4) minimalize solution if we had choices - // * if we encounter a problem, we rewind to a safe level and restart - // * with step 1 - // */ + /* + * here's the main loop: + * 1) propagate new decisions (only needed once) + * 2) fulfill jobs + * 3) fulfill all unresolved rules + * 4) minimalize solution if we had choices + * if we encounter a problem, we rewind to a safe level and restart + * with step 1 + */ $decisionQueue = array(); $decisionSupplementQueue = array(); + /** + * @todo this makes $disableRules always false; determine the rationale and possibly remove dead code? + */ $disableRules = array(); $level = 1; diff --git a/src/Composer/Package/AliasPackage.php b/src/Composer/Package/AliasPackage.php index 8e1bb88fe..9541d3359 100644 --- a/src/Composer/Package/AliasPackage.php +++ b/src/Composer/Package/AliasPackage.php @@ -197,162 +197,202 @@ class AliasPackage extends BasePackage implements CompletePackageInterface { return $this->aliasOf->getType(); } + public function getTargetDir() { return $this->aliasOf->getTargetDir(); } + public function getExtra() { return $this->aliasOf->getExtra(); } + public function setInstallationSource($type) { $this->aliasOf->setInstallationSource($type); } + public function getInstallationSource() { return $this->aliasOf->getInstallationSource(); } + public function getSourceType() { return $this->aliasOf->getSourceType(); } + public function getSourceUrl() { return $this->aliasOf->getSourceUrl(); } + public function getSourceUrls() { return $this->aliasOf->getSourceUrls(); } + public function getSourceReference() { return $this->aliasOf->getSourceReference(); } + public function setSourceReference($reference) { return $this->aliasOf->setSourceReference($reference); } + public function setSourceMirrors($mirrors) { return $this->aliasOf->setSourceMirrors($mirrors); } + public function getSourceMirrors() { return $this->aliasOf->getSourceMirrors(); } + public function getDistType() { return $this->aliasOf->getDistType(); } + public function getDistUrl() { return $this->aliasOf->getDistUrl(); } + public function getDistUrls() { return $this->aliasOf->getDistUrls(); } + public function getDistReference() { return $this->aliasOf->getDistReference(); } + public function setDistReference($reference) { return $this->aliasOf->setDistReference($reference); } + public function getDistSha1Checksum() { return $this->aliasOf->getDistSha1Checksum(); } + public function setTransportOptions(array $options) { return $this->aliasOf->setTransportOptions($options); } + public function getTransportOptions() { return $this->aliasOf->getTransportOptions(); } + public function setDistMirrors($mirrors) { return $this->aliasOf->setDistMirrors($mirrors); } + public function getDistMirrors() { return $this->aliasOf->getDistMirrors(); } + public function getScripts() { return $this->aliasOf->getScripts(); } + public function getLicense() { return $this->aliasOf->getLicense(); } + public function getAutoload() { return $this->aliasOf->getAutoload(); } + public function getDevAutoload() { return $this->aliasOf->getDevAutoload(); } + public function getIncludePaths() { return $this->aliasOf->getIncludePaths(); } + public function getRepositories() { return $this->aliasOf->getRepositories(); } + public function getReleaseDate() { return $this->aliasOf->getReleaseDate(); } + public function getBinaries() { return $this->aliasOf->getBinaries(); } + public function getKeywords() { return $this->aliasOf->getKeywords(); } + public function getDescription() { return $this->aliasOf->getDescription(); } + public function getHomepage() { return $this->aliasOf->getHomepage(); } + public function getSuggests() { return $this->aliasOf->getSuggests(); } + public function getAuthors() { return $this->aliasOf->getAuthors(); } + public function getSupport() { return $this->aliasOf->getSupport(); } + public function getNotificationUrl() { return $this->aliasOf->getNotificationUrl(); } + public function getArchiveExcludes() { return $this->aliasOf->getArchiveExcludes(); } + public function isAbandoned() { return $this->aliasOf->isAbandoned(); } + public function getReplacementPackage() { return $this->aliasOf->getReplacementPackage(); } + public function __toString() { return parent::__toString().' (alias of '.$this->aliasOf->getVersion().')'; diff --git a/src/Composer/Util/ProcessExecutor.php b/src/Composer/Util/ProcessExecutor.php index 38f5bba00..f9499f09f 100644 --- a/src/Composer/Util/ProcessExecutor.php +++ b/src/Composer/Util/ProcessExecutor.php @@ -113,7 +113,6 @@ class ProcessExecutor * * @return string The escaped argument */ - public static function escape($argument) { return ProcessUtils::escapeArgument($argument); diff --git a/tests/Composer/Test/Autoload/ClassLoaderTest.php b/tests/Composer/Test/Autoload/ClassLoaderTest.php index 50772101e..d341b393b 100644 --- a/tests/Composer/Test/Autoload/ClassLoaderTest.php +++ b/tests/Composer/Test/Autoload/ClassLoaderTest.php @@ -1,5 +1,15 @@ + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + namespace Composer\Test\Autoload; use Composer\Autoload\ClassLoader; diff --git a/tests/Composer/Test/Autoload/ClassMapGeneratorTest.php b/tests/Composer/Test/Autoload/ClassMapGeneratorTest.php index 468f72378..3b703d8f3 100644 --- a/tests/Composer/Test/Autoload/ClassMapGeneratorTest.php +++ b/tests/Composer/Test/Autoload/ClassMapGeneratorTest.php @@ -1,14 +1,21 @@ + * (c) Nils Adermann + * Jordi Boggiano * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ +/* + * This file is copied from the Symfony package. + * + * (c) Fabien Potencier + */ + namespace Composer\Test\Autoload; use Composer\Autoload\ClassMapGenerator; diff --git a/tests/Composer/Test/DependencyResolver/SolverTest.php b/tests/Composer/Test/DependencyResolver/SolverTest.php index 2c67d7464..ed62e3d79 100644 --- a/tests/Composer/Test/DependencyResolver/SolverTest.php +++ b/tests/Composer/Test/DependencyResolver/SolverTest.php @@ -9,6 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ + namespace Composer\Test\DependencyResolver; use Composer\Repository\ArrayRepository; diff --git a/tests/Composer/Test/Util/GitHubTest.php b/tests/Composer/Test/Util/GitHubTest.php index 83d18dbe4..a39f3dab9 100644 --- a/tests/Composer/Test/Util/GitHubTest.php +++ b/tests/Composer/Test/Util/GitHubTest.php @@ -1,14 +1,14 @@ -* Jordi Boggiano -* -* For the full copyright and license information, please view the LICENSE -* file that was distributed with this source code. -*/ + * This file is part of Composer. + * + * (c) Nils Adermann + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ namespace Composer\Test\Util; diff --git a/tests/Composer/Test/Util/SvnTest.php b/tests/Composer/Test/Util/SvnTest.php index c54c9c504..55a116376 100644 --- a/tests/Composer/Test/Util/SvnTest.php +++ b/tests/Composer/Test/Util/SvnTest.php @@ -1,4 +1,15 @@ + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + namespace Composer\Test\Util; use Composer\Config;