sto generando un messaggio con sprintf()
che viene poi di essere uscita con il Symfony Console Component in maniera colorata:uscita Symfony Console con carattere di escape
$mask = '<info>%s</info>';
$message = sprintf($mask, 'MyString');
$output->writeln($message);
Questo funziona in generale (uscite lo spazio dei nomi in verde). Tuttavia, se la stringa termina con una barra rovesciata , la chiusura informazioni -tag viene ignorato:
$message = sprintf($mask, 'MyString\');
$output->writeln($message);
uscita:
MyString</info>
^^^^^^^
Ovviamente il backslash sembra essere una sorta di carattere di escape, ma come sfuggirlo? O come preservare il significato del tag di chiusura </info>
?
Finora ho provato con:
addcslashes('My\String\', '\\')
- fa duplicati all'interno e single-fy alla fine:My\\String\</info>
\
come entità "HTML", la sequenza di entità HTML è solo output verbatim e il tag di chiusura è scomparso:My\String\
provare l'impostazione decorare a false sull'output come: '$ output-> setDecorated (false);' – Matteo
se puoi usare la versione sf2.8 ti suggerisco di usare il componente SymfonyStyle come descritto [qui] (http://symfony.com/blog/new-in-symfony-2-8-console-style-guide) – Matteo