Part 1
- after applying patch run composer install command
- try installing In-Portal on PHP < 5.3.9
- confirm, that it's not possible due error on System Requirements step
- try installing In-Portal on PHP >= 5.3.9
- confirm, that it's possible
- create new tag (e.g. ProcessBuilderTest in kMainTagProcessor class)
- place <inp2:m_ProcessBuilderTest/> tag on the index.tpl template in advanced theme
- confirm, that tag result is shown when visiting Front-End
Part 2
- place following in the tag:
/** @var ProcessBuilder $process_builder */ $process_builder = $this->Application->recallObject('ProcessBuilder');
- confirm, that exception about recallObject method usage is thrown
Part 3
- place following in the tag:
/** @var ProcessBuilder $process_builder */ $process_builder = $this->Application->makeClass('ProcessBuilder'); $process = $process_builder->setCommand('ls -la')->build(); $process->mustRun(); return '<pre>' . kUtil::escape($process->getOutput(), kUtil::ESCAPE_HTML) . '</pre>';
- confirm, that tag output contains results from running ls -la command
Part 4
- place following in the tag:
/** @var ProcessBuilder $process_builder */ $process_builder = $this->Application->makeClass('ProcessBuilder'); $process = $process_builder->setExecutable('ls')->add('-la')->build(); $process->mustRun(); return '<pre>' . kUtil::escape($process->getOutput(), kUtil::ESCAPE_HTML) . '</pre>';
- confirm, that tag output contains results from running ls -la command
Part 5
- place following in the tag:
/** @var ProcessBuilder $process_builder */ $process_builder = $this->Application->makeClass('ProcessBuilder'); $process = $process_builder->setExecutable('pwd')->build(); $process->mustRun(); return '<pre>' . kUtil::escape($process->getOutput(), kUtil::ESCAPE_HTML) . '</pre>';
- confirm, that tag output contains current working directory (usually result of FULL_PATH constant)
Part 6
- place following in the tag:
/** @var ProcessBuilder $process_builder */ $process_builder = $this->Application->makeClass('ProcessBuilder'); $process = $process_builder->setExecutable('pwd')->setWorkingDirectory(WRITEABLE)->build(); $process->mustRun(); return '<pre>' . kUtil::escape($process->getOutput(), kUtil::ESCAPE_HTML) . '</pre>';
- confirm, that tag output contains WRITEABLE constant value
Part 7
- place following in the tag:
/** @var ProcessBuilder $process_builder */ $process_builder = $this->Application->makeClass('ProcessBuilder'); $process = $process_builder->setExecutable('/usr/bin/printenv')->build(); $process->mustRun(); return '<pre>' . kUtil::escape($process->getOutput(), kUtil::ESCAPE_HTML) . '</pre>';
- confirm, that tag output contains all environment variables of PHP process (usually seen in $_ENV or $_SERVER)
Part 8
- place following in the tag:
/** @var ProcessBuilder $process_builder */ $process_builder = $this->Application->makeClass('ProcessBuilder'); $process = $process_builder->setExecutable('/usr/bin/printenv')->setEnv('my_var', 'my_val')->build(); $process->mustRun(); return '<pre>' . kUtil::escape($process->getOutput(), kUtil::ESCAPE_HTML) . '</pre>';
- confirm, that tag output contains all environment variables of PHP process (usually seen in $_ENV or $_SERVER) plus the my_var variable
Part 9
- try creating 2 different processes from same instance of ProcessBuilder class by using $process_builder->reset() method before attempt to start building another process
- confirm, that builder settings from 1st process have no impact on 2nd process