From b644a7c6a7bc0b744b924c4d9d0f328b890efce7 Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Mon, 26 Nov 2018 00:12:13 +0100 Subject: [PATCH] IcingaObject, ..WithSettings: fix Basket-related.. ...problems --- library/Director/Data/Db/DbObjectWithSettings.php | 7 ++++++- library/Director/Objects/IcingaObject.php | 7 ++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/library/Director/Data/Db/DbObjectWithSettings.php b/library/Director/Data/Db/DbObjectWithSettings.php index 781bddf7..88702be0 100644 --- a/library/Director/Data/Db/DbObjectWithSettings.php +++ b/library/Director/Data/Db/DbObjectWithSettings.php @@ -44,7 +44,12 @@ abstract class DbObjectWithSettings extends DbObject public function setSettings($settings) { - $this->settings = (array) $settings; + $settings = (array) $settings; + ksort($settings); + if ($settings !== $this->settings) { + $this->settings = $settings; + $this->hasBeenModified = true; + } return $this; } diff --git a/library/Director/Objects/IcingaObject.php b/library/Director/Objects/IcingaObject.php index 54484060..30bcf244 100644 --- a/library/Director/Objects/IcingaObject.php +++ b/library/Director/Objects/IcingaObject.php @@ -1086,16 +1086,17 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer public function getVars() { - $vars = (object) array(); + $vars = []; foreach ($this->vars() as $key => $var) { if ($var->hasBeenDeleted()) { continue; } - $vars->$key = $var->getValue(); + $vars[$key] = $var->getValue(); } + ksort($vars); - return $vars; + return (object) $vars; } /**