diff --git a/composer.json b/composer.json index 7f33acac9b9..dd2d9504b52 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "composer/installers": "^2.2", "guzzlehttp/guzzle": "^7.5.0", "guzzlehttp/psr7": "^2.4.0", - "embed/embed": "^4.4.4", + "embed/embed": "^4.4.7", "league/csv": "^9.8.0", "m1/env": "^2.2.0", "monolog/monolog": "^3.2.0", diff --git a/src/Control/HTTPRequest.php b/src/Control/HTTPRequest.php index 2ceb7e23941..db22f8d4165 100644 --- a/src/Control/HTTPRequest.php +++ b/src/Control/HTTPRequest.php @@ -579,7 +579,7 @@ public function match($pattern, $shiftOnSuccess = false) $shiftCount = sizeof($patternParts ?? []); $remaining = count($this->dirParts ?? []) - $i; for ($j = 1; $j <= $remaining; $j++) { - $arguments["$${j}"] = $this->dirParts[$j + $i - 1]; + $arguments['$' . $j] = $this->dirParts[$j + $i - 1]; } $patternParts = array_merge($patternParts, array_keys($arguments ?? [])); break; diff --git a/src/ORM/Connect/MySQLDatabase.php b/src/ORM/Connect/MySQLDatabase.php index ef7cd1601a5..b80e02054b3 100644 --- a/src/ORM/Connect/MySQLDatabase.php +++ b/src/ORM/Connect/MySQLDatabase.php @@ -65,6 +65,8 @@ class MySQLDatabase extends Database implements TransactionManager */ private $transactionManager = null; + private int $transactionNesting = 0; + /** * Default collation * diff --git a/src/ORM/Connect/MySQLStatement.php b/src/ORM/Connect/MySQLStatement.php index da687898885..81edf8c50fe 100644 --- a/src/ORM/Connect/MySQLStatement.php +++ b/src/ORM/Connect/MySQLStatement.php @@ -73,7 +73,6 @@ public function __construct($statement, $metadata) public function __destruct() { $this->statement->close(); - $this->currentRecord = false; } /** diff --git a/src/View/ViewableData.php b/src/View/ViewableData.php index 2440a5cacf0..5e7b8ca89d1 100644 --- a/src/View/ViewableData.php +++ b/src/View/ViewableData.php @@ -66,6 +66,8 @@ class ViewableData implements IteratorAggregate */ private static $casting_cache = []; + private array $data = []; + // ----------------------------------------------------------------------------------------------------------------- /** @@ -191,7 +193,7 @@ public function getFailover() */ public function hasField($field) { - return property_exists($this, $field ?? ''); + return isset($this->data[$field]); } /** @@ -202,7 +204,7 @@ public function hasField($field) */ public function getField($field) { - return $this->$field; + return $this->data[$field]; } /** @@ -215,7 +217,7 @@ public function getField($field) public function setField($field, $value) { $this->objCacheClear(); - $this->$field = $value; + $this->data[$field] = $value; return $this; } diff --git a/thirdparty/php-peg/Parser.php b/thirdparty/php-peg/Parser.php index 1ce89193e72..bcb57ce06da 100644 --- a/thirdparty/php-peg/Parser.php +++ b/thirdparty/php-peg/Parser.php @@ -9,6 +9,13 @@ * the bracket if a failed match + restore has moved the current position backwards - so we have to check that too. */ class ParserRegexp { + + public $parser; + public $rx; + public $matches; + public $match_pos; + public $check_pos; + function __construct( $parser, $rx ) { $this->parser = $parser ; $this->rx = $rx . 'Sx' ;