12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <?php
- /**
- * @package Grav\Common\Twig
- *
- * @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
- * @license MIT License; see LICENSE file for details.
- */
- namespace Grav\Common\Twig\Node;
- use LogicException;
- use Twig\Compiler;
- use Twig\Node\Node;
- /**
- * Class TwigNodeThrow
- * @package Grav\Common\Twig\Node
- */
- class TwigNodeThrow extends Node
- {
- /**
- * TwigNodeThrow constructor.
- * @param int $code
- * @param Node $message
- * @param int $lineno
- * @param string|null $tag
- */
- public function __construct($code, Node $message, $lineno = 0, $tag = null)
- {
- parent::__construct(['message' => $message], ['code' => $code], $lineno, $tag);
- }
- /**
- * Compiles the node to PHP.
- *
- * @param Compiler $compiler A Twig Compiler instance
- * @return void
- * @throws LogicException
- */
- public function compile(Compiler $compiler): void
- {
- $compiler->addDebugInfo($this);
- $compiler
- ->write('throw new \Grav\Common\Twig\Exception\TwigException(')
- ->subcompile($this->getNode('message'))
- ->write(', ')
- ->write($this->getAttribute('code') ?: 500)
- ->write(");\n");
- }
- }
|