public function setEnvironment(Twig_Environment $env) { $this->env = $env; $this->handlers = array(); $this->visitors = array(); // tag handlers foreach ($this->env->getTokenParsers() as $handler) { $handler->setParser($this); $this->handlers[$handler->getTag()] = $handler; } // node visitors $this->visitors = $env->getNodeVisitors(); }
public function testRemoveExtension() { $twig = new Twig_Environment(new Twig_Loader_String()); $twig->addExtension(new Twig_Tests_EnvironmentTest_Extension()); $twig->removeExtension('test'); $this->assertFalse(array_key_exists('test', $twig->getTags())); $this->assertFalse(array_key_exists('foo_filter', $twig->getFilters())); $this->assertFalse(array_key_exists('foo_function', $twig->getFunctions())); $this->assertFalse(array_key_exists('foo_test', $twig->getTests())); $this->assertFalse(array_key_exists('foo_unary', $twig->getUnaryOperators())); $this->assertFalse(array_key_exists('foo_binary', $twig->getBinaryOperators())); $this->assertFalse(array_key_exists('foo_global', $twig->getGlobals())); $this->assertCount(2, $twig->getNodeVisitors()); }
/** * FileExtractor constructor. * @param \Twig_Environment $twig * @param LoggerInterface $logger * @param array $visitors */ public function __construct(\Twig_Environment $twig, LoggerInterface $logger, array $visitors) { $this->twig = $twig; $this->visitors = $visitors; $this->setLogger($logger); $lexer = new Lexer(); if (class_exists('PhpParser\\ParserFactory')) { $factory = new ParserFactory(); $this->phpParser = $factory->create(ParserFactory::PREFER_PHP7, $lexer); } else { $this->phpParser = new Parser($lexer); } foreach ($this->twig->getNodeVisitors() as $visitor) { if ($visitor instanceof RemovingNodeVisitor) { $this->removingTwigVisitor = $visitor; } if ($visitor instanceof DefaultApplyingNodeVisitor) { $this->defaultApplyingTwigVisitor = $visitor; } } }
public function testAddExtension() { $twig = new Twig_Environment($this->getMock('Twig_LoaderInterface')); $twig->addExtension(new Twig_Tests_EnvironmentTest_Extension()); $this->assertArrayHasKey('test', $twig->getTags()); $this->assertArrayHasKey('foo_filter', $twig->getFilters()); $this->assertArrayHasKey('foo_function', $twig->getFunctions()); $this->assertArrayHasKey('foo_test', $twig->getTests()); $this->assertArrayHasKey('foo_unary', $twig->getUnaryOperators()); $this->assertArrayHasKey('foo_binary', $twig->getBinaryOperators()); $this->assertArrayHasKey('foo_global', $twig->getGlobals()); $visitors = $twig->getNodeVisitors(); $this->assertEquals('Twig_Tests_EnvironmentTest_NodeVisitor', get_class($visitors[2])); }
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; }
/** * @group legacy */ public function testRemoveExtension() { $twig = new Twig_Environment($this->getMockBuilder('Twig_LoaderInterface')->getMock()); $twig->addExtension(new Twig_Tests_EnvironmentTest_Extension_WithDeprecatedName()); $twig->removeExtension('environment_test'); $this->assertFalse(array_key_exists('test', $twig->getTags())); $this->assertFalse(array_key_exists('foo_filter', $twig->getFilters())); $this->assertFalse(array_key_exists('foo_function', $twig->getFunctions())); $this->assertFalse(array_key_exists('foo_test', $twig->getTests())); $this->assertFalse(array_key_exists('foo_unary', $twig->getUnaryOperators())); $this->assertFalse(array_key_exists('foo_binary', $twig->getBinaryOperators())); $this->assertFalse(array_key_exists('foo_global', $twig->getGlobals())); $this->assertCount(2, $twig->getNodeVisitors()); }