コード例 #1
0
 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);
     }
 }
コード例 #2
0
 function renderResults()
 {
     if ($this->config->getOutputFile()) {
         $this->doc->save($this->config->getOutputFile());
     } else {
         echo $this->doc->saveXml();
     }
 }
コード例 #3
0
 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);
     */
 }
コード例 #4
0
 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);
     }
 }