8.5.x TwigExtension.php TwigExtension::safeJoin(\Twig_Environment $env, $value, $glue = '')
8.0.x TwigExtension.php TwigExtension::safeJoin(\Twig_Environment $env, $value, $glue = '')
8.1.x TwigExtension.php TwigExtension::safeJoin(\Twig_Environment $env, $value, $glue = '')
8.2.x TwigExtension.php TwigExtension::safeJoin(\Twig_Environment $env, $value, $glue = '')
8.3.x TwigExtension.php TwigExtension::safeJoin(\Twig_Environment $env, $value, $glue = '')
8.4.x TwigExtension.php TwigExtension::safeJoin(\Twig_Environment $env, $value, $glue = '')
8.6.x TwigExtension.php TwigExtension::safeJoin(\Twig_Environment $env, $value, $glue = '')

Joins several strings together safely.

Parameters

\Twig_Environment $env: A Twig_Environment instance.

mixed[]|\Traversable|null $value: The pieces to join.

string $glue: The delimiter with which to join the string. Defaults to an empty string. This value is expected to be safe for output and user provided data should never be used as a glue.

Return value

string The strings joined together.

File

core/lib/Drupal/Core/Template/TwigExtension.php, line 608

Class

TwigExtension
A class providing Drupal Twig extensions.

Namespace

Drupal\Core\Template

Code

public function safeJoin(\Twig_Environment $env, $value, $glue = '') {
  if ($value instanceof \Traversable) {
    $value = iterator_to_array($value, FALSE);
  }
  return implode($glue, array_map(function ($item) use ($env) {

    // If $item is not marked safe then it will be escaped.
    return $this
      ->escapeFilter($env, $item, 'html', NULL, TRUE);
  }, (array) $value));
}