Skip to content

Commit 7d26822

Browse files
committed
update symfony process version for php8, updated process handler for php8.1
1 parent e3ebb8a commit 7d26822

File tree

3 files changed

+62
-55
lines changed

3 files changed

+62
-55
lines changed

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
}
1818
],
1919
"require": {
20-
"php": ">=5.3.0",
21-
"symfony/process": "~2.3|~3.0"
20+
"php": ">=8.1",
21+
"symfony/process": "^6.2"
2222
},
2323
"require-dev": {
2424
"phpunit/phpunit": "~3.7|~4.0|~5.0"

src/ProcessHandler/Drivers/MacOS.php

Lines changed: 59 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -6,57 +6,64 @@
66
use Symfony\Component\Process\Process;
77

88
class MacOS implements DriversInterface {
9-
/**
10-
* @return \Craftpip\ProcessHandler\Process[]
11-
*/
12-
protected $options = "pid,time,rss,user,sess,args";
13-
14-
function getAllProcesses () {
15-
$process = new Process("ps -eo $this->options");
16-
$process->run();
17-
$op = trim($process->getOutput());
18-
19-
return $this->parse($op);
20-
}
21-
22-
/**
23-
* @param $pid
24-
*
25-
* @return \Craftpip\ProcessHandler\Process[]
26-
*/
27-
function getProcessByPid ($pid) {
28-
$process = new Process("ps -p $pid -o $this->options");
29-
$process->run();
30-
$op = trim($process->getOutput());
31-
32-
return $this->parse($op);
33-
}
34-
35-
/**
36-
* @param $output
37-
*
38-
* @return \Craftpip\ProcessHandler\Process[]
39-
*/
40-
private function parse ($output) {
41-
$op = explode("\n", $output);
42-
43-
44-
$processes = array();
45-
foreach ($op as $k => $item) {
46-
if ($k < 1)
47-
continue;
48-
49-
$item = explode(" ", preg_replace('!\s+!', ' ', trim($item)));
50-
$line = array();
51-
foreach ($item as $i) {
52-
if ($i != '')
53-
$line[] = $i;
54-
}
9+
/**
10+
* @return \Craftpip\ProcessHandler\Process[]
11+
*/
12+
protected $options = "pid,time,rss,user,sess,args";
13+
14+
function getAllProcesses() {
15+
$process = new Process(["ps -eo $this->options"]);
16+
$process->run();
17+
$op = trim($process->getOutput());
18+
19+
return $this->parse($op);
20+
}
21+
22+
/**
23+
* @param $pid
24+
*
25+
* @return \Craftpip\ProcessHandler\Process[]
26+
*/
27+
function getProcessByPid($pid) {
28+
// $process = new Process(["ps -p $pid -o $this->options"]);
29+
$process = new Process([
30+
"ps",
31+
"-p",
32+
"$pid",
33+
"-o",
34+
"$this->options",
35+
]);
36+
$process->run();
37+
$op = trim($process->getOutput());
38+
39+
return $this->parse($op);
40+
}
5541

56-
$processName = implode(" ", array_slice($line, 5));
57-
$processes[] = new Process2($processName, $line[0], false, $line[4], $line[2] . ' KB', 'RUNNING', $line[3], $line[1], false);
58-
}
42+
/**
43+
* @param $output
44+
*
45+
* @return \Craftpip\ProcessHandler\Process[]
46+
*/
47+
private function parse($output) {
48+
$op = explode("\n", $output);
49+
50+
51+
$processes = array();
52+
foreach ($op as $k => $item) {
53+
if ($k < 1)
54+
continue;
55+
56+
$item = explode(" ", preg_replace('!\s+!', ' ', trim($item)));
57+
$line = array();
58+
foreach ($item as $i) {
59+
if ($i != '')
60+
$line[] = $i;
61+
}
62+
63+
$processName = implode(" ", array_slice($line, 5));
64+
$processes[] = new Process2($processName, $line[0], false, $line[4], $line[2] . ' KB', 'RUNNING', $line[3], $line[1], false);
65+
}
5966

60-
return $processes;
61-
}
62-
}
67+
return $processes;
68+
}
69+
}

test.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
require_once "vendor/autoload.php";
44

55
$processHandler = new \Craftpip\ProcessHandler\ProcessHandler();
6-
$process = new \Symfony\Component\Process\Process('wait 5');
6+
$process = new \Symfony\Component\Process\Process(['wait 10']);
77
$process->start();
88
$pid = $process->getPid();
99
echo $pid;

0 commit comments

Comments
 (0)