Add support for Twig\Markup

Co-authored-by: Fabien Potencier <fabien@potencier.org>
This commit is contained in:
Nicolas Lemoine
2024-11-22 12:16:10 +01:00
committed by Fabien Potencier
parent 38688f739d
commit 8158dabc17
2 changed files with 13 additions and 9 deletions
+3 -2
View File
@@ -14,6 +14,7 @@ namespace Twig\Extra\Html;
use Symfony\Component\Mime\MimeTypes;
use Twig\Error\RuntimeError;
use Twig\Extension\AbstractExtension;
use Twig\Markup;
use Twig\TwigFilter;
use Twig\TwigFunction;
@@ -92,8 +93,8 @@ final class HtmlExtension extends AbstractExtension
{
$classes = [];
foreach ($args as $i => $arg) {
if (\is_string($arg)) {
$classes[] = $arg;
if (\is_string($arg) || $arg instanceof Markup) {
$classes[] = (string) $arg;
} elseif (\is_array($arg)) {
foreach ($arg as $class => $condition) {
if (!\is_string($class)) {
@@ -3,15 +3,18 @@
--TEMPLATE--
{{ html_classes('a', {'b': true, 'c': false}, 'd', false ? 'e', true ? 'f', '0') }}
{% set class_a = 'a' %}
{% set class_b = 'b' %}
{%- set class_c -%}
c
{%- set class_b -%}
b
{%- endset -%}
{{ html_classes(class_a, { (class_b): true }) }}
{{ html_classes(class_a, { (class_c): true }) }}
{{ html_classes(class_a) }}
{{ html_classes(class_b) }}
{{ html_classes({ (class_a): true }) }}
{{ html_classes({ (class_b): true }) }}
--DATA--
return []
--EXPECT--
a b d f 0
a b
a c
a
b
a
b