Запретить Twig вставлять разрыв строки после {% include%}

Twig, кажется, вставить \n после содержания {% include %}, Я могу воспроизвести проблему с помощью этого простого примера:

test.php:

<?php

require "vendor/autoload.php";

$loader = new Twig_Loader_Filesystem(__DIR__);
$twig = new Twig_Environment($loader, []);

echo $twig->render('test.twig', ['foo' => 'bar']);

test.twig:

{% include "include.twig" %}{{ foo }}

include.twig:

Foo:

Я ожидаю, что результат будет:

Foo:bar

но вместо этого это:

Foo:
bar

Есть ли способ, которым я могу предотвратить это? Управление пробелами Twig с помощью {%- ... -%} не влияет на это.

ОБНОВИТЬ:

Как уже упоминалось в ответе Сягра, на самом деле 0x0a символ в конце шаблона, который не отображается в VIM даже при :set binary,

Знаю, я знаю, почему это происходит, но мне все еще нужно решение. Проверка всех шаблонов с помощью шестнадцатеричного редактора не является приемлемым вариантом.

4

Решение

Ваш текстовый редактор добавляет символ новой строки в конце вашего .twig файлы.

Я могу воспроизвести вашу проблему, описанную в вопросе, когда я работаю с обычными текстовыми редакторами, или nano, Шестнадцатеричная сумма include.twig файл показывает новую строку:

$ xxd -p include.twig
466f6f3a0a

Чтобы доказать, что текстовые редакторы вставляют эти символы новой строки, я удалил include.twig подать и сделал generate.php файл:

file_put_contents('include.twig', 'Foo:');

Новая шестнадцатеричная сумма:

$ xxd -p include.twig
466f6f3a

И новый выход Twig:

Foo:bar

Попробуйте сами!

Интересно, что вы можете заставить Twig игнорировать завершающий символ новой строки при включении файлов шаблонов, добавив пустой комментарий в конец файла:

Foo:{# #}
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]