diff -r 6d109e3804ac -r 9a001a04b634 Twig-1.3.0/lib/Twig/Function.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Twig-1.3.0/lib/Twig/Function.php Tue Oct 25 23:56:28 2011 +0200 @@ -0,0 +1,52 @@ + + */ +abstract class Twig_Function implements Twig_FunctionInterface +{ + protected $options; + + public function __construct(array $options = array()) + { + $this->options = array_merge(array( + 'needs_environment' => false, + 'needs_context' => false, + ), $options); + } + + public function needsEnvironment() + { + return $this->options['needs_environment']; + } + + public function needsContext() + { + return $this->options['needs_context']; + } + + public function getSafe(Twig_Node $functionArgs) + { + if (isset($this->options['is_safe'])) { + return $this->options['is_safe']; + } + + if (isset($this->options['is_safe_callback'])) { + return call_user_func($this->options['is_safe_callback'], $functionArgs); + } + + return array(); + } +}