[Console] fix NullOutput

It should not extend from abstract Output class because than it inherits the useless constructor arguments and applies formatting in write() needlessly.
This commit is contained in:
Tobias Schultze 2013-05-14 17:58:06 +02:00
parent a290f87123
commit ee0cc40c87
2 changed files with 66 additions and 6 deletions

View File

@ -11,24 +11,83 @@
namespace Symfony\Component\Console\Output;
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Formatter\OutputFormatterInterface;
/**
* NullOutput suppresses all output.
*
* $output = new NullOutput();
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Tobias Schultze <http://tobion.de>
*
* @api
*/
class NullOutput extends Output
class NullOutput implements OutputInterface
{
/**
* Writes a message to the output.
*
* @param string $message A message to write to the output
* @param Boolean $newline Whether to add a newline or not
* {@inheritdoc}
*/
protected function doWrite($message, $newline)
public function setFormatter(OutputFormatterInterface $formatter)
{
// do nothing
}
/**
* {@inheritdoc}
*/
public function getFormatter()
{
// to comply with the interface we must return a OutputFormatterInterface
return new OutputFormatter();
}
/**
* {@inheritdoc}
*/
public function setDecorated($decorated)
{
// do nothing
}
/**
* {@inheritdoc}
*/
public function isDecorated()
{
return false;
}
/**
* {@inheritdoc}
*/
public function setVerbosity($level)
{
// do nothing
}
/**
* {@inheritdoc}
*/
public function getVerbosity()
{
return self::VERBOSITY_QUIET;
}
/**
* {@inheritdoc}
*/
public function writeln($messages, $type = 0)
{
// do nothing
}
/**
* {@inheritdoc}
*/
public function write($messages, $newline = false, $type = 0)
{
// do nothing
}
}

View File

@ -25,6 +25,7 @@ class NullOutputTest extends \PHPUnit_Framework_TestCase
$buffer = ob_get_clean();
$this->assertSame('', $buffer, '->write() does nothing (at least nothing is printed)');
$this->assertFalse($output->isDecorated(), '->isDecorated() returns false');
}
public function testVerbosity()