getNodeVisitors() публичный Метод

public getNodeVisitors ( )
Пример #1
0
 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();
 }
Пример #2
0
 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;
         }
     }
 }
Пример #4
0
 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());
 }