private function extract($file, TwigFileExtractor $extractor = null)
 {
     if (!is_file($file = __DIR__ . '/Fixture/' . $file)) {
         throw new RuntimeException(sprintf('The file "%s" does not exist.', $file));
     }
     $env = new \Twig_Environment();
     $env->addExtension(new SymfonyTranslationExtension($translator = new IdentityTranslator(new MessageSelector())));
     $env->addExtension(new TranslationExtension($translator, true));
     $env->addExtension(new RoutingExtension(new UrlGenerator(new RouteCollection(), new RequestContext())));
     $env->addExtension(new FormExtension(new TwigRenderer(new TwigRendererEngine())));
     foreach ($env->getNodeVisitors() as $visitor) {
         if ($visitor instanceof DefaultApplyingNodeVisitor) {
             $visitor->setEnabled(false);
         }
         if ($visitor instanceof RemovingNodeVisitor) {
             $visitor->setEnabled(false);
         }
     }
     if (null === $extractor) {
         $extractor = new TwigFileExtractor($env);
     }
     $ast = $env->parse($env->tokenize(file_get_contents($file), $file));
     $catalogue = new MessageCatalogue();
     $extractor->visitTwigFile(new \SplFileInfo($file), $catalogue, $ast);
     return $catalogue;
 }
Example #2
0
 public function __construct(\Twig_Environment $twig, TwitalLoader $twitalLoader)
 {
     parent::__construct($twig);
     $this->twig = $twig;
     $this->twitalLoader = $twitalLoader;
 }