Updated all dependencies and prepared for PHP 8

This commit is contained in:
2026-06-19 09:37:22 +00:00
parent 941c9104dc
commit 5f9f6ca2ff
21 changed files with 3334 additions and 2643 deletions
+5 -7
View File
@@ -8,7 +8,7 @@ namespace CloudObjects\PhpMAE\Sandbox;
use PHPSandbox\PHPSandbox, PHPSandbox\SandboxWhitelistVisitor,
PHPSandbox\Error;
use PhpParser\NodeTraverser, PhpParser\ParserFactory;
use PhpParser\NodeTraverser, PhpParser\PhpVersion, PhpParser\ParserFactory;
use PhpParser\PrettyPrinter\Standard;
use PhpParser\Error as ParserError;
@@ -38,10 +38,10 @@ class CustomizedSandbox extends PHPSandbox {
]);
}
public function validate($code) {
public function validate($code) : self {
$this->preparsed_code = $this->disassemble($code);
$factory = new ParserFactory;
$parser = $factory->create(ParserFactory::PREFER_PHP7);
$parser = $factory->createForVersion(PhpVersion::getHostVersion());
try {
$this->parsed_ast = $parser->parse($this->preparsed_code);
} catch (ParserError $error) {
@@ -55,13 +55,11 @@ class CustomizedSandbox extends PHPSandbox {
($this->allow_traits && $this->auto_whitelist_traits) ||
($this->allow_globals && $this->auto_whitelist_globals)){
$traverser = new NodeTraverser;
$whitelister = new SandboxWhitelistVisitor($this);
$traverser->addVisitor($whitelister);
$traverser->addVisitor(new SandboxWhitelistVisitor($this));
$traverser->traverse($this->parsed_ast);
}
$traverser = new NodeTraverser;
$validator = new CustomizedValidatorVisitor($this);
$traverser->addVisitor($validator);
$traverser->addVisitor(new CustomizedValidatorVisitor($this));
$this->prepared_ast = $traverser->traverse($this->parsed_ast);
$this->prepared_code = $prettyPrinter->prettyPrint($this->prepared_ast);
return $this;