Наследование: implements GrumPHP\Formatter\ProcessFormatterInterface
Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $files = $context->getFiles()->name('*.php');
     if (0 === count($files)) {
         return TaskResult::createSkipped($this, $context);
     }
     $config = $this->getConfiguration();
     $this->formatter->resetCounter();
     $arguments = $this->processBuilder->createArgumentsForCommand('php-cs-fixer');
     $arguments->add('--format=json');
     $arguments->add('--dry-run');
     $arguments->addOptionalArgument('--level=%s', $config['level']);
     $arguments->addOptionalArgument('--config=%s', $config['config']);
     $arguments->addOptionalArgument('--config-file=%s', $config['config_file']);
     $arguments->addOptionalArgument('--verbose', $config['verbose']);
     $arguments->addOptionalCommaSeparatedArgument('--fixers=%s', $config['fixers']);
     $arguments->add('fix');
     if ($context instanceof RunContext && $config['config_file'] !== null) {
         return $this->runOnAllFiles($context, $arguments);
     }
     return $this->runOnChangedFiles($context, $arguments, $files);
 }
Пример #2
0
 /**
  * @param ContextInterface           $context
  * @param ProcessArgumentsCollection $arguments
  * @param FilesCollection            $files
  *
  * @return TaskResult
  */
 protected function runOnChangedFiles(ContextInterface $context, ProcessArgumentsCollection $arguments, FilesCollection $files)
 {
     $hasErrors = false;
     $messages = [];
     $suggestions = [];
     foreach ($files as $file) {
         $fileArguments = new ProcessArgumentsCollection($arguments->getValues());
         $fileArguments->add($file);
         $processes[] = $this->processBuilder->buildProcess($fileArguments);
     }
     $this->processRunner->run($processes);
     foreach ($processes as $process) {
         if (!$process->isSuccessful()) {
             $hasErrors = true;
             $messages[] = $this->formatter->format($process);
             $suggestions[] = $this->formatter->formatSuggestion($process);
         }
     }
     if ($hasErrors) {
         $errorMessage = $this->formatter->formatErrorMessage($messages, $suggestions);
         return TaskResult::createFailed($this, $context, $errorMessage);
     }
     return TaskResult::createPassed($this, $context);
 }
Пример #3
0
 function it_throws_exception_if_the_process_fails(ProcessBuilder $processBuilder, Process $process, ContextInterface $context, PhpCsFixerFormatter $formatter)
 {
     $formatter->resetCounter()->shouldBeCalled();
     $arguments = new ProcessArgumentsCollection();
     $processBuilder->createArgumentsForCommand('php-cs-fixer')->willReturn($arguments);
     $processBuilder->buildProcess(Argument::type('GrumPHP\\Collection\\ProcessArgumentsCollection'))->willReturn($process);
     $process->run()->shouldBeCalled();
     $process->isSuccessful()->willReturn(false);
     $context->getFiles()->willReturn(new FilesCollection(array(new SplFileInfo('file1.php', '.', 'file1.php'))));
     $result = $this->run($context);
     $result->shouldBeAnInstanceOf('GrumPHP\\Runner\\TaskResultInterface');
     $result->isPassed()->shouldBe(false);
 }