D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
cpguard
/
app
/
vendor
/
twig
/
twig
/
src
/
Extension
/
Filename :
StagingExtension.php
back
Copy
<?php /* * This file is part of Twig. * * (c) Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Twig\Extension; use Twig\NodeVisitor\NodeVisitorInterface; use Twig\TokenParser\TokenParserInterface; use Twig\TwigFilter; use Twig\TwigFunction; use Twig\TwigTest; /** * Used by \Twig\Environment as a staging area. * * @author Fabien Potencier <fabien@symfony.com> * * @internal */ final class StagingExtension extends AbstractExtension { private $functions = []; private $filters = []; private $visitors = []; private $tokenParsers = []; private $tests = []; public function addFunction(TwigFunction $function): void { if (isset($this->functions[$function->getName()])) { throw new \LogicException(\sprintf('Function "%s" is already registered.', $function->getName())); } $this->functions[$function->getName()] = $function; } public function getFunctions(): array { return $this->functions; } public function addFilter(TwigFilter $filter): void { if (isset($this->filters[$filter->getName()])) { throw new \LogicException(\sprintf('Filter "%s" is already registered.', $filter->getName())); } $this->filters[$filter->getName()] = $filter; } public function getFilters(): array { return $this->filters; } public function addNodeVisitor(NodeVisitorInterface $visitor): void { $this->visitors[] = $visitor; } public function getNodeVisitors(): array { return $this->visitors; } public function addTokenParser(TokenParserInterface $parser): void { if (isset($this->tokenParsers[$parser->getTag()])) { throw new \LogicException(\sprintf('Tag "%s" is already registered.', $parser->getTag())); } $this->tokenParsers[$parser->getTag()] = $parser; } public function getTokenParsers(): array { return $this->tokenParsers; } public function addTest(TwigTest $test): void { if (isset($this->tests[$test->getName()])) { throw new \LogicException(\sprintf('Test "%s" is already registered.', $test->getName())); } $this->tests[$test->getName()] = $test; } public function getTests(): array { return $this->tests; } }