ich eine Nachricht mit sprintf()
erzeugen, die dann mit dem Ausgang Symfony Console Component in einem farbigen Mode zu sein ist:Symfony Konsolenausgabe mit Escape-Zeichen
$mask = '<info>%s</info>';
$message = sprintf($mask, 'MyString');
$output->writeln($message);
Dies funktioniert im Allgemeinen (gibt den Namespace in grün). Allerdings, wenn die Zeichenfolge endet mit einem Backslash, das Schließen Info -tag ignoriert:
$message = sprintf($mask, 'MyString\');
$output->writeln($message);
Ausgang:
MyString</info>
^^^^^^^
Offensichtlich ist der Backslash eine Art Escape-Zeichen zu sein scheint, aber Wie kann man dem entkommen? Oder wie man die Bedeutung des schließenden Tags </info>
bewahrt?
Bisher habe ich versucht, mit:
addcslashes('My\String\', '\\')
- innen dupliziert und Single-fy am Ende:My\\String\</info>
\
als "HTML" Einheit, die HTML-Entity-Sequenz ist nur wörtlich ausgeben und das schließende Tag ist weg:My\String\
versuchen, die Einstellung zu verzieren false auf der Ausgabe als: '$ output-> setDecorated (false);' – Matteo
Wenn Sie die Version sf2.8 verwenden können, empfehle ich Ihnen, die SymfonyStyle-Komponente wie beschrieben [hier] (http://symfony.com/blog) zu verwenden/new-in-symfony-2-8-konsole-style-guide) – Matteo