本文整理匯總了PHP中Twig_Environment::getNodeVisitors方法的典型用法代碼示例。如果您正苦於以下問題:PHP Twig_Environment::getNodeVisitors方法的具體用法?PHP Twig_Environment::getNodeVisitors怎麽用?PHP Twig_Environment::getNodeVisitors使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Twig_Environment
的用法示例。
在下文中一共展示了Twig_Environment::getNodeVisitors方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: setEnvironment
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: testRemoveExtension
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());
}
示例3: __construct
/**
* 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: testAddExtension
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]));
}
示例5: extract
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;
}
示例6: testRemoveExtension
/**
* @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());
}