PHP Cli Runtime
, (*1)
PHP runtime execute command library, (*2)
Installation
The preferred way to install this extension is through composer., (*3)
Either run, (*4)
php composer.phar require --prefer-dist johnitvn/cli-runtime "*"
or add, (*5)
"johnitvn/cli-runtime": "*"
to the require section of your composer.json
file., (*6)
Usage
- Create processor
$workingdir = 'path/to/working_dir';
$process = new johnitvn\cliruntime\CliRuntimeProcess($workingdir);
If you set working dir is null in CliRuntimeProcess constructor current working dir will be path of file call CliRuntimeProcess, (*7)
- Run command without return and display ouput
$process->run('echo Hello');
- Run command with capture output
$output = array();
$process->runCapture('echo Hello',$output);
var_dump($output);
As example reference variable $ouput will get command output lines as array, (*8)
- Run command with display out put
$process->runDisplayOutput('echo Hello');
runDisplayout()
will be run command and display out, (*9)
- Command Builder
You can use
johnitvn\cliruntime\CommandBuidler
as utility for create command
Below is simple example with CommandBuilder:, (*10)
$command = new johnitvn\cliruntime\CommandBuidler('echo');
$command->addParam('Hello world');
echo $command->getCommand();
and the result is:, (*11)
echo Hello world
You can see below code snippet for understand how to use CommandBuilder class, (*12)
$builder = new CommandBuidler('phpunit');
$builder->addFlag('v')
->addArgument('stop-on-failure')
->addArgument('configuration', 'phpunit.xml')
->addParam('TestCase.php');
echo $builder->getCommand();
And the result is:, (*13)
phpunit TestCase.php -v --stop-on-failure --configuration=phpunit.xml
- CommandFinder (since version 1.0.2)
You can use
johnitvn\cliruntime\CommandFinder
as utility for finder real path of command under system environment variable
use johnitvn\cliruntime\CommandFinder;
$realCommand = CommandFinder::findCommand('composer');
echo $realCommand;
And result look like: C:\\xampp\php\composer
, (*14)
You can see the class comment for more detail about usage, (*15)