Dotclear

source: inc/libs/twig/Function.php @ 991:e42f791e0975

Revision 991:e42f791e0975, 1.4 KB checked in by Dsls <dsls@…>, 13 years ago (diff)

New twig branch. 1st step : add twig 1.11.1

Line 
1<?php
2
3/*
4 * This file is part of Twig.
5 *
6 * (c) 2010 Fabien Potencier
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12/**
13 * Represents a template function.
14 *
15 * @package    twig
16 * @author     Fabien Potencier <fabien@symfony.com>
17 */
18abstract class Twig_Function implements Twig_FunctionInterface
19{
20    protected $options;
21    protected $arguments = array();
22
23    public function __construct(array $options = array())
24    {
25        $this->options = array_merge(array(
26            'needs_environment' => false,
27            'needs_context'     => false,
28        ), $options);
29    }
30
31    public function setArguments($arguments)
32    {
33        $this->arguments = $arguments;
34    }
35
36    public function getArguments()
37    {
38        return $this->arguments;
39    }
40
41    public function needsEnvironment()
42    {
43        return $this->options['needs_environment'];
44    }
45
46    public function needsContext()
47    {
48        return $this->options['needs_context'];
49    }
50
51    public function getSafe(Twig_Node $functionArgs)
52    {
53        if (isset($this->options['is_safe'])) {
54            return $this->options['is_safe'];
55        }
56
57        if (isset($this->options['is_safe_callback'])) {
58            return call_user_func($this->options['is_safe_callback'], $functionArgs);
59        }
60
61        return array();
62    }
63}
Note: See TracBrowser for help on using the repository browser.

Sites map