class Twig_TokenParser_Embed in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/twig/twig/lib/Twig/TokenParser/Embed.php \Twig_TokenParser_Embed
Embeds a template.
Hierarchy
- class \Twig_TokenParser implements Twig_TokenParserInterface
- class \Twig_TokenParser_Include
- class \Twig_TokenParser_Embed
- class \Twig_TokenParser_Include
Expanded class hierarchy of Twig_TokenParser_Embed
File
- vendor/
twig/ twig/ lib/ Twig/ TokenParser/ Embed.php, line 15
View source
class Twig_TokenParser_Embed extends Twig_TokenParser_Include {
public function parse(Twig_Token $token) {
$stream = $this->parser
->getStream();
$parent = $this->parser
->getExpressionParser()
->parseExpression();
list($variables, $only, $ignoreMissing) = $this
->parseArguments();
// inject a fake parent to make the parent() function work
$stream
->injectTokens(array(
new Twig_Token(Twig_Token::BLOCK_START_TYPE, '', $token
->getLine()),
new Twig_Token(Twig_Token::NAME_TYPE, 'extends', $token
->getLine()),
new Twig_Token(Twig_Token::STRING_TYPE, '__parent__', $token
->getLine()),
new Twig_Token(Twig_Token::BLOCK_END_TYPE, '', $token
->getLine()),
));
$module = $this->parser
->parse($stream, array(
$this,
'decideBlockEnd',
), true);
// override the parent with the correct one
$module
->setNode('parent', $parent);
$this->parser
->embedTemplate($module);
$stream
->expect(Twig_Token::BLOCK_END_TYPE);
return new Twig_Node_Embed($module
->getAttribute('filename'), $module
->getAttribute('index'), $variables, $only, $ignoreMissing, $token
->getLine(), $this
->getTag());
}
public function decideBlockEnd(Twig_Token $token) {
return $token
->test('endembed');
}
public function getTag() {
return 'embed';
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Twig_TokenParser:: |
protected | property | ||
Twig_TokenParser:: |
public | function |
Sets the parser associated with this token parser. Overrides Twig_TokenParserInterface:: |
|
Twig_TokenParser_Embed:: |
public | function | ||
Twig_TokenParser_Embed:: |
public | function |
Gets the tag name associated with this token parser. Overrides Twig_TokenParser_Include:: |
|
Twig_TokenParser_Embed:: |
public | function |
Parses a token and returns a node. Overrides Twig_TokenParser_Include:: |
|
Twig_TokenParser_Include:: |
protected | function |