本文整理汇总了PHP中Twig_Environment::addTokenParser方法的典型用法代码示例。如果您正苦于以下问题:PHP Twig_Environment::addTokenParser方法的具体用法?PHP Twig_Environment::addTokenParser怎么用?PHP Twig_Environment::addTokenParser使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Twig_Environment
的用法示例。
在下文中一共展示了Twig_Environment::addTokenParser方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getEnv
private function getEnv()
{
$env = new \Twig_Environment();
$env->addTokenParser(new TwigJsTokenParser());
$env->setLoader(new \Twig_Loader_String());
return $env;
}
示例2: testParseIsReentrant
public function testParseIsReentrant()
{
$twig = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('autoescape' => false, 'optimizations' => 0));
$twig->addTokenParser(new TestTokenParser());
$parser = new Twig_Parser($twig);
$parser->parse(new Twig_TokenStream(array(new Twig_Token(Twig_Token::BLOCK_START_TYPE, '', 1), new Twig_Token(Twig_Token::NAME_TYPE, 'test', 1), new Twig_Token(Twig_Token::BLOCK_END_TYPE, '', 1), new Twig_Token(Twig_Token::VAR_START_TYPE, '', 1), new Twig_Token(Twig_Token::NAME_TYPE, 'foo', 1), new Twig_Token(Twig_Token::VAR_END_TYPE, '', 1), new Twig_Token(Twig_Token::EOF_TYPE, '', 1))));
$this->assertNull($parser->getParent());
}
示例3: testCompile
/**
* @dataProvider getTestsForRender
*/
public function testCompile($source, $expected)
{
$env = new \Twig_Environment(new \Twig_Loader_String(), array('cache' => false, 'autoescape' => false, 'optimizations' => 0));
$env->addTokenParser(new RenderTokenParser());
$stream = $env->tokenize($source);
$parser = new \Twig_Parser($env);
$this->assertEquals($expected, $parser->parse($stream)->getNode('body')->getNode(0));
}
示例4: testCompile
/**
* @dataProvider getTestsForFormTheme
*/
public function testCompile($source, $expected)
{
$env = new \Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false, 'optimizations' => 0));
$env->addTokenParser(new FormThemeTokenParser());
$stream = $env->tokenize(new \Twig_Source($source, ''));
$parser = new \Twig_Parser($env);
$this->assertEquals($expected, $parser->parse($stream)->getNode('body')->getNode(0));
}
示例5: testParseIsReentrant
public function testParseIsReentrant()
{
$twig = new Twig_Environment(null, ['autoescape' => false, 'optimizations' => 0]);
$twig->addTokenParser(new TestTokenParser());
$parser = new Twig_Parser($twig);
$parser->parse(new Twig_TokenStream([new Twig_Token(Twig_Token::BLOCK_START_TYPE, '', 1), new Twig_Token(Twig_Token::NAME_TYPE, 'test', 1), new Twig_Token(Twig_Token::BLOCK_END_TYPE, '', 1), new Twig_Token(Twig_Token::VAR_START_TYPE, '', 1), new Twig_Token(Twig_Token::NAME_TYPE, 'foo', 1), new Twig_Token(Twig_Token::VAR_END_TYPE, '', 1), new Twig_Token(Twig_Token::EOF_TYPE, '', 1)]));
$this->assertNull($parser->getParent());
}
示例6: getParser
/**
* @return \Twig_Parser
* @throws \Exception
* @throws \Twig_Error_Syntax
*/
private function getParser()
{
$stream = new \Twig_TokenStream(array(new \Twig_Token(\Twig_Token::TEXT_TYPE, '<!DOCTYPE html><html><body>', 1), new \Twig_Token(\Twig_Token::BLOCK_START_TYPE, '', 2), new \Twig_Token(\Twig_Token::NAME_TYPE, 'form', 2), new \Twig_Token(\Twig_Token::PUNCTUATION_TYPE, '(', 2), new \Twig_Token(\Twig_Token::NAME_TYPE, 'method', 2), new \Twig_Token(\Twig_Token::OPERATOR_TYPE, '=', 2), new \Twig_Token(\Twig_Token::STRING_TYPE, 'post', 2), new \Twig_Token(\Twig_Token::PUNCTUATION_TYPE, ',', 2), new \Twig_Token(\Twig_Token::NAME_TYPE, 'action', 2), new \Twig_Token(\Twig_Token::OPERATOR_TYPE, '=', 2), new \Twig_Token(\Twig_Token::NAME_TYPE, 'request_uri', 2), new \Twig_Token(\Twig_Token::PUNCTUATION_TYPE, '|', 2), new \Twig_Token(\Twig_Token::NAME_TYPE, 'e', 2), new \Twig_Token(\Twig_Token::PUNCTUATION_TYPE, ')', 2), new \Twig_Token(\Twig_Token::BLOCK_END_TYPE, '', 2), new \Twig_Token(\Twig_Token::TEXT_TYPE, '<input type="submit" value="Submit">', 3), new \Twig_Token(\Twig_Token::BLOCK_START_TYPE, '', 4), new \Twig_Token(\Twig_Token::NAME_TYPE, 'endform', 4), new \Twig_Token(\Twig_Token::BLOCK_END_TYPE, '', 4), new \Twig_Token(\Twig_Token::TEXT_TYPE, '</body></html>', 5), new \Twig_Token(\Twig_Token::EOF_TYPE, '', 5)));
$env = new \Twig_Environment();
$env->addTokenParser(new FormTokenParser());
$parser = new \Twig_Parser($env);
$parser->parse($stream);
return $parser;
}
示例7: testCompile
/**
* @dataProvider getTestsForRender
*/
public function testCompile($enabled, $source, $expected)
{
$translator = $this->getMock('Symfony\\Component\\Translation\\TranslatorInterface');
$env = new \Twig_Environment(new \Twig_Loader_String(), array('cache' => false, 'autoescape' => false, 'optimizations' => 0));
$env->addTokenParser(new TemplateBoxTokenParser($enabled, $translator));
$stream = $env->tokenize($source);
$parser = new \Twig_Parser($env);
$this->assertEquals($expected, $parser->parse($stream)->getNode('body')->getNode(0));
}
示例8: testCompile
/**
* @dataProvider getCompileTestData
*
* @param ContentEditableNode $expectedNode
* @param string $source
* @param string $message
*/
public function testCompile(ContentEditableNode $expectedNode, $source, $message = '')
{
$env = new \Twig_Environment($this->getMock('Twig_LoaderInterface'), ['cache' => false, 'autoescape' => false, 'optimizations' => 0]);
$env->addTokenParser(new ContentEditableTokenParser());
$parser = new \Twig_Parser($env);
$stream = $env->tokenize($source);
$node = $parser->parse($stream)->getNode('body')->getNode(0);
$this->assertEquals($expectedNode, $node, $message);
}
示例9: _initializeTwig
protected function _initializeTwig($loader)
{
$twig = new Twig_Environment($loader);
$engine = new \Aptoma\Twig\Extension\MarkdownEngine\MichelfMarkdownEngine();
$extension = new \Aptoma\Twig\Extension\MarkdownExtension($engine);
$twig->addExtension($extension);
$tokenParser = new \Aptoma\Twig\TokenParser\MarkdownTokenParser($engine);
$twig->addTokenParser($tokenParser);
return $twig;
}
示例10: createTwigEnvironment
/**
* Create twig environment with the options specified in the curry cms configuration.
*
* @param Twig_LoaderInterface $loader
* @return Twig_Environment
*/
private static function createTwigEnvironment(Twig_LoaderInterface $loader)
{
$options = Curry_Core::$config->curry->template->options->toArray();
$twig = new Twig_Environment($loader, $options);
$twig->setParser(new Curry_Twig_Parser($twig));
$twig->addTokenParser(new Curry_Twig_TokenParser_Placeholder());
$twig->addTokenParser(new Curry_Twig_TokenParser_Ia());
$twig->addFunction('url', new Twig_Function_Function('url'));
$twig->addFunction('L', new Twig_Function_Function('L'));
$twig->addFunction('round', new Twig_Function_Function('round'));
$twig->addFilter('ldate', new Twig_Filter_Function('Curry_Twig_Template::ldate'));
$twig->addFilter('dump', new Twig_Filter_Function('var_dump'));
return $twig;
}
示例11: testGrammar
/**
* @dataProvider getTests
*/
public function testGrammar($tag, $grammar, $template, $output, $exception)
{
$twig = new Twig_Environment(new Twig_Loader_String(), array('cache' => false));
$twig->addTokenParser(new SimpleTokenParser($tag, $grammar));
$ok = true;
try {
$template = $twig->loadTemplate($template);
} catch (Exception $e) {
$ok = false;
if (false === $exception) {
$this->fail('Exception not expected');
} else {
$this->assertEquals($exception, get_class($e));
}
}
if ($ok) {
if (false !== $exception) {
$this->fail(sprintf('Exception "%s" expected', $exception));
}
$actual = $template->render(array());
$this->assertEquals($output, $actual);
}
}
示例12: getTwigEnvironment
/**
* Function returning the Twig environnment
*
* @return \Twig_Environment
*/
private function getTwigEnvironment()
{
$arrcache = array();
if (TEMPLATE_CACHE) {
$cachepath = CACHEPATH . DS . 'twig';
$arrcache['cache'] = $cachepath;
$arrcache['auto_reload'] = AUTORELOADCACHE;
}
if (DEVELOPMENT_ENVIRONMENT) {
$arrcache['debug'] = true;
}
$twigloader = new \Twig_Loader_Filesystem($this->getPathArray());
$twigenv = new \Twig_Environment($twigloader, $arrcache);
$twigenv->addExtension(new \GL\Core\Twig\TwigHelper($this->_container));
// add shared TwigHelper
$config = new \GL\Core\Config\Config('twig');
$value = $config->load();
foreach ($value as $name => $th) {
$class = $th['class'];
$twigenv->addExtension(new $class($this->_container));
}
//$twigenv->addExtension(new \Application\Shared\SharedTwigHelper($this->_container));
if (DEVELOPMENT_ENVIRONMENT) {
$twigenv->addExtension(new \GL\Core\Debug\TwigDebugBar($this->_container));
$twigenv->addExtension(new \Twig_Extension_Debug());
$this->_profile = new \Twig_Profiler_Profile();
$twigenv->addExtension(new \Twig_Extension_Profiler($this->_profile));
}
$twigenv->addTokenParser(new \GL\Core\Twig\TwigRenderToken());
$twigenv->addTokenParser(new \GL\Core\Twig\TwigRouteToken());
return $twigenv;
}
示例13: get
/**
* @return \Twig_Environment
*/
public function get()
{
$class = $this->injector->getInstance(FormTokenParser::class);
$this->twig->addTokenParser($class);
return $this->twig;
}
示例14: boot
public function boot()
{
// Create services
$this->singleton('logger', array($this, 'getLogger'));
$this->singleton('cache', array($this, 'getCache'));
$this->singleton('index', array($this, 'getIndex'));
$this->singleton('autoloader', array($this, 'getAutoloader'));
// some more
$app = $this;
$this->singleton('dispatcher', function () use($app) {
return new EventDispatcher();
});
$this->singleton('resolver', function () use($app) {
return new ControllerResolver($app->logger);
});
$this->singleton('kernel', function () use($app) {
return new HttpKernel($app->dispatcher, $app->resolver, $app->requestStack);
});
$this->singleton('requestStack', function () use($app) {
return new RequestStack();
});
$this->singleton('backend', function () use($app) {
return new Backend($app);
});
$this->singleton('whoopsHandler', function () use($app) {
if (PHP_SAPI === 'cli') {
return new PlainTextHandler();
} else {
if ($this['developmentMode']) {
return new PrettyPageHandler();
} else {
return new CallbackHandler(array($app, 'showException'));
}
}
});
$this->singleton('whoops', function () use($app) {
$whoops = new \Whoops\Run();
$whoops->pushHandler($app->whoopsHandler);
// Send error mail
if ($app['errorNotification']) {
$whoops->pushHandler(array($app, 'sendErrorNotification'));
}
// Add error to log
$whoops->pushHandler(function (\Exception $e) use($app) {
$app->logger->error($e->getMessage(), array('exception' => $e));
return Handler::DONE;
});
return $whoops;
});
$this->singleton('twig', function () use($app) {
$loader = new \Twig_Loader_Filesystem($app['template.root']);
$options = $app['template.options'];
$twig = new \Twig_Environment($loader, $options);
$twig->setParser(new \Curry_Twig_Parser($twig));
$twig->addTokenParser(new \Curry_Twig_TokenParser_Placeholder());
$twig->addTokenParser(new \Curry_Twig_TokenParser_Ia());
$twig->addFunction('url', new \Twig_Function_Function('url'));
$twig->addFunction('L', new \Twig_Function_Function('L'));
$twig->addFunction('round', new \Twig_Function_Function('round'));
$twig->addFilter('ldate', new \Twig_Filter_Function('\\Curry\\App::ldate'));
$twig->addFilter('dump', new \Twig_Filter_Function('var_dump'));
return $twig;
});
$this->whoops->register();
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
$this->logger->warning('Magic quotes gpc is enabled, please disable!');
}
// TODO: remove this!
$this->globals = (object) array('ProjectName' => $this['name'], 'BaseUrl' => $this['baseUrl'], 'DevelopmentMode' => $this['developmentMode']);
// Try to set utf-8 locale
$arguments = (array) $this['locale'];
array_unshift($arguments, LC_ALL);
$locale = call_user_func_array('setlocale', $arguments);
$this->logger->debug($locale ? 'Set default locale to ' . $locale : 'Unable to set default locale');
// Set default umask
if ($this['umask'] !== false) {
umask($this['umask']);
}
self::initErrorHandling();
self::initPropel();
URL::setDefaultBaseUrl($this['baseUrl']);
URL::setDefaultSecret($this['secret']);
if ($this['autoPublish']) {
$this->autoPublish();
}
if ($this['sharedController']) {
$this->logger->notice('Using php routing for curry shared folder');
$this->dispatcher->addSubscriber(new StaticContent('/shared/', $app['basePath'] . '/shared'));
}
if ($app['backend.basePath']) {
$this->dispatcher->addSubscriber($app->backend);
}
if (class_exists('Page')) {
$this->dispatcher->addSubscriber(new Frontend($this));
}
$this->dispatcher->addSubscriber(new FileNotFound($this));
$this->dispatcher->addSubscriber(new Generator\ModuleProfiler($app->logger));
$this->dispatcher->addSubscriber(new Generator\ModuleCacher($app->cache));
$this->dispatcher->addSubscriber(new Generator\ModuleHtmlHead());
$this->dispatcher->addSubscriber(new Generator\LiveEdit($this));
//.........这里部分代码省略.........