3 namespace Drupal\twig_theme_test;
5 use Drupal\Core\Template\Attribute;
9 * Controller routines for Twig theme test routes.
11 class TwigThemeTestController {
14 * Menu callback for testing PHP variables in a Twig template.
16 public function phpVariablesRender() {
17 return ['#markup' => \Drupal::theme()->render('twig_theme_test_php_variables', [])];
21 * Menu callback for testing translation blocks in a Twig template.
23 public function transBlockRender() {
25 '#theme' => 'twig_theme_test_trans',
30 * Controller for testing the twig placeholder filter outside of {% trans %}
32 public function placeholderOutsideTransRender() {
34 '#theme' => 'twig_theme_test_placeholder_outside_trans',
35 '#var' => '<script>alert(123);</script>',
40 * Renders for testing url_generator functions in a Twig template.
42 public function urlGeneratorRender() {
44 '#theme' => 'twig_theme_test_url_generator',
49 * Renders for testing link_generator functions in a Twig template.
51 public function linkGeneratorRender() {
53 '#theme' => 'twig_theme_test_link_generator',
54 '#test_url' => new Url('user.register', [], ['absolute' => TRUE]),
55 '#test_url_attribute' => new Url('user.register', [], ['attributes' => ['foo' => 'bar']]),
56 // Explicitly creating an Attribute object to avoid false positives when
57 // testing Attribute object merging with the twig link() function.
58 '#attributes' => new Attribute(['class' => ['llama', 'kitten', 'panda']]),
63 * Renders a URL to a string.
65 public function urlToStringRender() {
67 '#theme' => 'twig_theme_test_url_to_string',
68 '#test_url' => Url::fromRoute('user.register'),
73 * Renders for testing file_url functions in a Twig template.
75 public function fileUrlRender() {
77 '#theme' => 'twig_theme_test_file_url',
82 * Renders for testing attach_library functions in a Twig template.
84 public function attachLibraryRender() {
86 '#theme' => 'twig_theme_test_attach_library',
91 * Menu callback for testing the Twig registry loader.
93 public function registryLoaderRender() {
94 return ['#theme' => 'twig_registry_loader_test'];
98 * Controller for testing a renderable inside a template.
100 public function renderable() {
102 '#theme' => 'twig_theme_test_renderable',
103 '#renderable' => new ExampleRenderable()