Version 1
[yaffs-website] / web / core / modules / system / tests / modules / twig_extension_test / src / TwigExtension / TestExtension.php
diff --git a/web/core/modules/system/tests/modules/twig_extension_test/src/TwigExtension/TestExtension.php b/web/core/modules/system/tests/modules/twig_extension_test/src/TwigExtension/TestExtension.php
new file mode 100644 (file)
index 0000000..b364c59
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+
+namespace Drupal\twig_extension_test\TwigExtension;
+
+
+/**
+ * A test Twig extension that adds a custom function and a custom filter.
+ */
+class TestExtension extends \Twig_Extension {
+
+  /**
+   * Generates a list of all Twig functions that this extension defines.
+   *
+   * @return array
+   *   A key/value array that defines custom Twig functions. The key denotes the
+   *   function name used in the tag, e.g.:
+   *   @code
+   *   {{ testfunc() }}
+   *   @endcode
+   *
+   *   The value is a standard PHP callback that defines what the function does.
+   */
+  public function getFunctions() {
+    return [
+      'testfunc' => new \Twig_Function_Function(['Drupal\twig_extension_test\TwigExtension\TestExtension', 'testFunction']),
+    ];
+  }
+
+  /**
+   * Generates a list of all Twig filters that this extension defines.
+   *
+   * @return array
+   *   A key/value array that defines custom Twig filters. The key denotes the
+   *   filter name used in the tag, e.g.:
+   *   @code
+   *   {{ foo|testfilter }}
+   *   @endcode
+   *
+   *   The value is a standard PHP callback that defines what the filter does.
+   */
+  public function getFilters() {
+    return [
+      'testfilter' => new \Twig_Filter_Function(['Drupal\twig_extension_test\TwigExtension\TestExtension', 'testFilter']),
+    ];
+  }
+
+  /**
+   * Gets a unique identifier for this Twig extension.
+   *
+   * @return string
+   *   A unique identifier for this Twig extension.
+   */
+  public function getName() {
+    return 'twig_extension_test.test_extension';
+  }
+
+  /**
+   * Outputs either an uppercase or lowercase test phrase.
+   *
+   * The function generates either an uppercase or lowercase version of the
+   * phrase "The quick brown fox jumps over the lazy dog 123.", depending on
+   * whether or not the $upperCase parameter evaluates to TRUE. If $upperCase
+   * evaluates to TRUE, the result will be uppercase, and if it evaluates to
+   * FALSE, the result will be lowercase.
+   *
+   * @param bool $upperCase
+   *   (optional) Whether the result is uppercase (true) or lowercase (false).
+   *
+   * @return string
+   *   The generated string.
+   *
+   * @see \Drupal\system\Tests\Theme\TwigExtensionTest::testTwigExtensionFunction()
+   */
+  public static function testFunction($upperCase = FALSE) {
+    $string = "The quick brown box jumps over the lazy dog 123.";
+    if ($upperCase == TRUE) {
+      return strtoupper($string);
+    }
+    else {
+      return strtolower($string);
+    }
+  }
+
+  /**
+   * Replaces all instances of "animal" in a string with "plant".
+   *
+   * @param string $string
+   *   The string to be filtered.
+   *
+   * @return string
+   *   The filtered string.
+   *
+   * @see \Drupal\system\Tests\Theme\TwigExtensionTest::testTwigExtensionFilter()
+   */
+  public static function testFilter($string) {
+    return str_replace(['animal'], ['plant'], $string);
+  }
+
+}