Project

General

Profile

1 1686 darkviper
<?php
2
3
/*
4
 * This file is part of Twig.
5
 *
6
 * (c) 2010 Fabien Potencier
7
 * (c) 2010 Arnaud Le Blanc
8
 *
9
 * For the full copyright and license information, please view the LICENSE
10
 * file that was distributed with this source code.
11
 */
12
13
/**
14
 * Interface implemented by token parser brokers.
15
 *
16
 * Token parser brokers allows to implement custom logic in the process of resolving a token parser for a given tag name.
17
 *
18
 * @package twig
19
 * @author  Arnaud Le Blanc <arnaud.lb@gmail.com>
20
 */
21
interface Twig_TokenParserBrokerInterface
22
{
23
    /**
24
     * Gets a TokenParser suitable for a tag.
25
     *
26 1852 darkviper
     * @param string $tag A tag name
27 1686 darkviper
     *
28
     * @return null|Twig_TokenParserInterface A Twig_TokenParserInterface or null if no suitable TokenParser was found
29
     */
30 1852 darkviper
    public function getTokenParser($tag);
31 1686 darkviper
32
    /**
33
     * Calls Twig_TokenParserInterface::setParser on all parsers the implementation knows of.
34
     *
35
     * @param Twig_ParserInterface $parser A Twig_ParserInterface interface
36
     */
37 1852 darkviper
    public function setParser(Twig_ParserInterface $parser);
38 1686 darkviper
39
    /**
40
     * Gets the Twig_ParserInterface.
41
     *
42 1852 darkviper
     * @return null|Twig_ParserInterface A Twig_ParserInterface instance or null
43 1686 darkviper
     */
44 1852 darkviper
    public function getParser();
45 1686 darkviper
}