67894a8f2c6e703eee404efcfdbb8a4d4ef50636
[Packages/TYPO3.CMS.git] / typo3 / sysext / fluid / Classes / Core / Parser / SyntaxTree / Expression / LegacyNamespaceExpressionNode.php
1 <?php
2 namespace TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\Expression;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 use TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\Expression\AbstractExpressionNode;
18 use TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\Expression\ExpressionNodeInterface;
19 use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
20
21 /**
22 * Class LegacyNamespaceExpressionNode
23 */
24 class LegacyNamespaceExpressionNode extends AbstractExpressionNode implements ExpressionNodeInterface
25 {
26 /**
27 * Pattern which detects ternary conditions written in shorthand
28 * syntax, e.g. {checkvar ? thenvar : elsevar}.
29 */
30 public static $detectionExpression = '/{namespace\\s*([a-z0-9]+)\\s*=\\s*([a-z0-9_\\\\]+)\\s*}/i';
31
32 /**
33 * @param RenderingContextInterface $renderingContext
34 * @param string $expression
35 * @param array $matches
36 * @return mixed
37 */
38 public static function evaluateExpression(RenderingContextInterface $renderingContext, $expression, array $matches)
39 {
40 $renderingContext->getViewHelperResolver()->addNamespace($matches[1], $matches[2]);
41 }
42 }