private function extract($file, FormExtractor $extractor = null)
 {
     if (!is_file($file = __DIR__ . '/Fixture/' . $file)) {
         throw new RuntimeException(sprintf('The file "%s" does not exist.', $file));
     }
     $file = new \SplFileInfo($file);
     if (null === $extractor) {
         $docParser = new DocParser();
         $docParser->setImports(array('desc' => 'JMS\\TranslationBundle\\Annotation\\Desc', 'meaning' => 'JMS\\TranslationBundle\\Annotation\\Meaning', 'ignore' => 'JMS\\TranslationBundle\\Annotation\\Ignore'));
         $docParser->setIgnoreNotImportedAnnotations(true);
         $extractor = new FormExtractor($docParser);
     }
     $lexer = new \PHPParser_Lexer(file_get_contents($file));
     $parser = new \PHPParser_Parser();
     $ast = $parser->parse($lexer);
     $catalogue = new MessageCatalogue();
     $extractor->visitPhpFile($file, $catalogue, $ast);
     return $catalogue;
 }
Exemple #2
0
 private function extract($file)
 {
     if (!is_file($file = __DIR__ . '/Fixture/' . $file)) {
         throw new RuntimeException(sprintf('The file "%s" does not exist.', $file));
     }
     $file = new \SplFileInfo($file);
     $lexer = new \PHPParser_Lexer(file_get_contents($file));
     $parser = new \PHPParser_Parser();
     $ast = $parser->parse($lexer);
     $catalogue = new MessageCatalogue();
     $this->extractor->visitPhpFile($file, $catalogue, $ast);
     return $catalogue;
 }
 private function extract($file)
 {
     if (!is_file($file = __DIR__ . '/Fixture/' . $file)) {
         throw new RuntimeException(sprintf('The file "%s" does not exist.', $file));
     }
     $file = new \SplFileInfo($file);
     $lexer = new Lexer();
     if (class_exists('PhpParser\\ParserFactory')) {
         $factory = new ParserFactory();
         $parser = $factory->create(ParserFactory::PREFER_PHP7, $lexer);
     } else {
         $parser = new Parser($lexer);
     }
     $ast = $parser->parse(file_get_contents($file));
     $catalogue = new MessageCatalogue();
     $this->extractor->visitPhpFile($file, $catalogue, $ast);
     return $catalogue;
 }