Six03,謝謝你的提示!當然,我不認爲這是一個足夠的答案,但它幫助我找到所有必要的信息。
首先必須聲明與上下文「格式化」作爲ContainerAwareCommand對象的屬性的輔助:
$formatter = $this->getHelper('formatter');
然後,你必須聲明與將要顯示在控制檯的內容的陣列。數組中的每個元素都是消息的新行。接下來,您需要將您的信息和你的風格增添宣佈「格式化」的塊這樣的:
$infoMessage = array('INFO:', 'Date interval is ' . $interval->format('%a') . ' days.');
$formattedInfoBlock = $formatter->formatBlock($infoMessage, 'info', TRUE);
如果您傳遞true作爲第三個參數,該塊將與更多的填充(一個空白上面的行被格式化在消息的下面和左側和右側的2個空格處)。 (Formatter Helper)
現在所有你應該執行是與所需的設計,以「輸出」對象傳遞您的塊:
$output->writeln($formattedInfoBlock);
這裏是整個代碼一步一步:
/**
* Setting the console styles
*
* 'INFO' style
*/
$infoStyle = new OutputFormatterStyle('white', 'blue');
$output->getFormatter()->setStyle('info', $infoStyle);
/**
* 'SUCCESS' style
*/
$successStyle = new OutputFormatterStyle('white', 'green');
$output->getFormatter()->setStyle('success', $successStyle);
/**
* Declaring the formatter
*/
$formatter = $this->getHelper('formatter');
/**
* The output to the console
*/
$infoMessage = array('INFO:', 'Date interval is ' . $interval->format('%a') . ' days.');
$formattedInfoBlock = $formatter->formatBlock($infoMessage, 'info', TRUE);
$output->writeln($formattedInfoBlock);
現在,我的命令中的消息具有適當的類型。