Twig-1.3.0/lib/Twig/Function.php
changeset 4 9a001a04b634
--- /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 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) 2010 Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Represents a template function.
+ *
+ * @package    twig
+ * @author     Fabien Potencier <fabien@symfony.com>
+ */
+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();
+    }
+}