/**
  * @param string $filename
  * @param array $options
  * @return Result
  */
 private function processFile($filename, array $options)
 {
     $comments = $this->extract($filename);
     $result = new Result();
     foreach ($comments as $comment) {
         $result->merge($this->processComment($filename, $options, $comment));
     }
     return $result;
 }
Пример #2
0
 /**
  * @param string $path
  * @param array $config
  * @param AbstractLogger $logger
  * @return Result
  */
 private function executeGadgets($path, array $config, AbstractLogger $logger)
 {
     $result = new Result();
     foreach ($config as $type => $options) {
         $gadget = $this->repository->get($type);
         $gadgetResult = $this->executeGadget($gadget, $path, $options, $logger);
         $result->merge($gadgetResult);
     }
     return $result;
 }
 /**
  * @param string $path
  * @param array $options
  * @param AbstractLogger $logger
  * @return Result
  */
 public function run($path, array $options, AbstractLogger $logger)
 {
     $processBuilder = new ProcessBuilder([$this->bin, 'security:check', '--format=json', $options['directory']]);
     $processBuilder->setWorkingDirectory($path);
     $output = $processBuilder->run($logger);
     $data = json_decode($output, true);
     $result = new Result();
     if (count($data) == 0) {
         return $result;
     }
     foreach ($data as $lib => $info) {
         $result->merge($this->createIssues(trim(rtrim($options['directory'], '/') . '/composer.json', './'), $lib, $info, $options['level']));
     }
     return $result;
 }
Пример #4
0
 /**
  * @param string $path
  * @param array $options
  * @param AbstractLogger $logger
  *
  * @return Result
  */
 public function run($path, array $options, AbstractLogger $logger)
 {
     $result = new Result();
     $files = FilesystemHelper::findFiles($path, $options['files']);
     foreach ($files as $file) {
         foreach ((new \PHP_Token_Stream($file))->getClasses() as $className => $class) {
             foreach ($class['methods'] as $methodName => $method) {
                 if ($methodName === 'anonymous function') {
                     continue;
                 }
                 $result->merge($this->processMethod($options, $method, $className, $file));
             }
         }
     }
     return $result;
 }