public function execute($stdIn = null)
    {
        $stdOut = fopen('php://temp', 'r');
        $stdErr = fopen('php://temp', 'r');

        $descriptorSpec = array(
           0 => array("pipe", "r"), // stdin is a pipe that the child will read from
           1 => $stdOut,            // stdout is a temp file that the child will write to
           2 => $stdErr             // stderr is a temp file that the child will write to
        );
        $pipes   = array();
        $process = proc_open(
            $this->getCmd(),
            $descriptorSpec,
            $pipes,
            $this->getCwd(),
            $this->getEnv()
        );

        if (is_resource($process)) {
            if ($stdIn !== null) {
                fwrite($pipes[0], (string)$stdIn);
            }
            fclose($pipes[0]);
            $returnCode = proc_close($process);
            return new CallResult($this, $stdOut, $stdErr, $returnCode);
        } else {
            fclose($stdOut);
            fclose($stdErr);
            throw new \RuntimeException(sprintf('Cannot execute "%s"', $this->getCmd()));
        }
    }
public function execute($stdIn = null)
    {
        $stdOut = fopen('php://temp', 'r');
        $stdErr = fopen('php://temp', 'r');

        $descriptorSpec = array(
           0 => array("pipe", "r"), // stdin is a pipe that the child will read from
           1 => $stdOut,            // stdout is a temp file that the child will write to
           2 => $stdErr             // stderr is a temp file that the child will write to
        );
        $pipes   = array();
        $process = proc_open(
            $this->getCmd(),
            $descriptorSpec,
            $pipes,
            $this->getCwd(),
            $this->getEnv()
        );

        if (is_resource($process)) {
            if ($stdIn !== null) {
                fwrite($pipes[0], (string)$stdIn);
            }
            fclose($pipes[0]);
            $returnCode = proc_close($process);
            return new CallResult($this, $stdOut, $stdErr, $returnCode);
        } else {
            fclose($stdOut);
            fclose($stdErr);
            throw new \RuntimeException(sprintf('Cannot execute "%s"', $this->getCmd()));
        }
    }
public function execute ( $ stdIn = null ) { $ stdOut = fopen ( 'php://temp' , 'r' ) ; $ stdErr = fopen ( 'php://temp' , 'r' ) ; $ descriptorSpec = array ( 0 => array ( "pipe" , "r" ) , // stdin is a pipe that the child will read from 1 => $ stdOut , // stdout is a temp file that the child will write to 2 => $ stdErr // stderr is a temp file that the child will write to ) ; $ pipes = array ( ) ; $ process = proc_open ( $ this -> getCmd ( ) , $ descriptorSpec , $ pipes , $ this -> getCwd ( ) , $ this -> getEnv ( ) ) ; if ( is_resource ( $ process ) ) { if ( $ stdIn !== null ) { fwrite ( $ pipes [ 0 ] , ( string ) $ stdIn ) ; } fclose ( $ pipes [ 0 ] ) ; $ returnCode = proc_close ( $ process ) ; return new CallResult ( $ this , $ stdOut , $ stdErr , $ returnCode ) ; } else { fclose ( $ stdOut ) ; fclose ( $ stdErr ) ; throw new \ RuntimeException ( sprintf ( 'Cannot execute "%s"' , $ this -> getCmd ( ) ) ) ; } }
Executes the call using the preconfigured command

@param   string|null  $stdIn     Content that will be piped to the command
@return  CallResult
@throws  \RuntimeException       If the command cannot be executed
Executes the call using the preconfigured command