[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; namespace Symfony\Component\Console\Output;
use Symfony\Component\Console\Formatter\OutputFormatter;
use Symfony\Component\Console\Formatter\OutputFormatterInterface;
/** /**
* NullOutput suppresses all output. * NullOutput suppresses all output.
* *
* $output = new NullOutput(); * $output = new NullOutput();
* *
* @author Fabien Potencier <fabien@symfony.com> * @author Fabien Potencier <fabien@symfony.com>
* @author Tobias Schultze <http://tobion.de>
* *
* @api * @api
*/ */
class NullOutput extends Output class NullOutput implements OutputInterface
{ {
/** /**
* Writes a message to the output. * {@inheritdoc}
*
* @param string $message A message to write to the output
* @param Boolean $newline Whether to add a newline or not
*/ */
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(); $buffer = ob_get_clean();
$this->assertSame('', $buffer, '->write() does nothing (at least nothing is printed)'); $this->assertSame('', $buffer, '->write() does nothing (at least nothing is printed)');
$this->assertFalse($output->isDecorated(), '->isDecorated() returns false');
} }
public function testVerbosity() public function testVerbosity()