function run(array $argv) { set_time_limit(0); date_default_timezone_set("UTC"); try { $config = new Config($argv); } catch (InvalidConfigException $exception) { $this->usage(); exit(1); } $output = new \Guardrail\Output\XUnitOutput($config); if ($config->shouldIndex()) { $output->outputExtraVerbose("Indexing\n"); $indexer = new IndexingPhase(); $indexer->run($config, $output); $output->outputExtraVerbose("\nDone\n\n"); //$output->renderResults(); exit(0); } if ($config->shouldAnalyze()) { $analyzer = new AnalyzingPhase(); $output->outputExtraVerbose("Analyzing\n"); if (!$config->hasFileList()) { $exitCode = $analyzer->run($config, $output); } else { $list = $config->getFileList(); $exitCode = $analyzer->phase2($config, $output, $list); } $output->outputExtraVerbose("\nDone\n\n"); $output->renderResults(); //print_r($output->getErrorsByFile()); exit($exitCode); } }
function renderResults() { if ($this->config->getOutputFile()) { $this->doc->save($this->config->getOutputFile()); } else { echo $this->doc->saveXml(); } }
function run(Config $config, OutputInterface $output) { $configArr = $config->getConfigArray(); $indexPaths = $configArr['index']; foreach ($indexPaths as $directory) { $tmpDirectory = strpos($directory, "/") === 0 ? $directory : $config->getBasePath() . "/" . $directory; $output->outputVerbose("Indexing Directory: " . $tmpDirectory . "\n"); $it = new \RecursiveDirectoryIterator($tmpDirectory, \FilesystemIterator::SKIP_DOTS); $it2 = new \RecursiveIteratorIterator($it); $this->index($config, $output, $it2); } $it = new \RecursiveDirectoryIterator(dirname(__DIR__) . "/ExtraStubs"); $it2 = new \RecursiveIteratorIterator($it); $this->index($config, $output, $it2, true); /* $it = new \RecursiveDirectoryIterator(dirname(dirname(__DIR__)) . "/vendor/phpstubs/phpstubs/res"); $it2 = new \RecursiveIteratorIterator($it); $this->index($config, $it2, true); */ }
function run(Config $config, OutputInterface $output) { $basePath = $config->getBasePath(); $toProcess = []; $configArray = $config->getConfigArray(); foreach ($configArray['test'] as $directory) { $directory = $basePath . "/" . $directory; $output->outputVerbose("Directory: {$directory}\n"); $it = new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS); $it2 = new \RecursiveIteratorIterator($it); $this->getPhase2Files($config, $output, $it2, $toProcess); } sort($toProcess); // First we split up the files by partition. // If we're running multiple child processes, then we'll split the list again. $groupSize = intval(count($toProcess) / $config->getPartitions()); $toProcess = $config->getPartitionNumber() == $config->getPartitions() ? array_slice($toProcess, $groupSize * ($config->getPartitionNumber() - 1)) : array_slice($toProcess, $groupSize * ($config->getPartitionNumber() - 1), $groupSize); $output->outputVerbose("Analyzing " . count($toProcess) . " files\n"); if ($config->getProcessCount() > 1) { return $this->runChildProcesses($config, $output, $toProcess); } else { return $this->phase2($config, $output, $toProcess); } }