コード例 #1
0
 /**
  * Test that adding arguments works.
  *
  * @return void
  */
 public function testAddCommandLineArgument()
 {
     $config = new TensideJsonConfig(new JsonArray());
     $this->assertEquals(null, $config->getPhpCliArguments());
     $this->assertSame($config, $config->addCommandLineArgument('test1'));
     $this->assertEquals(['test1'], $config->getPhpCliArguments());
     $this->assertSame($config, $config->addCommandLineArgument('test2'));
     $this->assertEquals(['test1', 'test2'], $config->getPhpCliArguments());
 }
コード例 #2
0
 /**
  * Retrieve the command line arguments to use.
  *
  * @param array $additionalArguments The additional arguments to add to the call.
  *
  * @return string
  */
 private function getArguments($additionalArguments)
 {
     $arguments = [];
     if (null !== ($cliArguments = $this->config->getPhpCliArguments())) {
         foreach ($cliArguments as $argument) {
             $arguments[] = $argument;
         }
     }
     $arguments = array_map('escapeshellarg', array_merge($arguments, $additionalArguments));
     return implode(' ', $arguments);
 }
コード例 #3
0
ファイル: PhpProcessSpawner.php プロジェクト: tenside/core
 /**
  * Build the internal process builder.
  *
  * @param array $arguments The arguments.
  *
  * @return ProcessBuilder
  */
 private function buildInternal(array $arguments)
 {
     $builder = ProcessBuilder::create($this->config->getPhpCliBinary());
     if (null !== ($cliArguments = $this->config->getPhpCliArguments())) {
         $builder->addArguments($cliArguments);
     }
     $builder->addArguments($arguments);
     if (null !== ($environment = $this->config->getPhpCliEnvironment())) {
         foreach ($environment as $name => $value) {
             $builder->setEnv($name, $value);
         }
     }
     // MUST be kept last.
     $builder->setEnv('COMPOSER', $this->homePath . DIRECTORY_SEPARATOR . 'composer.json');
     return $builder;
 }