Skip to content

Commit c63b28e

Browse files
nlemoinefabpot
andcommitted
Add support for Twig\Markup
Co-authored-by: Fabien Potencier <fabien@potencier.org>
1 parent 93cb772 commit c63b28e

2 files changed

Lines changed: 13 additions & 9 deletions

File tree

HtmlExtension.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Symfony\Component\Mime\MimeTypes;
1515
use Twig\Error\RuntimeError;
1616
use Twig\Extension\AbstractExtension;
17+
use Twig\Markup;
1718
use Twig\TwigFilter;
1819
use Twig\TwigFunction;
1920

@@ -92,8 +93,8 @@ public static function htmlClasses(...$args): string
9293
{
9394
$classes = [];
9495
foreach ($args as $i => $arg) {
95-
if (\is_string($arg)) {
96-
$classes[] = $arg;
96+
if (\is_string($arg) || $arg instanceof Markup) {
97+
$classes[] = (string) $arg;
9798
} elseif (\is_array($arg)) {
9899
foreach ($arg as $class => $condition) {
99100
if (!\is_string($class)) {

Tests/Fixtures/html_classes.test

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,18 @@
33
--TEMPLATE--
44
{{ html_classes('a', {'b': true, 'c': false}, 'd', false ? 'e', true ? 'f', '0') }}
55
{% set class_a = 'a' %}
6-
{% set class_b = 'b' %}
7-
{%- set class_c -%}
8-
c
6+
{%- set class_b -%}
7+
b
98
{%- endset -%}
10-
{{ html_classes(class_a, { (class_b): true }) }}
11-
{{ html_classes(class_a, { (class_c): true }) }}
9+
{{ html_classes(class_a) }}
10+
{{ html_classes(class_b) }}
11+
{{ html_classes({ (class_a): true }) }}
12+
{{ html_classes({ (class_b): true }) }}
1213
--DATA--
1314
return []
1415
--EXPECT--
1516
a b d f 0
16-
a b
17-
a c
17+
a
18+
b
19+
a
20+
b

0 commit comments

Comments
 (0)