exec
reactphp/event-loop
Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Execute an external program
exec
(
string $command
, array &
$output
=
null
,
int
&
$result_code
=
null
):
string
|
false
public function
testExecuteExampleWithoutLoopRunRunsLoopAndExecutesTicks
()
{
$output
=
exec
(
escapeshellarg
(
PHP_BINARY
) .
' 01-ticks-loop-class.php'
);
$this
->
assertEquals
(
'abc'
,
$output
);
}
tests/BinTest.php
public function
testExecuteExampleWithExplicitLoopRunRunsLoopAndExecutesTicks
()
{
$output
=
exec
(
escapeshellarg
(
PHP_BINARY
) .
' 02-ticks-loop-instance.php'
);
$this
->
assertEquals
(
'abc'
,
$output
);
}
tests/BinTest.php
public function
testExecuteExampleWithExplicitLoopRunAndStopRunsLoopAndExecutesTicksUntilStopped
()
{
$output
=
exec
(
escapeshellarg
(
PHP_BINARY
) .
' 03-ticks-loop-stop.php'
);
$this
->
assertEquals
(
'abc'
,
$output
);
}
tests/BinTest.php
public function
testExecuteExampleWithUncaughtExceptionShouldNotRunLoop
()
{
$time
=
microtime
(
true
);
exec
(
escapeshellarg
(
PHP_BINARY
) .
' 11-uncaught.php 2>/dev/null'
);
$time
=
microtime
(
true
) -
$time
;
$this
->
assertLessThan
(
1.0
,
$time
);
tests/BinTest.php
public function
testExecuteExampleWithUndefinedVariableShouldNotRunLoop
()
{
$time
=
microtime
(
true
);
exec
(
escapeshellarg
(
PHP_BINARY
) .
' 12-undefined.php 2>/dev/null'
);
$time
=
microtime
(
true
) -
$time
;
$this
->
assertLessThan
(
1.0
,
$time
);
tests/BinTest.php
public function
testExecuteExampleWithExplicitStopShouldNotRunLoop
()
{
$time
=
microtime
(
true
);
exec
(
escapeshellarg
(
PHP_BINARY
) .
' 21-stop.php 2>/dev/null'
);
$time
=
microtime
(
true
) -
$time
;
$this
->
assertLessThan
(
1.0
,
$time
);
tests/BinTest.php
public function
testExecuteExampleWithExplicitStopInExceptionHandlerShouldNotRunLoop
()
{
$time
=
microtime
(
true
);
exec
(
escapeshellarg
(
PHP_BINARY
) .
' 22-uncaught-stop.php 2>/dev/null'
);
$time
=
microtime
(
true
) -
$time
;
$this
->
assertLessThan
(
1.0
,
$time
);
tests/BinTest.php