Skip to content

Commit

Permalink
Fix compatibility with PHP 8.1 and Psotgresql
Browse files Browse the repository at this point in the history
  • Loading branch information
eldy committed Sep 20, 2022
1 parent 03bce8d commit 2b3f6cc
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
4 changes: 2 additions & 2 deletions ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ English Dolibarr ChangeLog
For users:
---------------

NEW: PHP 8.0 compatibility (with mysql):
Warning!! Application works correctly with PHP 8.0 but you will experience a lot of PHP warnings into the PHP server
NEW: PHP 8.0 and 8.1 compatibility (with mysql):
Warning!! Application works correctly with PHP 8.0 and 8.1 but you will experience a lot of PHP warnings into the PHP server
log files (depending on your PHP setup). Removal of all PHP warnings on server side is planned for v17.
NEW: Support for recurring purchase invoices.
NEW: #20292 Include German public holidays
Expand Down
10 changes: 10 additions & 0 deletions htdocs/core/lib/functions.lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -1156,7 +1156,17 @@ function dol_buildpath($path, $type = 0, $returnemptyifnotfound = 0)
function dol_clone($object, $native = 0)
{
if (empty($native)) {
$tmpsavdb = null;
if (isset($object->db) && isset($object->db->db) && is_object($object->db->db) && get_class($object->db->db) == 'PgSql\Connection') {
$tmpsavdb = $object->db;
unset($object->db); // Such property can not be serialized when PgSql/Connection
}

$myclone = unserialize(serialize($object)); // serialize then unserialize is hack to be sure to have a new object for all fields

if ($tmpsavdb) {
$object->db = $tmpsavdb;
}
} else {
$myclone = clone $object; // PHP clone is a shallow copy only, not a real clone, so properties of references will keep the reference (refering to the same target/variable)
}
Expand Down

0 comments on commit 2b3f6cc

Please sign in to comment.