Я генерируют сообщение с sprintf()
, которое затем будет выводиться вместе с Symfony Console Component в цветном моде:Symfony консоль Вывод с маскирующим
$mask = '<info>%s</info>';
$message = sprintf($mask, 'MyString');
$output->writeln($message);
Это обычно работает (выводит пространство имен в зеленый цвет). Однако, если строка заканчивается обратной косой черты закрывающая информация -tag игнорируется:
$message = sprintf($mask, 'MyString\');
$output->writeln($message);
Выход:
MyString</info>
^^^^^^^
Очевидно, что обратная косая черта, кажется, своего рода побег характер, но как избежать этого? Или как сохранить значение закрывающей метки </info>
?
До сих пор я попытался с:
addcslashes('My\String\', '\\')
- это продублировать внутри и одного FY в конце:My\\String\</info>
\
в качестве объекта "HTML", последовательность HTML энтитя просто выводятся дословно и закрывающий тег отсутствует:My\String\
попробуйте установить Украсить к false на выходе как: '$ output-> setDecorated (false);' – Matteo
, если вы можете использовать версию sf2.8, я предлагаю вам использовать компонент SymfonyStyle, как описано [здесь] (http://symfony.com/blog/new-in-symfony-2-8-console-style-guide) – Matteo