setDefaults([ 'config' => null, 'config_file' => null, 'fixers' => [], 'level' => null, 'verbose' => true, ]); $resolver->addAllowedTypes('config', ['null', 'string']); $resolver->addAllowedTypes('config_file', ['null', 'string']); $resolver->addAllowedTypes('fixers', ['array']); $resolver->addAllowedTypes('level', ['null', 'string']); $resolver->addAllowedTypes('verbose', ['bool']); return $resolver; } /** * {@inheritdoc} */ public function run(ContextInterface $context): TaskResultInterface { $files = $context->getFiles()->name('*.php'); if (0 === \count($files)) { return TaskResult::createSkipped($this, $context); } $config = $this->getConfig()->getOptions(); $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 && null !== $config['config_file']) { return $this->runOnAllFiles($context, $arguments); } return $this->runOnChangedFiles($context, $arguments, $files); } }