/**
  * Executes the application.
  *
  * Available options:
  *
  *  * interactive:               Sets the input interactive flag
  *  * decorated:                 Sets the output decorated flag
  *  * verbosity:                 Sets the output verbosity flag
  *  * capture_stderr_separately: Make output of stdOut and stdErr separately available
  *
  * @param array $input   An array of arguments and options
  * @param array $options An array of options
  *
  * @return int The command exit code
  */
 public function run(array $input, $options = array())
 {
     $this->input = new ArrayInput($input);
     if (isset($options['interactive'])) {
         $this->input->setInteractive($options['interactive']);
     }
     $this->captureStreamsIndependently = array_key_exists('capture_stderr_separately', $options) && $options['capture_stderr_separately'];
     if (!$this->captureStreamsIndependently) {
         $this->output = new StreamOutput(fopen('php://memory', 'w', false));
         if (isset($options['decorated'])) {
             $this->output->setDecorated($options['decorated']);
         }
         if (isset($options['verbosity'])) {
             $this->output->setVerbosity($options['verbosity']);
         }
     } else {
         $this->output = new ConsoleOutput(isset($options['verbosity']) ? $options['verbosity'] : ConsoleOutput::VERBOSITY_NORMAL, isset($options['decorated']) ? $options['decorated'] : null);
         $errorOutput = new StreamOutput(fopen('php://memory', 'w', false));
         $errorOutput->setFormatter($this->output->getFormatter());
         $errorOutput->setVerbosity($this->output->getVerbosity());
         $errorOutput->setDecorated($this->output->isDecorated());
         $reflectedOutput = new \ReflectionObject($this->output);
         $strErrProperty = $reflectedOutput->getProperty('stderr');
         $strErrProperty->setAccessible(true);
         $strErrProperty->setValue($this->output, $errorOutput);
         $reflectedParent = $reflectedOutput->getParentClass();
         $streamProperty = $reflectedParent->getProperty('stream');
         $streamProperty->setAccessible(true);
         $streamProperty->setValue($this->output, fopen('php://memory', 'w', false));
     }
     return $this->statusCode = $this->application->run($this->input, $this->output);
 }
 public function run($input, array $options = array())
 {
     if (isset($options['interactive']) && $options['interactive']) {
         $this->input = new InteractiveStringInput($input);
     } else {
         $this->input = new StringInput($input);
         $this->input->setInteractive(false);
     }
     $this->output = new StreamOutput(fopen('php://memory', 'w', false), OutputInterface::VERBOSITY_DEBUG, false);
     $this->output->setDecorated(false);
     $inputStream = $this->getInputStream();
     rewind($inputStream);
     $this->setInputStream($inputStream);
     $this->application->setAutoExit(false);
     $this->disableStty();
     $this->statusCode = $this->application->run($this->input, $this->output);
     return $this->statusCode;
 }
 /**
  * @param string $input
  * @param array  $options
  *
  * @return integer
  */
 public function run($input, array $options = array())
 {
     if (isset($options['interactive']) && $options['interactive']) {
         $this->input = new InteractiveStringInput($input);
     } else {
         $this->input = new StringInput($input);
         $this->input->setInteractive(false);
     }
     $this->output = new StreamOutput(fopen('php://memory', 'w', false));
     if (isset($options['decorated'])) {
         $this->output->setDecorated($options['decorated']);
     }
     if (isset($options['verbosity'])) {
         $this->output->setVerbosity($options['verbosity']);
     }
     $inputStream = $this->getInputStream();
     rewind($inputStream);
     $this->application->getHelperSet()->get('dialog')->setInputStream($inputStream);
     return $this->application->run($this->input, $this->output);
 }
 /**
  * {@inheritdoc}
  */
 public function setDecorated($decorated)
 {
     parent::setDecorated($decorated);
     $this->stderr->setDecorated($decorated);
 }
 protected function createOutputInterface()
 {
     $output = new StreamOutput(fopen('php://memory', 'r+', false));
     $output->setDecorated(false);
     return $output;
 }
Exemple #6
0
 public function testGetMigrationsWithClassThatDoesntExtendAbstractMigration()
 {
     $this->setExpectedException('InvalidArgumentException', 'The class "InvalidSuperClass" in file "' . $this->getCorrectedPath(__DIR__ . '/_files/invalidsuperclass/20120111235330_invalid_super_class.php') . '" must extend \\Phinx\\Migration\\AbstractMigration');
     $config = new Config(array('paths' => array('migrations' => $this->getCorrectedPath(__DIR__ . '/_files/invalidsuperclass'))));
     $output = new StreamOutput(fopen('php://memory', 'a', false));
     $output->setDecorated(false);
     $manager = new Manager($config, $output);
     $manager->getMigrations();
 }