コード例 #1
0
ファイル: DefineTag.php プロジェクト: bugadani/minty
 public function parse(Parser $parser, Stream $stream)
 {
     $templateNameToken = $stream->expect(Token::IDENTIFIER);
     $templateName = $templateNameToken->getValue();
     $stream->expect(Token::TAG_END);
     $classNode = $parser->getCurrentClassNode();
     if ($classNode->hasChild($templateName)) {
         throw new ParseException("Block {$templateName} is already defined", $templateNameToken->getLine());
     }
     $parser->enterBlock($templateName);
     $parser->getCurrentClassNode()->addChild($parser->parseBlock($stream, 'enddefine'), $templateName);
     $stream->expect(Token::TAG_END);
     $parser->leaveBlock();
 }
コード例 #2
0
ファイル: BlockTag.php プロジェクト: bugadani/minty
 public function parse(Parser $parser, Stream $stream)
 {
     $templateNameToken = $stream->expect(Token::IDENTIFIER);
     $templateName = $templateNameToken->getValue();
     $stream->expect(Token::TAG_END);
     $classNode = $parser->getCurrentClassNode();
     if ($classNode->hasChild($templateName)) {
         throw new ParseException("Block {$templateName} is already defined", $templateNameToken->getLine());
     }
     $parser->enterBlock($templateName);
     $classNode->addChild($parser->parseBlock($stream, 'endblock'), $templateName);
     $stream->expect(Token::TAG_END);
     $parser->leaveBlock();
     return $this->helper->createRenderBlockNode($templateName, new TempVariableNode('context'));
 }