Webmozart\Console\Config\DefaultApplicationConfig::createIO PHP Method

createIO() public method

public createIO ( Webmozart\Console\Api\Application\Application $application, Webmozart\Console\Api\Args\RawArgs $args, Webmozart\Console\Api\IO\InputStream $inputStream = null, Webmozart\Console\Api\IO\OutputStream $outputStream = null, Webmozart\Console\Api\IO\OutputStream $errorStream = null )
$application Webmozart\Console\Api\Application\Application
$args Webmozart\Console\Api\Args\RawArgs
$inputStream Webmozart\Console\Api\IO\InputStream
$outputStream Webmozart\Console\Api\IO\OutputStream
$errorStream Webmozart\Console\Api\IO\OutputStream
    public function createIO(Application $application, RawArgs $args, InputStream $inputStream = null, OutputStream $outputStream = null, OutputStream $errorStream = null)
    {
        $inputStream = $inputStream ?: new StandardInputStream();
        $outputStream = $outputStream ?: new StandardOutputStream();
        $errorStream = $errorStream ?: new ErrorOutputStream();
        $styleSet = $application->getConfig()->getStyleSet();
        if ($args->hasToken('--no-ansi')) {
            $outputFormatter = $errorFormatter = new PlainFormatter($styleSet);
        } elseif ($args->hasToken('--ansi')) {
            $outputFormatter = $errorFormatter = new AnsiFormatter($styleSet);
        } else {
            $outputFormatter = $outputStream->supportsAnsi() ? new AnsiFormatter($styleSet) : new PlainFormatter($styleSet);
            $errorFormatter = $errorStream->supportsAnsi() ? new AnsiFormatter($styleSet) : new PlainFormatter($styleSet);
        }
        $io = new ConsoleIO(new Input($inputStream), new Output($outputStream, $outputFormatter), new Output($errorStream, $errorFormatter));
        if ($args->hasToken('-vvv') || $this->isDebug()) {
            $io->setVerbosity(IO::DEBUG);
        } elseif ($args->hasToken('-vv')) {
            $io->setVerbosity(IO::VERY_VERBOSE);
        } elseif ($args->hasToken('-v')) {
            $io->setVerbosity(IO::VERBOSE);
        }
        if ($args->hasToken('--quiet') || $args->hasToken('-q')) {
            $io->setQuiet(true);
        }
        if ($args->hasToken('--no-interaction') || $args->hasToken('-n')) {
            $io->setInteractive(false);
        }
        return $io;
    }